Pythonを使用してゲノム配列を効率的にフェッチするにはどうすればよいですか?たとえば、.faファイルやその他の簡単に入手できる形式からですか?基本的に、指定されたストランドの指定された染色体上のシーケンス[start、end]を返すインターフェイスfetch_seq(chrom、strand、start、end)が必要です。
同様に、phastConsスコアを取得するためのプログラムによるPythonインターフェースはありますか?
ありがとう。
Pythonを使用してゲノム配列を効率的にフェッチするにはどうすればよいですか?たとえば、.faファイルやその他の簡単に入手できる形式からですか?基本的に、指定されたストランドの指定された染色体上のシーケンス[start、end]を返すインターフェイスfetch_seq(chrom、strand、start、end)が必要です。
同様に、phastConsスコアを取得するためのプログラムによるPythonインターフェースはありますか?
ありがとう。
大きな人間の染色体ファイルからシーケンスデータを取得することは、メモリ的に非効率的である可能性があるため、計算効率を求めている場合は、シーケンスデータをパックされたバイナリ文字列にフォーマットし、バイト位置に基づいて検索できます。私はこれをperl(ここで利用可能)で行うルーチンを作成しました。pythonには同じpackおよびunpackルーチンがあります。これは実行できますが、限られたマシンで大きなファイルで問題が発生した場合にのみ価値があります。それ以外の場合は、biopythonSeqIOを使用してください
Biostarであなたの質問に対する私の答えを見てください:
FastaファイルでSeqIOを使用すると、ファイル内の各アイテムのレコードオブジェクトが返されます。次に、次のことができます。
region = rec.seq[start:end]
スライスを引き出します。標準ライブラリを使用することの良いところは、元のfastaファイルの改行について心配する必要がないことです。
いくつかの遺伝子配列フォーマットをサポートしているbiopythonを見てください。具体的には、FASTAファイルとGenBankファイルをサポートしています。
pyfastaはあなたが探しているモジュールです。説明から
fastaシーケンスファイルへの高速でメモリ効率の高いpythonic(およびコマンドライン)アクセス