mcpField
E
ena-database

ena-database

github.com/jackspaceデータ・データベース1636 回インストール12 週間前に更新
リポジトリ

ena-database について

ENA Databaseは、European Nucleotide Archiveの塩基配列データと関連メタデータにアクセスするスキルです。ゲノム研究やバイオインフォマティクスのパイプライン向けに、APIと一括ダウンロード方法を説明します。

主な機能

  1. 01種類やメタデータでレコード検索
  2. 02配列、リード、アセンブリの取得
  3. 03分類情報と相互参照の照会
  4. 04API、FTP、Asperaによるダウンロード
  5. 05XML、JSON、TSV、配列形式の利用

活用シーン

  1. 01研究に関連するサンプルの検索
  2. 02解析用の生リードのダウンロード
  3. 03生物種のアセンブリ検索
  4. 04分類情報や配列注釈の取得

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jackspace/claudeskillz --skill ena-database

インストール後、Claude Code で/ena-databaseを入力して読み込まれたか確認します。

同梱ファイルSKILL.json

詳細

ENA データベース

概要

European Nucleotide Archive(ENA)は、ヌクレオチド配列データおよび関連するメタデータのための包括的な公開リポジトリです。REST API と FTP を通じて、DNA/RNA 配列、生のリード、ゲノムアセンブリ、機能アノテーションにアクセスし、クエリを実行できます。ゲノミクスおよびバイオインフォマティクスのパイプラインで利用できます。

このスキルを使用する場面

このスキルは、次のような場合に使用します。

  • アクセッション番号により、ヌクレオチド配列または生のシーケンスリードを取得する場合
  • メタデータの条件により、サンプル、スタディ、アセンブリを検索する場合
  • 解析のために FASTQ ファイルやゲノムアセンブリをダウンロードする場合
  • 生物の分類学的情報を照会する場合
  • 配列アノテーションおよび機能データにアクセスする場合
  • ENA データをバイオインフォマティクスのパイプラインに統合する場合
  • 関連データベースへの相互参照検索を行う場合
  • FTP または Aspera を介してデータセットを一括ダウンロードする場合

主な機能

1. データの種類と構造

ENA はデータを階層的なオブジェクトタイプに分けて管理します。

スタディ/プロジェクト - 関連するデータをまとめ、公開日を管理します。スタディは、アーカイブされたデータを引用する際の主要な単位です。

サンプル - シーケンスライブラリの作成元となった生体試料の単位を表します。ほとんどのデータタイプを提出する前に、サンプルを登録する必要があります。

生のリード - 次の要素で構成されます。

  • 実験: シーケンシング法、ライブラリ調製、機器の詳細に関するメタデータ
  • ラン: 1 回のシーケンシングランから得られた、生のシーケンスリードを含むデータファイルへの参照

アセンブリ - さまざまな完成度のゲノム、トランスクリプトーム、メタゲノム、メタトランスクリプトームのアセンブリです。

配列 - EMBL ヌクレオチド配列データベースに格納されたアセンブル済み・アノテーション付きの配列です。コード領域・非コード領域および機能アノテーションを含みます。

解析 - 配列データに対する計算解析の結果です。

分類学レコード - 系統および階級を含む分類学的情報です。

2. プログラムによるアクセス

ENA は、データアクセスのために複数の REST API を提供しています。詳細なエンドポイントのドキュメントは references/api_reference.md を参照してください。

主要な API:

ENA Portal API - ENA のすべてのデータタイプを対象とした高度な検索機能

ENA Browser API - レコードとメタデータを直接取得

  • ドキュメント: https://www.ebi.ac.uk/ena/browser/api/doc
  • アクセッション番号を指定して特定のレコードをダウンロードする場合に使用します
  • XML 形式でデータを返します

ENA Taxonomy REST API - 分類学的情報を照会

  • 系統、階級、および関連する分類学データにアクセスできます

ENA Cross Reference Service - 外部データベースの関連レコードにアクセス

CRAM Reference Registry - 参照配列を取得

レート制限: すべての API には、毎秒 50 リクエストのレート制限があります。これを超えると HTTP 429(Too Many Requests)が返されます。

3. データの検索と取得

ブラウザベースの検索:

  • すべてのフィールドを対象としたフリーテキスト検索
  • 配列類似性検索(BLAST 連携)
  • 関連レコードを探すための相互参照検索
  • Rulespace クエリビルダーを用いた高度な検索

プログラムによるクエリ:

  • 大規模な高度検索には Portal API を使用します
  • データタイプ、日付範囲、分類群、メタデータフィールドで絞り込みます
  • 結果は、表形式のメタデータ要約または XML レコードとしてダウンロードできます

API クエリの例のパターン:

import requests

# Search for samples from a specific study
base_url = "https://www.ebi.ac.uk/ena/portal/api/search"
params = {
    "result": "sample",
    "query": "study_accession=PRJEB1234",
    "format": "json",
    "limit": 100
}

response = requests.get(base_url, params=params)
samples = response.json()
4. データ取得の形式

メタデータの形式:

  • XML(ENA のネイティブ形式)
  • JSON(Portal API 経由)
  • TSV/CSV(表形式の要約)

配列データ:

  • FASTQ(生のリード)
  • BAM/CRAM(アラインメント済みリード)
  • FASTA(アセンブル済み配列)
  • EMBL フラットファイル形式(アノテーション付き配列)

ダウンロード方法:

  • API による直接ダウンロード(小さいファイル)
  • 大量データの転送のための FTP
  • 大規模データセットの高速転送のための Aspera
  • 一括ダウンロード用のコマンドラインユーティリティ enaBrowserTools
5. 一般的なユースケース

アクセッション番号でraw シーケンスリードを取得:

# Download run files using Browser API
accession = "ERR123456"
url = f"https://www.ebi.ac.uk/ena/browser/api/xml/{accession}"

研究内のすべてのサンプルを検索:

# Use Portal API to list samples
study_id = "PRJNA123456"
url = f"https://www.ebi.ac.uk/ena/portal/api/search?result=sample&query=study_accession={study_id}&format=tsv"

特定の生物のアセンブリを検索:

# Search assemblies by taxonomy
organism = "Escherichia coli"
url = f"https://www.ebi.ac.uk/ena/portal/api/search?result=assembly&query=tax_tree({organism})&format=json"

分類学的系統を取得:

# Query taxonomy API
taxon_id = "562"  # E. coli
url = f"https://www.ebi.ac.uk/ena/taxonomy/rest/tax-id/{taxon_id}"
6. 解析パイプラインとの統合

一括ダウンロードパターン:

  1. Portal API を使用して、条件に一致するアクセッション番号を検索する
  2. 検索結果からファイル URL を抽出する
  3. FTP または enaBrowserTools を使用してファイルをダウンロードする
  4. ダウンロードしたデータをパイプラインで処理する

BLAST 統合: EBI の NCBI BLAST サービス(REST/SOAP API)と統合し、ENA の配列に対する配列類似性検索を行います。

7. ベストプラクティス

レート制限:

  • HTTP 429 レスポンスを受け取った場合は、指数バックオフを実装する
  • 50 req/sec の制限内に収まるよう、可能な場合はリクエストをまとめる
  • 多数のデータセットには、API 呼び出しを繰り返すのではなく一括ダウンロードツールを使用する

データの引用:

  • 公開時には、常に Study/Project アクセッション番号を使用して引用する
  • 使用した特定のサンプル、ラン、またはアセンブリのアクセッション番号を含める

API レスポンスの処理:

  • レスポンスを処理する前に HTTP ステータスコードを確認する
  • XML レスポンスは、正規表現ではなく適切な XML ライブラリを使用して解析する
  • 大規模な結果セットにはページネーションを処理する

パフォーマンス:

  • 大きなファイル(>100MB)のダウンロードには FTP/Aspera を使用する
  • メタデータのみが必要な場合は、XML よりも TSV/JSON 形式を優先する
  • 多数のレコードを処理する場合は、分類学的な検索結果をローカルにキャッシュする

リソース

このスキルには、ENA を扱うための詳細なリファレンスドキュメントが含まれています。

references/

api_reference.md - 以下を含む包括的な API エンドポイントのドキュメント:

  • Portal API と Browser API の詳細なパラメーター
  • レスポンス形式の仕様
  • 高度なクエリ構文と演算子
  • フィルタリングと検索に使用するフィールド名
  • 一般的な API パターンと例

複雑な API クエリを構築する場合、API レスポンスをデバッグする場合、または特定のパラメーターの詳細が必要な場合には、このリファレンスを読み込んでください。

コメント