두 파일이 있습니다. 첫 번째 파일은 헤더와 시퀀스가있는 fasta 파일이고 두 번째 파일은 헤더만으로 구성됩니다.fasta 파일에서 파이썬과 일치하는 헤더
File_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
File_2 :
>DF94KKQ1|265|D0M1LACXX|3|2103|4565|10742|2|N|0|TGACCA
>DF94KKQ1|265|D0M1LACXX|3|2103|4668|10746|1|N|0|TGACCA
>DF94KKQ1|265|D0M1LACXX|3|2103|4668|10746|2|N|0|TGACCA
>DF94KKQ1|265|D0M1LACXX|1|2207|10852|3331|2|N|0|TGACCA
I가 7까지 똑같은 문자가 File_1에 아무것도 File_2의 헤더를 일치시킬 '|'.
파일 1의 항목을 분할했습니다 (헤더의 각 섹션은 목록으로 색인 됨). 는 '>'로 시작 애니 라인 변수에 배치됩니다 :
>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
: 나는 다음과 같은 출력을 반환 File_2에서이 같은 인덱스를 비교할 수있는 방법을 찾기 위해 노력 해왔다
#!/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)
여러 가지 방법 중 인덱스를 사용해 보았지만 키가 고유하지 않습니다. 어떻게하면 처음 6 개의 요소를 가져와 내 열쇠로 만들 수 있습니까? 아니면 현재 시도하고있는 것보다 나은 방법이 있습니까? 고맙습니다.
헤더 라인을 라인을로드 그것을 통해 re.finditer 실행, 메모리 매핑 file_1.txt을 포함 , 그들은 게시물에 나타나지 않았다 – user1529819