所以我有一些看起来像这样的文件:
snpID Gene
rs1 ABC1
rs2 ABC1
rs3 ABC25
rs4 PT4
rs5 MTND24
在不同的文件中会有其他的 snpID 和基因对,但给定的 snpID 可能有重复,但相关的相应“基因”可能不同。例如:
snpID Gene
rs100 URX1
rs95 KL4
rs1 ABC1
rs2 ABC1-MHT5
rs3 ABC25
rs4 PT4-FIL42
我想要做的是附加文件的所有内容,如果它们具有相同的 snpID 和基因对,则删除重复项。然而,如果一个 snpID 的对应基因不同,它必须进入同一行对于上面的示例,它应该如下所示:
snpID Gene
rs1 ABC1
rs2 ABC1, ABC1-MHT5
rs3 ABC25
rs4 PT4, PT4-FIL42
rs5 MTND2
rs100 URX1
rs95 KL4
我想我可以通过创建字典来实现这一点。
import glob
file_list = glob.glob('annotations.*')
dict_snps_genes = {}
for filename in file_list:
with open(filename) as fileA:
for line in fileA:
col0 = line.split()[0]
col1 = line.split()[1]
dict_snps_genes[col0] = col1
unique_dict_snps = {}
for key,value in dict_snps_genes:
if key not in unique_dict_snps.keys():
unique_dict_snps_genes[key] = value
我在进一步移动之前对此进行了测试,这给了我一个错误,例如:
ValueError: too many values to unpack
PS:每个文件有大约8000个snpId-Gene对,超过5个文件
关于如何克服这个问题的想法!