解释这段代码for (i in cancer_types){ positive<-read.csv(str_c(dir,"\\tcga_data\\",i,"\\positive_miRNA-RNA_pair.csv"), check.names = F)[,1:2] negative<-read.csv(str_c(dir,"\\tcga_data\\",i,"\\negative_miRNA-RNA_pair.csv"), check.names = F)[,1:2] admat<-unique(rbind(positive,negative)) inter<-inner_join(positive, negative) admat<-dplyr::setdiff(admat,inter) write.csv(admat,str_c(dir,"\\tcga_data\\",i,"\\admat.csv"),row.names = F,quote = F) cat(str_c("intersect: ",nrow(inter))) } rm(positive,negative,admat,inter)
时间: 2023-11-14 07:06:13 浏览: 86
这段代码是一个循环,其中 `cancer_types` 是一个包含癌症类型的向量。代码的主要目的是从每个癌症类型的文件中读取正样本和负样本数据,然后进行一系列操作。
首先,代码使用 `read.csv` 函数分别从指定目录中的正样本和负样本文件中读取数据,并将每个文件的第一列和第二列提取出来赋值给 `positive` 和 `negative` 变量。
接下来,代码通过使用 `rbind` 函数将 `positive` 和 `negative` 合并成一个矩阵 `admat`,并使用 `unique` 函数去除其中的重复行。
然后,代码使用 `inner_join` 函数找到 `positive` 和 `negative` 之间的交集,并将结果赋值给 `inter` 变量。
接着,代码使用 `setdiff` 函数从 `admat` 中去除 `inter` 中的行,得到一个不包含交集的新的矩阵,再将结果赋值给 `admat`。
之后,代码使用 `write.csv` 函数将 `admat` 写入指定目录下的一个名为 "admat.csv" 的文件中,不包含行号,并且不使用引号引用字符。
最后,代码通过 `cat` 函数输出包含字符串 "intersect: " 和 `inter` 的行数的信息。
最后一行 `rm(positive,negative,admat,inter)` 是用来清除内存中的变量,以便释放内存空间。
相关问题
解释这段代码for (i in cancer_types){ admat<-read.csv(str_c(dir,"\tcga_data\",i,"\admat.csv"),check.names=F) positive_rna<-read.csv(str_c(dir,"\tcga_data\",i,"\positive_normalized_rna.csv"),row.names = 1, check.names = F) negative_rna<-read.csv(str_c(dir,"\tcga_data\",i,"\negative_normalized_rna.csv"),row.names = 1, check.names = F) positive_mi<-read.csv(str_c(dir,"\tcga_data\",i,"\positive_normalized_mi.csv"),row.names = 1, check.names = F) negative_mi<-read.csv(str_c(dir,"\tcga_data\",i,"\negative_normalized_mi.csv"),row.names = 1, check.names = F) normal_rna<-read.csv(str_c(dir,"\tcga_data\",i,"\normal_normalized_rna.csv"),row.names = 1, check.names = F) normal_mi<-read.csv(str_c(dir,"\tcga_data\",i,"\normal_normalized_mi.csv"),row.names = 1, check.names = F) positive_delta<-cal_delta_pcc(admat,normal_rna,normal_mi,positive_rna,positive_mi) negative_delta<-cal_delta_pcc(admat,normal_rna,normal_mi,negative_rna,negative_mi) wilcox<-delta_wilcox_test(positive_delta,negative_delta,wilcox_pval) write.csv(wilcox,str_c(dir,"\tcga_data\",i,"\wilcox.csv"),quote=F,row.names=F) row.names(wilcox)<-str_c(wilcox[,1],"",wilcox[,2]) positive_delta<-na.omit(positive_delta) row.names(positive_delta)<-str_c(positive_delta[,1],"",positive_delta[,2]) negative_delta<-na.omit(negative_delta) row.names(negative_delta)<-str_c(negative_delta[,1],"_",negative_delta[,2]) positive_delta<-positive_delta[row.names(positive_delta)%in%row.names(wilcox),] negative_delta<-negative_delta[row.names(negative_delta)%in%row.names(wilcox),] negative_delta<-negative_delta ml_input<-merge(positive_delta,negative_delta,by="row.names") ml_input<-ml_input write.csv(ml_input,str_c(dir,"\tcga_data\",i,"\ml_input.csv"),quote=F,row.names=F) }
这段代码是一个循环,它遍历一个名为"cancer_types"的列表中的每个元素。在循环的每一次迭代中,它执行以下操作:
1. 读取一个名为"admat.csv"的文件,并将其存储为一个数据框对象(admat)。
2. 读取名为"positive_normalized_rna.csv"和"negative_normalized_rna.csv"的文件,并将它们分别存储为数据框对象(positive_rna和negative_rna)。
3. 读取名为"positive_normalized_mi.csv"和"negative_normalized_mi.csv"的文件,并将它们分别存储为数据框对象(positive_mi和negative_mi)。
4. 读取名为"normal_normalized_rna.csv"和"normal_normalized_mi.csv"的文件,并将它们分别存储为数据框对象(normal_rna和normal_mi)。
5. 使用上述数据框对象以及一个名为"cal_delta_pcc"的函数计算正样本和负样本的delta值(positive_delta和negative_delta)。
6. 使用上述delta值以及一个名为"delta_wilcox_test"的函数计算Wilcoxon秩和检验结果(wilcox)。
7. 将Wilcoxon秩和检验结果(wilcox)写入名为"wilcox.csv"的文件。
8. 设置Wilcoxon秩和检验结果(wilcox)的行名(row.names)为两个变量的组合。
9. 删除正样本和负样本的delta值中的缺失值(na.omit)。
10. 设置正样本和负样本的delta值的行名(row.names)为两个变量的组合。
11. 从正样本和负样本的delta值中选择那些在Wilcoxon秩和检验结果(wilcox)中存在的行。
12. 将正样本和负样本的delta值进行合并(merge),并存储为一个名为"ml_input"的数据框对象。
13. 将合并后的数据框对象(ml_input)写入名为"ml_input.csv"的文件。
总体来说,这段代码根据给定的"cancer_types"列表中的每个元素,读取相应的数据文件,并进行一系列计算和处理操作,最终生成一个名为"ml_input.csv"的文件。
请解释一下这段代码for (i in cancer_types){ admat<-read.csv(str_c(dir,"\\tcga_data\\",i,"\\admat.csv"),check.names=F) positive_rna<-read.csv(str_c(dir,"\\tcga_data\\",i,"\\positive_normalized_rna.csv"),row.names = 1, check.names = F) negative_rna<-read.csv(str_c(dir,"\\tcga_data\\",i,"\\negative_normalized_rna.csv"),row.names = 1, check.names = F) positive_mi<-read.csv(str_c(dir,"\\tcga_data\\",i,"\\positive_normalized_mi.csv"),row.names = 1, check.names = F) negative_mi<-read.csv(str_c(dir,"\\tcga_data\\",i,"\\negative_normalized_mi.csv"),row.names = 1, check.names = F) normal_rna<-read.csv(str_c(dir,"\\tcga_data\\",i,"\\normal_normalized_rna.csv"),row.names = 1, check.names = F) normal_mi<-read.csv(str_c(dir,"\\tcga_data\\",i,"\\normal_normalized_mi.csv"),row.names = 1, check.names = F) positive_delta<-cal_delta_pcc(admat,normal_rna,normal_mi,positive_rna,positive_mi)#"自定义cal_delta_pcc"函数计算正样本和负样本的delta值,并把数据装入positive_delta中 negative_delta<-cal_delta_pcc(admat,normal_rna,normal_mi,negative_rna,negative_mi) wilcox<-delta_wilcox_test(positive_delta,negative_delta,wilcox_pval)#自定义delta_wilcox_test函数计算结果 write.csv(wilcox,str_c(dir,"\\tcga_data\\",i,"\\wilcox.csv"),quote=F,row.names=F) row.names(wilcox)<-str_c(wilcox[,1],"_",wilcox[,2]) positive_delta<-na.omit(positive_delta) row.names(positive_delta)<-str_c(positive_delta[,1],"_",positive_delta[,2]) negative_delta<-na.omit(negative_delta) row.names(negative_delta)<-str_c(negative_delta[,1],"_",negative_delta[,2]) positive_delta<-positive_delta[row.names(positive_delta)%in%row.names(wilcox),] negative_delta<-negative_delta[row.names(negative_delta)%in%row.names(wilcox),] negative_delta<-negative_delta[,3:ncol(negative_delta)] ml_input<-merge(positive_delta,negative_delta,by="row.names") ml_input<-ml_input[,-1] write.csv(ml_input,str_c(dir,"\\tcga_data\\",i,"\\ml_input.csv"),quote=F,row.names=F) }
这段代码是一个循环,使用了一个变量`i`来迭代`cancer_types`列表中的元素。在每次迭代中,代码执行以下操作:
1. 从指定路径读取`admat.csv`文件,并将其存储在名为`admat`的变量中。
2. 从指定路径读取`positive_normalized_rna.csv`文件,并将其存储在名为`positive_rna`的变量中。
3. 从指定路径读取`negative_normalized_rna.csv`文件,并将其存储在名为`negative_rna`的变量中。
4. 从指定路径读取`positive_normalized_mi.csv`文件,并将其存储在名为`positive_mi`的变量中。
5. 从指定路径读取`negative_normalized_mi.csv`文件,并将其存储在名为`negative_mi`的变量中。
6. 从指定路径读取`normal_normalized_rna.csv`文件,并将其存储在名为`normal_rna`的变量中。
7. 从指定路径读取`normal_normalized_mi.csv`文件,并将其存储在名为`normal_mi`的变量中。
8. 使用自定义函数`cal_delta_pcc`计算正样本和负样本的delta值,并将结果存储在名为`positive_delta`和`negative_delta`的变量中。
9. 使用自定义函数`delta_wilcox_test`计算正样本和负样本的Wilcoxon秩和检验结果,并将结果存储在名为`wilcox`的变量中。
10. 将`wilcox`写入到指定路径下的`wilcox.csv`文件中。
11. 根据`wilcox`的第一列和第二列创建行名,并将其存储在`wilcox`的行名中。
12. 从`positive_delta`中删除包含NA值的行,并根据第一列和第二列创建新的行名。
13. 从`negative_delta`中删除包含NA值的行,并根据第一列和第二列创建新的行名。
14. 从`positive_delta`中选择行名在`wilcox`的行名之内的行。
15. 从`negative_delta`中选择行名在`wilcox`的行名之内的行,并仅保留第三列到最后一列的数据。
16. 使用行名合并`positive_delta`和`negative_delta`,并将结果存储在名为`ml_input`的变量中。
17. 从`ml_input`中删除第一列。
18. 将`ml_input`写入到指定路径下的`ml_input.csv`文件中。
以上操作将在每个`cancer_types`列表元素上执行,直到迭代完所有元素为止。
阅读全文