特定のバイオプロジェクトの NCBI データベースからコーディングタンパク質配列を取得しようとしています。これは、Web ブラウザーを使用して何らかの形で実現できます。たとえば、興味のある特定のバイオプロジェクトを見つけて、関連するタンパク質を「クリック」することができます: http://www.ncbi.nlm.nih.gov/genome/proteins/994?project_id=207383すべてを見ることができますBioProject "207383" および Genome "994" のタンパク質。Pythonを使用してそれらのタンパク質配列を自動的に取得したいと思います。
そのために、NCBI の「E-utilities」を使用しました。主に「elink.fcgi?」これにより、データベースの特定のUID(BioProject UIDとしましょう)からリンクされたデータベースのすべてのUID(「タンパク質」としましょう)を取得できます。ここに私の entrez URL リクエストがあります:
http://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?dbfrom=bioproject&linkname=bioproject_protein&id=207383
次に、タンパク質 UID のリストを取得します。 efetch.fcgi を使用した次のリクエストのために、これらが必要ですか? 「Eユーティリティ」。このリクエストにより、必要なものすべてを取得できます。
OK、すべてが素晴らしいので、すべて正常に動作しますが、「elink.fcgi?」から取得したタンパク質 UID の数は? 要求は、手動の Web ブラウザー ベースの検索で表示されるタンパク質の数と同じではありません。さらに悪いことに、これらの問題の原因を調べると、欠落している配列や高等分類群の配列が表示されます (これも BioProject とはまったく関係がありません)。
例を次に示します。この投稿の最初のリンクは、Python リクエストが 3957 タンパク質 UID を取得したときに、多くの 4014 シーケンスを表示します。
タクソノミー UID からリンクされたすべてのタンパク質 UID を取得するなど、他のアプローチをいくつか試しました。さまざまなバイオプロジェクトがあるため、これは通常、必要以上のシーケンスを提供します (また、異なる名前で同じ Fasta のダブルもいくつか提供します)。
これを行う方法はありますか?