2017-09-25 2 views
0

에 FASTA 파일에서 첫 번째 레코드를 삭제 : 나는 파일의 첫 번째 요소를 제거 할 것인지나는 다음과 같은 형식의 작은 FASTA 파일이 파이썬

>gene_1 + other data 
seq 1 
>gene_1 + other data 
seq2 
>gene_1 + other data 
seq3 

합니다. 이 스크립트는 대용량 Python 스크립트의 일부이며, 해당 seq로 작업하고 흥미로운 부분을 추출한 후에 파일에서 제거하고 싶습니다. 결국 파일은 비워져서 폴더에서 삭제할 수 있습니다. Biopython을 사용하면서 필자는 Biopython에서이 기능을 찾을 수 있는지 확인하려고했지만 fasta 파일에서 레코드를 삭제하는 방법에 대한 힌트를 찾을 수 없습니다. SeqIO에는 일종의 목록이 있으므로 list.remove(list[0]) 메서드로 시도했지만 작동하지 않습니다. 이것에 대한 어떤 생각? 누군가 스크립트를 게시하도록 요청하는 경우, 스크립트의 길이는 약 200 줄입니다. 감사합니다. .

import sys 
from Bio import SeqIO 

filename = sys.argv[1] 

sequences = [] 

for not_first, record in enumerate(SeqIO.parse(filename, 'fasta')): 
    if not_first: 
     sequences.append(record) 

SeqIO.write(sequences, 'truncated-' + filename, 'fasta') 

그것은 우리가 메모리에 그들 모두를 읽고 피하려는 것이 아니라 단지 한 번에 하나씩 처리 긴 시퀀스도 시퀀스 많은 수의 최적 아니다 :

답변

0

다음은 시작하는 간단한 일입니다. 그러나 시작하기에 좋은 곳입니다.

+0

Yepp 나는이 용어들을 생각하고 있었다. biopython이이 문제를 해결할 수있는 무언가를 가지고 있다고 생각했습니다. 목록 (SeqIO.parse)을 사용하지만 목록에있는 모든 기능을 가지고 있지는 않습니다. 도와 주셔서 정말로 고맙습니다. – Ana

관련 문제