2016-07-11 1 views
6

gik3 형식의 파일에 저장된 게놈 fasta 파일의 게놈 특징을 scikit-bio에서 추출 할 수 있습니까?scikit-bio는 gff3 파일의 게놈 특징을 추출합니다

예 :


genome.fasta

>sequence1 
ATGGAGAGAGAGAGAGAGAGGGGGCAGCATACGCATCGACATACGACATACATCAGATACGACATACTACTACTATGA 

annotation.gff3

#gff-version 3 
sequence1 source gene 1 78 . + . ID=gene1 
sequence1 source mRNA 1 78 . + . ID=transcript1;parent=gene1 
sequence1 source CDS 1 6 . + 0 ID=CDS1;parent=transcript1 
sequence1 source CDS 73 78 . + 0 ID=CDS2;parent=transcript1 

원하는 시퀀스 mRNA 특징 (transcript1)이 두 개의 자식 CDS 특징들의 연관성이 될 것이다. 따라서이 경우 'ATGGAGCTATGA'이됩니다.

+0

scikit-bio 0.5.0부터는 gff3 파일 읽기가 지원되지 않습니다. 이 기능을 프로젝트에 추가하고 싶다면 문제 추적기에 기능 요청을 제출하십시오. https://github.com/biocore/scikit-bio/issues – jairideout

답변

1

이 기능은 scikit-bio에 추가되었지만 bioconda에서 사용할 수있는 버전은 아직 지원되지 않습니다 (2017-12-15). gff3의 형식 파일은 Github repository에 있습니다. 다음과 같은 코드가 작동해야

$ git clone https://github.com/biocore/scikit-bio.git 
$ cd scikit-bio 
$ python setup.py install 

파일에 주어진 예를 들어 다음과 같습니다 :

당신은 REPO를 복제하고 사용하여 로컬로 설치할 수 있습니다 나를 위해

import io 
from skbio.metadata import IntervalMetadata 
from skbio.io import read 

gff = io.StringIO(open("annotations.gff3", "r").read()) 
im = read(gff, format='gff3', into=IntervalMetadata, seq_id="sequence1") 

print(im) 

이이 FormatIdentificationWarning 상승이, 항목이 올바르게보고됩니다.

4 interval features 
------------------- 
Interval(interval_metadata=<140154121000104>, bounds=[(0, 78)], fuzzy=[(False, False)], metadata={'source': 'source', 'type': 'gene', 'score': '.', 'strand': '+', 'ID': 'gene1'}) 
Interval(interval_metadata=<140154121000104>, bounds=[(0, 78)], fuzzy=[(False, False)], metadata={'source': 'source', 'type': 'mRNA', 'score': '.', 'strand': '+', 'ID': 'transcript1', 'parent': 'gene1'}) 
Interval(interval_metadata=<140154121000104>, bounds=[(0, 6)], fuzzy=[(False, False)], metadata={'source': 'source', 'type': 'CDS', 'score': '.', 'strand': '+', 'phase': 0, 'ID': 'CDS1', 'parent': 'transcript1'}) 
Interval(interval_metadata=<140154121000104>, bounds=[(72, 78)], fuzzy=[(False, False)], metadata={'source': 'source', 'type': 'CDS', 'score': '.', 'strand': '+', 'phase': 0, 'ID': 'CDS2', 'parent': 'transcript1'}) 

예를 들어, 코드에서 GFF3과 FASTA 파일은 read 함수에 사용 된 입력 문자열에서 연결됩니다. 어쩌면이 문제를 해결할 수 있습니다. 또한 100 % 확신 할 수없는 방법으로 추출한 간격을 사용하여 기능을 추출 할 수 있습니다.