python 中根据给出的scafflod名称从fasta文件中提取指定的序列
001、
root@PC1:/home/test2# ls a.fasta scaffold.txt test.py root@PC1:/home/test2# cat a.fasta ## 测试fasta文件 >gene2 myc AGCTGCCTAAGC GGCATAGCTAATCG >gene1 jun ACCGAATCGGAGCGATG GGCATTAAAGATCTAGCT >gene4 malat1 AGGCTAGCGAG GCGCGAG GATTAGGCG >gene3 jun ACCGAATCGG GGCATTAAAGATCTAGCT root@PC1:/home/test2# cat scaffold.txt ## 给定的scaffold名称 >gene6 yyy >gene2 myc >gene4 malat1 >gene8 xxx root@PC1:/home/test2# cat test.py ## 测试程序 #!/usr/bin/python in_file = open("a.fasta", "r") dict1 = dict() for i in in_file: i = i.strip() if i[0] == ">": key = i dict1[key] = [] else: dict1[key].append(i) scaffold = open("scaffold.txt", "r") lines = scaffold.readlines() for i in dict1.keys(): if (i+"\n") in lines: print(i) for j in dict1[i]: print(j) in_file.close() root@PC1:/home/test2# python test.py ## 提取结果 >gene2 myc AGCTGCCTAAGC GGCATAGCTAATCG >gene4 malat1 AGGCTAGCGAG GCGCGAG GATTAGGCG
参考:https://www.jianshu.com/p/403a23fdd7bb