我有一个CSV文件,它的样子是这样的: (为了清晰起见,在我的CSV中没有头部,但我在这里添加了它们)
geneName, personNumber, allele1, allele2
gene-1-A, PERSON1, C, G
gene-2_s, PERSON1, A, C
gene_3_D, PERSON1, T, T
.
.
.
gene-1_A, PERSON2, G, G
gene_3_D, PERSON2, A, C
.
.
etc.
每个人可能有5万基因,例如我手头有400个人的文件。
我需要实现一些条件,如:
if personX has allele1 in gene-1_A = "A" AND allele1 in gene-1_A = "B" then add to results.txt "PersonX 'cancer possible'"
在这种情况下,需要检查两个基因。例如:
重要提示:
if (gene1 = 'A' AND 'B') AND (gene213213 = 'G' AND 'G') THEN add then add to results.txt "PersonX 'cancer possible'"
但是条件不是问题,我可以写。但在文件中搜索基因怎么办?我无法索引它,因为有时一个人有一种基因,另一个人没有。
我知道两种方法:
1. 通过pandas将整个CSV文件读入内存,并创建新列以替换函数的方式创建条件,或使用某种不同的方式。但仍会将整个文件加载到内存中。 2. 纯python逐行读取文件并检查每一行。在第一种情况下,如果一种基因很好,保存结果到新列中。在第二种情况下,当我需要检查2个或更多基因时,可以将结果保存在变量中。使用的内存较少(我认为),但时间较长。
这是我的两个方案,而我不知道哪一个在这种情况下更好。我的解决方案可能不是该问题的最佳解决方案,因此,如果您有其他想法,我将很高兴获得帮助。
结果,我需要在一个新文件中保存所有可能的患者。但是将它们移动并不是问题。