2014-11-03 2 views
0

프로그래밍이 많지 않지만 Linux 및 Python을 배우고 있습니다. 13500 개의 시퀀스가있는 시퀀스 파일이 있습니다. 과 시퀀스의 이름은 생물학적 순서로 작업하는 경우시퀀스의 뉴클레오타이드 번호를 포함하는 파일에서 fasta 시퀀스의 이름 형식 변경

>MP_scaffold_001_1 

내가 각 시퀀스의 뉴클레오티드의 수를 계산하고 싶은

>MP_scaffold_001_1 <TAB> <Number_of_nucleotides> 
+0

파일은 각 시퀀스에 몇 개의 뉴클레오티드가 포함되어 있는지 어떻게 지정합니까? – inspectorG4dget

+0

@ inspectorG4dget 일반적으로 FASTA 파일에는 시퀀스에 대한 메타 데이터를 제공하는'> '로 시작하는 하나 이상의 행이 들어 있습니다. 시퀀스 자체는'>'로 시작하지 않는 다음 행에 있습니다. 시퀀스는 문자의 문자열입니다.이 경우 DNA-A, T, C 및 G입니다. – MattDMo

+0

입력 데이터의 예를 제공하면 더 좋을 것입니다. 전체 파일이 아니며 청크 양식을 모방하지 않습니다. – user3159253

답변

0

에 자사의 이름을 변경하려면 한 형태입니다 파이썬, Biopython으로 잘못 갈 수는 없습니다. SeqIO 클래스에는 FASTA 형식의 시퀀스를 포함하여 시퀀스 작업을위한 도구가 포함되어 있습니다. 다음 코드는 시작할 수 있어야합니다

from Bio import SeqIO 
with open("input.fasta", "r") as input, open("output.fasta", "w") as output: 
    for seq in SeqIO.parse(input, "fasta"): 
     length = "\t%d" % len(seq) 
     seq.description += length 
     SeqIO.write(seq, output, "fasta") 

이 코드는 먼저 처리가 완료되면 자동으로 종료됩니다 두 개의 파일 핸들러, inputoutput를 엽니 다. 다음으로 방법을 사용하여 input에있는 각 시퀀스 (seq)를 반복합니다. 시퀀스의 길이는 Python에 내장 된 len() 함수를 사용하여 결정되며 서식 문자열은 \t의 탭 문자와 len()에 의해 반환되는 숫자를 사용하여 작성됩니다. 그런 다음 각 seqdescription 문자열은 length 변수의 내용을 끝에 추가하여 수정됩니다. 마지막으로 새로 수정 된 레코드는 FASTA 형식으로 출력 파일에 기록됩니다.

Biopython의 Tutorial and Cookbook을 통해 읽어보고 모듈이 제공하는 모든 것을 숙지하시기 바랍니다.