我试图解析大量样本的距离矩阵:输入文件看起来像这样。
sample 1 sample 2 500
sample 1 sample 3 109
我有一份样本清单,例如:
sample 1
sample 2
sample 3
我试过这个:
from sys import argv
import csv
script, guuids, infile, distfile, out = argv
matrix = open(distfile, 'rb')
matrix_reader=csv.reader(matrix, delimiter='\t')
guuids_list=[]
with open(guuids, 'rb') as guuid_file:
for line in guuid_file:
guuids_list.append(line.strip())
with open(infile, 'rb') as guuids:
counter=0
csv_reader=csv.reader(guuids, delimiter='\t')
for line in guuids_list:
print guuids_list[counter], guuids_list[counter + 1]
for mline in matrix_reader:
if guuids_list[counter].strip() ==mline[0] and guuids_list[counter + 1].strip() == mline[1]:
print 'no'
print line.strip(), guuids_list[counter + 1], mline[2]
elif guuids_list[counter + 1].strip() ==mline[0] and guuids_list[counter].strip() == mline[1]:
print 'yes'
print line.strip(), guuids_list[counter + 1], mline[2]
counter += 1
print guuids_list[1], guuids_list[2]
这适用于前两个样本,但之后没有打印,尽管事实上所有以下样本组合都在距离矩阵中明确看到...任何想法如何解决它?
答案 0 :(得分:0)
我在python 3.4中运行你的程序,发现通过将for loop
更改为while loop
,你的问题就解决了,但你使用的python 2
大约一天前我卸载了所以没有确定它是否适用于您的python
模型。
试试
while line in guuids: