2014-04-01 4 views
0

BioPython의 AlignIO 모듈을 사용하여 Nexus 파일을 읽고 시퀀스 및 ID 목록을 생성 할 수 있습니다. Mesquite 및 기타 프로그램에서 생성 된 Nexus 파일은 무시되거나 필터링 될 수있는 set of excluded positions (exset이라고 함)을 정의 할 수 있습니다. Biopython은 넥서스 파일에서 exset을 파싱하는 방법을 제공합니까? (이상적으로 정수 목록에). 나는 문서에서 언급을 찾을 수 없었다. 지금 당장 필자는 필자 자신의 기능을 작성했다.이 기능은 다소 복잡하고 특정 넥서스 파일에 너무 의존적 일 수있다.Nexus 파일에서 정렬의 제외 위치 가져 오기

+1

나는 그렇게 생각하지 않는다! –

답변

0

Biopython은 제한적으로이를 지원합니다. 그러나 당신이 찾고있는 데이터는 넥서스 개체에 있습니다

from Bio.Nexus import Nexus 

# I'm using the sample file from 
# http://paup.csit.fsu.edu/data/primate-mtDNA-interleaved.nex 
nex = Nexus.Nexus(input="sample.nex") 

for block in nex.unknown_blocks: 
    if block.title == "assumptions": 
     for assumption in block.commandlines[0]: 
      if assumption.startswith("exset"): 
       print assumption 

출력 :

exset coding = noncoding 
exset noncoding = coding 

그래서 파서가 unknown_blocks에 "가정"블록을로드합니다. 여기서 "가정 (assumptions)"이라고 불리는 블록을 검색하고 수작업으로 파싱 할 수 있습니다. 커맨드 라인은 목록이있는 목록을 포함하고 있으므로 여기서는 맨 처음 명령 줄을 추출했습니다. "exset"으로 시작하는 줄에 대해서만 전용 구문 분석기를 쉽게 만들 수 있습니다.