|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- import sys
- from collections import OrderedDict
- args=sys.argv
- family_barcode_dict = OrderedDict()
- family_fastq_dict = OrderedDict()
- #创建一个字典对应barcode和sampleID
- def makedict(barcode_sample):
- with open(barcode_sample) as f:
- for line in f:
- sampleID=f.split("\t")[0]
- barcode=f.split("\t")[1]
- if barcode not in family_barcode_dict:#这里检索的是key有没有在字典里面
- family_barcode_dict[barcode]=sampleID #sampleID当做value
- #运行完一个megapool以后,需要把dict这个字典里面的信息清零,然后再运行下一个megapool
- #将不同样本的信息传入到不同的list里面
- def divide_sample_fastq(index,r1,r2):
- with open(index,"r") as f1, open(r1,"r") as f2, open(r2,"r") as f3:
- while True: #因为这三个文件的格式是fastq,四行一个单位,所以一次读取四行进行处理
- index_line_1=f1.readline().strip("\n")
- if not (index_line_1):
- break
- r1_line_1=f2.readline().strip("\n")
- r2_line_1=f3.readline().strip("\n")
- index_line_2=f1.readline().strip("\n")
- r1_line_2=f2.readline().strip("\n")
- r2_line_2=f3.readline().strip("\n")
- index_line_3=f1.readline().strip("\n")
- r1_line_3=f2.readline().strip("\n")
- r2_line_3=f3.readline().strip("\n")
- index_line_4=f1.readline().strip("\n")
- r1_line_4=f2.readline().strip("\n")
- r2_line_4=f3.readline().strip("\n")
- ID=family_barcode_dict[index_line_2]#这里ID是sampelID
- r1_new_line_1=ID+":"+r1_line_1
- r2_new_line_1=ID+":"+r2_line_1
- if ID not in family_fastq_dict:
- family_fastq_dict[ID]=[] #把相同sample的样本放在一个字典下面的同一个列表里面
- family_fastq_dict[ID].append(r1_new_line_1)
- family_fastq_dict[ID].append(r1_line_2)
- family_fastq_dict[ID].append(r1_line_3)
- family_fastq_dict[ID].append(r1_line_4)
- family_fastq_dict[ID].append(r2_new_line_1)
- family_fastq_dict[ID].append(r2_line_2)
- family_fastq_dict[ID].append(r2_line_3)
- family_fastq_dict[ID].append(r2_line_4)
- def main(barcode_sample,index,r1,r2): #这里要求的是形式参数
- makedict(barcode_sample)
- divide_sample_fastq(index,r1,r2)
- for i in family_fastq_dict:
- filename=i+".fq"
- with open(filename,"w") as f:
- f.write("\n".join(family_fastq_dict[ID])
- if __name__ == "__main__":
- main(args[1],args[2],args1[3],args[4])
复制代码
请问我运行上面的代码出现如下问题,是怎么回事。我python 不是太精通,还有能帮看看代码还有其他问题吗?谢谢
if __name__ == "__main__":
^
SyntaxError: invalid syntax
你的 f.write("\n".join(family_fastq_dict[ID])這裏少個右括號
f.write("\n".join(family_fastq_dict[ID]))
|
|