我有两个文件:第一个是一个带有头和序列的fasta文件,第二个文件只由头组成。在
文件1:
>DF94KKQ1|265|D0M1LACXX|3|2103|4637|10742|1|N|0|TGACCA
TTCCAAAGAAACATGGAAGACCCAGGACTTGGAGGCACCAGGCACCAGCACACAGGGGTA
GGCACATGGCATGGTGTTGGTTGAAGTCTACTTTTCCCACC
>DF94KKQ1|265|D0M1LACXX|3|2103|4565|10742|1|N|0|TGACCA
TTAATTTTTTCAGGCAAGTTTTGTGGATTTCAGTGTGTAAGTCTTTCACCTCTTTGGTTA
AATTTATTCCTATGTATTTTATTCCTTTAGATGCTATTATG
>DF94KKQ1|265|D0M1LACXX|3|2103|4565|10742|2|N|0|TGACCA
TTAATTTTTTCAGGCAAGTTTTGTGGATTTCAGTGTGTAAGTCTTTCACCTCTTTGGTTA
AATTTATTCCTATGTATTTTATTCCTTTAGATGCTATTATG
文件2:
^{pr2}$我想把文件2中的头与文件1中直到第7个“|”之前具有相同字符的任何内容匹配。在
我将文件_1中的项拆分(头的每个部分都索引到一个列表中)。任何以“>;”开头的行都被放入变量中:
#!/usr/bin/env python
import sys
from Bio import SeqIO
#Function, split header line into a list
def getHeaderInfo(blastLine):
myFields = blastLine.strip("\n").split("|")
HeaderInfo = myFields[:6]
return HeaderInfo
input_file = sys.argv[1]
#Get input file from the command line
inFileName = sys.argv[1]
#open the input file
inFileHandle = open(inFileName)
#loop over the input file line by line
for thisLine in inFileHandle.readlines():
if thisLine [0] == '>':
print getHeaderInfo(thisLine)
HeaderInfo = getHeaderInfo(thisLine)
我一直在尝试找到一种方法,在该方法中,我可以比较文件2中的这些相同索引,以返回以下输出:
>DF94KKQ1|265|D0M1LACXX|3|2103|4565|10742|1|N|0|TGACCA
TTAATTTTTTCAGGCAAGTTTTGTGGATTTCAGTGTGTAAGTCTTTCACCTCTTTGGTTA
AATTTATTCCTATGTATTTTATTCCTTTAGATGCTATTATG
>DF94KKQ1|265|D0M1LACXX|3|2103|4565|10742|2|N|0|TGACCA
TTAATTTTTTCAGGCAAGTTTTGTGGATTTCAGTGTGTAAGTCTTTCACCTCTTTGGTTA
AATTTATTCCTATGTATTTTATTCCTTTAGATGCTATTATG
我尝试过的几种方法都使用索引,但是我的键不是唯一的。我该如何获取前六个元素并将它们作为我的密钥,或者有比我当前尝试的方法更好的方法吗?谢谢您。在
此方法涉及内存映射文件_1.txt,运行芬代尔通过它将行加载到由header键控的defaultdict中
这是你想要的吗?在
相关问题 更多 >
编程相关推荐