2016-07-11 9 views
6

gik3フォーマットファイルに保存されたゲノム特徴をゲノムファストファイルから抽出することは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の特徴(転写物1)は、2つの子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 

を:

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ファイルは、読み取り関数に使用される入力文字列に連結されています。多分この問題を解決することができます。また、私は100%あなたはどのように機能を抽出するために返された間隔を使用することができます確信していません。

関連する問題