Communitygithub.com

genomic-intelligence

DNA配列から転写制御領域、遺伝子構造、発現量を予測するGenomic Intelligenceスキル

genomic-intelligence とは?

Genomic Intelligence (GI) は、マネージドGPU上で動作するトランスフォーマーDNA言語モデルを介して、6つの配列解析タスクを提供するAIエージェントスキルです。ユーザーは遺伝子シンボル、ゲノム領域、またはDNA/FASTA配列を入力するだけで、プロモーター領域、スプライス部位、エンハンサー活性、クロマチン状態、発現量(log TPM)、および新規遺伝子アノテーションといった構造化された予測結果を得られます。このスキルはローカル環境にモデル重みやGPU、Pythonスタックを必要とせず、ホスト型推論APIへのシンクライアントとして動作します。Claude Code、Cursor、CodexなどのMCP対応エージェントホストでは、キーレスで利用可能なホスト型MCPサーバーを介してシーケンスハンドルベースの効率的なワークフローを実現し、REST APIを介して任意の環境から直接呼び出すこともできます。各タスクは独立したエンドポイントとして公開されており、同期・非同期の両方をサポートし、特にアノテーションタスクでは非同期処理が推奨されます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/K-Dense-AI/scientific-agent-skills/tree/main/skills/genomic-intelligence

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Genomic Intelligence — DNA配列モデル

Genomic Intelligence (GI) は、マネージドGPU上で6つの配列解析タスクにわたるトランスフォーマーDNA言語モデルを提供します。遺伝子シンボル、ゲノム領域、またはDNA/FASTA配列を入力すると、プロモーター領域、スプライス部位、エンハンサー活性、クロマチン状態、発現量(log TPM)、およびde-novo遺伝子アノテーションといった構造化された予測結果を返します。ローカルで実行されるものはありません。モデル重みなし、GPUなし、重いPythonスタックも不要です。これはホスト型でバージョン管理された推論APIのシンクライアントです。

公式ドキュメント: docs.genomicintelligence.ai · RESTコントラクト: api.genomicintelligence.ai/v1/openapi.json · ホスト型MCPサーバー: https://mcp.genomicintelligence.ai/mcp

このスキルを使用するタイミング

ユーザーがDNAを持っていて、モデル予測を必要とする場合にGIを使用します。

  • プロモーターの検索 — ゲノム領域内 (promoter)
  • スプライス部位の予測 — ドナー/アクセプター部位 (splice)
  • エンハンサー活性のスコアリング — 発生期 & ハウスキーピング (enhancer)
  • クロマチン状態のアノテーション — 数百のトラックを横断 (chromatin)
  • 発現量の予測 — 配列 + 細胞種コンテキストからの log(TPM+1) (expression)
  • 遺伝子/転写産物のde-novoアノテーション — 参照配列不要 (annotation)
  • 領域内の遺伝子を検索し、それぞれの発現量を予測 (複合ワークフロー)

ローカルアラインメント、バリアントコーリング、ファイルI/Oには使用しません。そのような場合はローカルツール(BioPython、bcftools)を使用してください。GIは配列からのモデル推論のためのものです。

研究開発目的での使用。臨床診断目的には使用できません。

GIを呼び出す2つの方法

ホスト型MCPサーバー (キーレス; MCPホストで推奨)

GIは https://mcp.genomicintelligence.ai/mcp (Streamable HTTP) でMCPサーバーをホストしています。エージェントホストがMCPをサポートしている場合は、こちらを推奨します。レート制限と同時接続数制限のあるパブリックデモティアに対してキーレスで動作し、オプションの gi_ ベアラキーによりこれらの制限を引き上げることができます。これは、シーケンスハンドル (sequence_ref) を返す取得ツールと、そのハンドルを受け取る predict_* ツールを公開しており、大きなシーケンスをコンテキスト外に保持します。MCP ワークフロー および references/mcp.md を参照してください。

REST API (ユニバーサル)

requests を使用した https://api.genomicintelligence.ai/v1 へのプレーンなHTTP呼び出し。RESTパスには必須で GI_API_KEY (gi_ ベアラ) が必要です。任意のホスト、スクリプト内、または生のエンベロープが必要な場合に使用します。Core REST ワークフロー を参照してください。

アクセスと認証

  1. ホスト型MCPデモはキーレスです — 何も設定せずに試せます。
  2. REST /v1 API にはキーが必要で、Authorization: Bearer <key> として送信します。 [email protected] からリクエストしてください。
  3. キーをハードコードしないでください。 GI_API_KEY 環境変数から読み取ってください(または python-dotenv 経由で .env から)。キーをコミットしないでください。
export GI_API_KEY="gi_yourkeyhere"     # MCPではオプション; RESTでは必須
export GI_BASE_URL="https://api.genomicintelligence.ai"   # ステージング用の上書き

キーは、同時接続数と1分あたりの制限があるパートナーティアにスコープされます。429 は制限に達したことを意味します — バックオフして再試行するか、GIにティアの引き上げを依頼してください。

6つのタスク

各タスクは独自の公開操作であり、独自のリクエストスキーマ、独自の最小長、独自のクローズド options オブジェクトを持ちます — POST /v1/tasks/promoter/predict、/v1/tasks/splice/predict、/v1/tasks/enhancer/predict、/v1/tasks/chromatin/predict、/v1/tasks/annotation/predict、/v1/tasks/expression/predict。各パスはリテラル文字列であるため、何も構築する必要はなく、共有された PredictRequest スキーマはありません。ボディは {sequence, sequence_name?, model?, options?} で、{data, meta} エンベロープを返します。タスクごとに異なる点:

タスク推奨モード受け入れ長context_window_bp備考
promoter同期300–500,000 bp2,000 bpスライディングウィンドウプロモーター領域
splice同期100–500,000 bp15,000 bpドナー/アクセプター部位 (ロングコンテキストBigBird); 鎖特異的 — 転写産物の向きを与える
enhancer同期50–500,000 bp249 bp発生期 + ハウスキーピングスコア (DeepSTARR, Drosophila)
chromatin同期200–500,000 bp1,000 bp数百のトラック (DeepSEA)
expression同期9,198–500,000 bpn/a (trained_window_bp 9,198)log(TPM+1); 正確に9,198 bpでない限り tss_index が必要。さらに細胞種の description が必要
annotation非同期1,000–500,000 bpn/ade-novo転写産物; 送信 + ポーリング; 200,000 bpを超える同期は 413 sync_too_large

推奨モード はガイダンスであり、制約ではありません — すべてのタスクが両方を受け入れます。同期 200 の場合は Prefer を省略し、202 と GET /v1/tasks/jobs/{job_id} の場合は Prefer: respond-async を送信します。唯一の強制制限は操作ごとです: /v1/openapi.json が POST に x-sync-limit-bp を公開している場合、その長さを超える同期リクエストは 413 sync_too_large になります — annotation では200,000 bp、複合ワークフローでは50,000 bp(info.version 2026.09.10.1時点)。数字を暗記するのではなく、フィールドを読み取ってください。他の予測タスクには今日の時点で制限はありません。

最小長はアドミッションコントロールであり、動作条件ではありません。 下限を超えているが、選択したモデルの bio_spec.context_window_bp より短いリクエストは受け入れられ、スコアリングされます — コンテキストウィンドウまでパディングされたウィンドウに対して。Enhancerはその典型例です: 下限は50 bpですが、コンテキストウィンドウは249 bpであるため、50–248 bpは主にパディングに対してスコアリングされます。GET /v1/tasks/{task}/models から context_window_bp と比較して、モデルが実際の配列を見たかどうかを確認してください。コンテキストより長い入力でも問題ありません — スキャナーは予測ウィンドウを一度に1ステップ進め、最後の部分的なウィンドウのみをパディングします。

下限未満および500,000 bpの上限を超える場合は、両方とも 422 validation_failed で loc ["body","sequence"] となります。長さ超過は 413 ではありません。すべての長さは、空白が削除された後に測定されるため、行折り返しされたFASTAボディをそのまま貼り付けることができます(> ヘッダー行はアルファベットチェックに失敗します)。

options は型付けされており、タスクごとにクローズド (additionalProperties: false) です — 不明なキーは、無視されることはなく、ハードな 422 validation_failed で type: "extra_forbidden" となります:

タスクoptions キー
promoterthreshold (0–1, デフォルト 0.5)
splicethreshold (0–1, デフォルト 0.5), site_types (["donor","acceptor"] のサブセット, デフォルト両方)
enhancer(なし)
chromatinthreshold (0–1, デフォルト 0.5)
annotationbatch_size (1–128, デフォルト 8), shift_coordinates, reverse_complement (デフォルト true)
expressiondescription — 必須、かつ唯一のキー

Prefer: respond-async は、annotation だけでなく、6つすべての予測操作と複合操作で宣言されたヘッダーパラメーターです — 非同期 を参照してください。

model を省略すると、APIはタスクのデフォルトを使用します — これが推奨される呼び出し方です。デフォルトのモデルIDは、ここでは意図的に文書化していません。デフォルトは変更される可能性があり、廃止されたIDはハードに失敗するため、ハードコードしないでください。モデルを固定する場合、または非ヒトモデル(Drosophila、yeast、Arabidopsisのモデルがいくつかのタスクに存在します)を選択する場合は、GET /v1/tasks/{task}/models (REST) または list_models (MCP) で呼び出し時にIDを確認してください — 決して独自に作成しないでください。完全なタスクごとの出力形状は references/tasks.md にあります。

expression は6つの中で最も厳格です。その中で唯一、そのスキーマは sequence に加えて options を必須としています。3つのハードルールを強制します — すべての違反は 422 であり、何もパディングまたはクランプされず、オプトアウトフラグ、ヘッダー、クエリパラメーターはありません:

  • 常に正確に1つの9,198 bp TSS中心ウィンドウをスコアリングします — sequence[tss_index-4599 : tss_index+4599]。エンドポイント自体は 9,198–500,000 bp を受け入れます。9,198 bp未満は即座に拒否されます。
  • tss_index は、配列が正確に9,198 bpでない限り必須です。 これは、空白が削除された配列への0ベースのTSSオフセットであり、4599 ≤ tss_index ≤ len(sequence) − 4599 にバインドされます。正確に9,198 bpの場合、デフォルトは4,599となり、そこでの唯一の合法値です。したがって、ロウカス全体(最大500 kb)を送信し、サーバーにウィンドウをカットさせることができます — ただし、サーバーはTSSを自動検出しません(それは複合ワークフローの仕事です)、また、逆相補もしません。遺伝子センス配列を送信してください。
  • options.description — 細胞種/アッセイ文字列(例: "K562 cells") — は必須であり、expression が options 内で受け入れる唯一のキーです。未知のトップレベルボディフィールドも拒否されます。

注意: 合法な tss_index の範囲は広いため、単に間違ったオフセット(改行を含む生のFASTA文字数でカウントされた場合、または送信されたスライスではなくロウカス開始点を基準にした場合)はエラーになりません — 間違ったウィンドウに対して確信度の高い 200 を返します。応答内の meta.task_specific_counts.scored_window / .tss_index を確認してください。送信した長さは meta.sequence_length です(data.input.submitted_sequence_length としてもエコーされます); スコアリングされる幅は常に9,198、すなわち scored_window[1] - scored_window[0] です。(data.input.sequence_length はコントラクトリビジョン13で削除されました。)

tss_index の両方の違反 — 「正確に9,198 bpでない限り必須」と範囲チェック — はモデル全体のバリデーターから発生するため、tss_index の下ではなく、ボディレベルで表面化します。error.code == "validation_failed" にマッチし、メッセージを表示のみに使用してください。このスキルで引用されている loc タプルはすべて、その形状の例示であり、コントラクトの一部ではありません。スキーマで公開されておらず、分岐の基準にしてはいけません。

配列取得

生の9,198 bpの文字列から始めることはほとんどありません。最初に配列を取得します:

  • 遺伝子シンボルから → MCP fetch_ensembl_sequence(gene=...); 座標から → fetch_region(region=...)。どちらも公開Ensemblリファレンス配列を取得します(キー不要)。RESTユーザーはEnsembl RESTを直接クエリできます。(find_genes はアノテーションタスクであり、取得ツールではありません。)
  • expression の場合 → ウィンドウが正確に9,198 bpになるようにTSS中心のフェッチを使用します。MCP: fetch_gene_for_expression(センタリングを処理します)。それ以外の場合は、より広いロウカスをフェッチし、TSSを tss_index として渡してサーバーにウィンドウをカットさせます — ただし、そのオフセットはファイル文字ではなく、空白が削除されたヌクレオチド文字列で計算してください。
  • ローカルFASTAから → MCP store_inline_sequence、またはREST用にファイルを自分で読み取ります。(load_local_fasta はホストサーバーではなく、ローカルデプロイメントにのみ存在します。)
  • デモ配列 → MCP load_demo_sequence(name=...) は、キーレススモークテスト用の準備済みハンドルを返します。name は必須です。

正確なEnsembl呼び出しと式ウィンドウの計算については、references/sequence-acquisition.md を参照してください。

コアRESTワークフロー

同期的に呼び出される — すべてのタスクのデフォルト — 予測は1回の呼び出しです:

import os, requests

BASE = os.environ.get("GI_BASE_URL", "https://api.genomicintelligence.ai")
HEADERS = {"Authorization": f"Bearer {os.environ['GI_API_KEY']}"}

def predict(task, sequence, sequence_name, model=None, options=None, tss_index=None):
    body = {"sequence": sequence, "sequence_name": sequence_name}
    if model:   body["model"] = model
    if options: body["options"] = options
    if tss_index is not None: body["tss_index"] = tss_index   # expression only
    # 各タスクは独自の公開操作ですが、URL文字列は変更されません。
    r = requests.post(f"{BASE}/v1/tasks/{task}/predict", headers=HEADERS, json=body)
    # 422 validation_failed  — タスクの下限未満または500,000 bpを超える配列、
    #                          不正なtss_index、欠落しているoptions.description、
    #                          または未知のbody/optionsキー (options はクローズド)
    # 401 キーなし/不正 · 404 不明なタスク · 413 ボディが16 MiB超過 · 429 レート制限
    r.raise_for_status()
    return r.json()               # {"data": {...}, "meta": {...}}

# Promoter:
out = predict("promoter", seq, "TP53_region")
print(out["data"]["summary"])

# Expression — 事前にカットされた9,198 bp TSS中心ウィンドウ (tss_index はデフォルトで4,599):
out = predict("expression", tss_window_9198bp, "HBB",
              options={"description": "K562 cells"})
print(out["data"]["prediction"]["expression_log_tpm"])

# Expression — ロウカス全体; サーバーは指定したTSSの周りの±4,599 bpをスライスします。
# tss_index は、空白が削除された配列への0ベースです。
out = predict("expression", locus_seq, "HBB",
              options={"description": "K562 cells"}, tss_index=tss_offset_in_locus)
print(out["meta"]["task_specific_counts"]["scored_window"])   # スコアリングされたウィンドウを確認

非同期(任意のタスク; アノテーションに推奨)

Prefer: respond-async は、6つすべての予測操作と複合操作で宣言されたヘッダーパラメーターです。202 は同期 200 と同じ {data, meta} エンベロープを運び、data = {job_id, status: "accepted", links} となります。ジョブIDは Content-Location および X-Job-Id 応答ヘッダーにも含まれます。非同期は JSON のみです — テキスト format と組み合わせると拒否されます。annotation はそれを必要とするタスクです:

import time

r = requests.post(f"{BASE}/v1/tasks/annotation/predict",
                  headers={**HEADERS, "Prefer": "respond-async"},
                  json={"sequence": seq, "sequence_name": "TP53"})
r.raise_for_status()              # 202 Accepted
job_id = r.json()["data"]["job_id"]

while True:
    j = requests.get(f"{BASE}/v1/tasks/jobs/{job_id}", headers=HEADERS)
    if j.status_code == 200:      # 終了: ボディは最終的な {data, meta}
        break
    j.raise_for_status()          # 202 = 実行中 (2xx, raise しない)
    time.sleep(5)                 # 〜20 kbで約20秒
転写産物 = j.json()["data"]["transcripts"]

MCP ワークフロー (ハンドルベース)

MCPホスト上で、ハンドルを取得し、それに対して予測します — 配列はコンテキスト外に保持されます:

# 1. シーケンスハンドルを取得します (各々が sequence_ref を返します):
load_demo_sequence(name="promoter_tp53")  # キーレススモークテスト

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

adaptyv

How to use the Adaptyv Bio Foundry API and Python SDK for protein experiment design, submission, and results retrieval. Use this skill whenever the user mentions Adaptyv, Foundry API, protein binding assays, protein screening experiments, BLI/SPR assays, thermostability assays, or wants to submit protein sequences for experimental characterization. Also trigger when code imports `adaptyv`, `adaptyv_sdk`, or `FoundryClient`, or references `foundry-api-public.adaptyvbio.com`.

aeon

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.

alphagenome

Look up precomputed AlphaGenome Atlas effects for any GRCh38 single-nucleotide variant (AVI score with Phred and 18 SHAP feature attributions, plus raw and quantile scores for RNA-seq, DNase, ATAC, ChIP-TF, ChIP-histone, CAGE, PRO-cap, splicing, polyadenylation and contact-map tracks), score variants or scan windows on demand with the AlphaGenome model for human and mouse (variant scoring, in silico mutagenesis, REF-versus-ALT track prediction), and build Atlas website deep links. Use when the user mentions AlphaGenome, AlphaGenome Atlas, AVI or AlphaGenome Variant Impact, DeepMind variant effect prediction, or wants to prioritise or mechanistically interpret non-coding, regulatory, splicing, enhancer, promoter, or chromatin-accessibility effects of SNVs from a VCF, credible set, or region. Research use only; not a clinical tool.

analytical-method-validation

Plan, execute, and document validation, verification, and transfer of analytical procedures under the governing framework - ICH Q2(R2) and Q14, USP <1220>/<1225>/<1226>, ICH M10 bioanalytical, CLSI EP, or ISO/IEC 17025. Use for HPLC, LC-MS/MS, GC, CE, ICP-MS, dissolution, qNMR, qPCR, NIR, and ligand binding or cell-based assays whenever the question is whether a procedure is fit for its intended purpose. Triggers include

anndata

Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.

arbor

Autonomously improve a real artifact (code, training recipe, agent harness, data pipeline, prompt) against an objective and an evaluator, using Hypothesis Tree Refinement (HTR) from the Arbor paper. Use this whenever someone wants to iteratively optimize something over many experiments without overfitting — e.g.

arboreto

Infer gene regulatory networks (GRNs) from gene expression data using scalable algorithms (GRNBoost2, GENIE3). Use when analyzing transcriptomics data (bulk RNA-seq, single-cell RNA-seq) to identify transcription factor-target gene relationships and regulatory interactions. Supports distributed computation for large-scale datasets.

astropy

Core Python library for astronomy and astrophysics workflows that need Astropy APIs, including units/quantities, coordinates, FITS I/O, tables, time systems, WCS, and cosmology. Use when implementing or debugging astronomical data analysis code with Astropy.

autoskill

Observe the user

benchling-integration

Benchling Python SDK and REST API integration for registry entities, inventory, ELN entries, workflows, Benchling Apps, and Data Warehouse queries. Use when automating lab data with benchling-sdk or the v2 API.

bgpt-paper-search

Search scientific papers and retrieve structured experimental data extracted from full-text studies via the BGPT MCP server. Returns 25+ fields per paper including methods, results, sample sizes, quality scores, and conclusions. Use for literature reviews, evidence synthesis, and finding experimental details not available in abstracts alone.

bids

>

biopython

Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.

bioservices

Unified Python interface to 40+ bioinformatics services. Use when querying multiple databases (UniProt, KEGG, ChEMBL, Reactome) in a single workflow with consistent API. Best for cross-database analysis, ID mapping across services. For quick single-database lookups use gget; for sequence/file manipulation use biopython.

bulk-rnaseq

End-to-end bulk RNA-seq orchestrator — takes raw FASTQ reads through QC and trimming (FastQC, fastp/Trim Galore), alignment and quantification (STAR, Salmon, featureCounts), assembles a gene-level counts matrix, then hands off to differential expression (pydeseq2), pathway/GSEA enrichment (pathway-enrichment), and publication figures (scientific-visualization). Use whenever the user has bulk RNA-seq reads or quant output and wants a complete, reproducible differential-expression workflow — e.g.

cellxgene-census

Query the CZ CELLxGENE Census programmatically for versioned public single-cell and spatial transcriptomics data. Use when you need population-scale cell metadata, gene expression slices, Census summary counts, source H5AD URIs/downloads, embeddings, spatial Census data, or reference atlas comparisons across organisms, tissues, diseases, assays, and cell types. For analyzing your own local single-cell data use scanpy, anndata, or scvi-tools.

cirq

Google quantum computing framework. Use when targeting Google Quantum AI hardware, designing noise-aware circuits, or running quantum characterization experiments. Best for Google hardware, noise modeling, and low-level circuit design. For IBM hardware use qiskit; for quantum ML with autodiff use pennylane; for physics simulations use qutip.

citation-management

Comprehensive citation management for academic research. Search OpenAlex, PubMed, and Google Scholar for papers, extract accurate metadata, validate citations, and generate properly formatted BibTeX entries. This skill should be used when you need to find papers, verify citation information, convert DOIs to BibTeX, or ensure reference accuracy in scientific writing.

clinical-decision-support

Prepare and validate research-only clinical decision-support evaluation, evidence-profile, cohort, survival, biomarker/model, privacy, and governance artifacts. Use for aggregate or synthetic research documentation and traceability—not patient care or live clinical operation.

clinical-reports

Create safety-bounded draft structures and run local deterministic checks for clinical case, diagnostic, trial, safety, and aggregate research reports. Use only with synthetic, de-identified, or aggregate inputs and verified source-fact manifests; every output requires qualified review.

関連スキル