所以我有一個看起來像一些文件刪除重複項:追加多個文件,並使用字典
snpID Gene
rs1 ABC1
rs2 ABC1
rs3 ABC25
rs4 PT4
rs5 MTND24
在不同的文件中會有其他snpIDs和基因對,但有可能是一個給定的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基因對,有超過5個文件
想法如何通過這個!
代替'COL0 = line.split()[0]'和'COL1 = line.split()[1]',可以使用只有一個函數調用:'COL0,COL1 = line.split()' – 2013-01-02 15:09:33