【发布时间】:2019-05-22 21:27:36
【问题描述】:
我正在运行代码,我从基因列表中取出一个基因,在 Data1 中找到它的 Sentinel 基因,然后选择所有具有匹配 rssnp1 ID 的行与它的 Sentinel 行中的基因匹配。但是,目前我的代码一次只在一个基因上运行它,我正在尝试运行它,以便它将遍历 Data2 中我的基因列表中的每个基因,创建一个包含所有输出的文件或每个基因的单个文件。
我的数据如下所示:
数据1(文件名:基因座):
Chr Start End rssnp1 Type gene
1 1244733 1244734 rs2286773 LD_SNP ACE
1 1257536 1257436 rs301159 LD_SNP CPEB4
1 1252336 1252336 rs2286773 Sentinel CPEB4
1 1252343 1252343 rs301159 LD_SNP CPEB4
1 1254841 1254841 rs301159 LD_SNP CPEB4
1 1256703 1267404 rs301159 LD_SNP CPEB4
1 1269246 1269246 rs301159 LD_SNP CPEB4
1 1370168 1370168 rs301159 LD_SNP GLUPA1
1 1371824 1371824 rs301159 LD_SNP GLUPA1
1 1372591 1372591 rs301159 LD_SNP GLUPA1
Data2(文件名:基因列表):
gene
CPEB4
GML
TBX2
PNKD
JMJD1C
SKI
MYH11
ACE
我还有一个第三个数据文件,它是使用 keras 机器学习预测基因的类别(每个基因的标签列 0-3),我在提取基因数据后附加此列rssnp1 位置。
Data3(文件名:keraspredictions)
gene keras.prediction
CPEB4 2
GML 1
TBX2 1
PNKD 3
JMJD1C 0
SKI 1
MYH11 2
ACE 1
我正在尝试:
loci <-read.csv('genelocifilter.csv') #Data1
geneslist <-read.csv('genelist.csv') #Data2
keras <-read.csv('Keraspredictions.csv') #Machine learning prediction
getFromData1 <- function(geneFromData2 = NULL) {
if (is.null(geneFromData2)) return()
geneSentinelSNP <- (loci %>% filter(Type == "Sentinel" & gene == geneFromData2))$rssnp1
loci %>% filter(rssnp1 == geneSentinelSNP)
}
gene <- getFromData1(geneFromData2 = "CPEB4")
#if error here Type == Sentinel needs to be LD_SNP
gene_class <- left_join(gene, keras %>% select(gene, Keras.prediction) , by = "gene")
write.csv(gene_class, "./CPEB4.csv", row.names = FALSE)
这可以输出:
Chr Start End rssnp1 Type gene Keras.prediction
1 1244733 1244734 rs2286773 LD_SNP ACE 1
1 1252336 1252336 rs2286773 Sentinel CPEB4 2
我怎样才能让这个迭代每个基因,而不是一次我手动命名的 1 个?我是一个初学者,所以我不知道从哪里开始为此创建一个 for 循环,任何帮助将不胜感激。
【问题讨论】:
-
不是很清楚,您能否提供来自
loci、geneslist、keras数据帧的示例行...以及这些行的预期输出。 -
感谢您的回复。我已经添加了 data1 和 data2 是基因座和基因列表,并添加了 keras 文件的样子。输出在底部,这正是我想要得到的,但是使用迭代代码在 1 中执行每个基因,而不是像我目前在 CPEB4 中手动编写那样一次执行 1。
-
为什么在 ACE keras.prediction 的输出中是 1,而不是 NA?
-
抱歉,我制作这些数据集只是为了举例,错过了 ACE——它现在就在那里
标签: r keras bioinformatics