Pythonでゲノムシーケンスを効率的に取得しますか?
-
02-10-2019 - |
質問
Pythonを使用してゲノムシーケンスを効率的に取得するにはどうすればよいですか?たとえば、.faファイルまたは他の簡単に取得できる形式から?基本的に、指定されたストランドの指定された染色体のシーケンス[開始、終了]を返すインターフェイスFETCH_SEQ(Chrom、Strand、Start、End)が必要です。
同様に、Phastconsスコアを取得するためのプログラムPythonインターフェイスはありますか?
ありがとう。
解決
Biostarでのあなたの質問に対する私の答えを参照してください:
FASTAファイルを使用してSeqioを使用すると、ファイル内の各アイテムのレコードオブジェクトが戻ってきます。その後、あなたはできます:
region = rec.seq[start:end]
スライスを引き出す。標準的なライブラリを使用することの良い点は、元のFASTAファイルのラインブレークについて心配する必要がないことです。
他のヒント
大規模なヒト染色体ファイルからシーケンスデータを取得することは、メモリでは効率的ではないため、計算効率を探している場合は、シーケンスデータをパックされたバイナリ文字列にフォーマットし、バイトの場所に基づいてルックアップできます。私はこれをPerlで行うためのルーチンを書きました(利用可能 ここ )、およびPythonには同じです ルーチンをパックして開梱します - したがって、それはできますが、限られたマシン上の大きなファイルでトラブルに走っている場合にのみ価値があります。それ以外の場合は、Biopython Seqioを使用してください
を見てみましょう Biopython, 、いくつかの遺伝子配列形式をサポートしています。具体的には、サポートがあります FASTAおよびGENBANKファイル, 、カップルに名前を付ける。
Pyfasta あなたが探しているモジュールです。説明から
FASTAシーケンスファイルへの高速、メモリ効率の、Pythonic(およびコマンドライン)アクセス