mcpField
A
alterlab-clinvar

alterlab-clinvar

github.com/alterlab-ieuデータ・データベース7867 回インストール5 週間前に更新
リポジトリ

alterlab-clinvar について

alterlab-clinvarは、臨床遺伝学や研究でClinVarデータベースを利用するためのガイドです。バリアント検索や分類の解釈、E-utilitiesへのアクセス、分類タイプの区別を含む一括データ処理を扱います。

主な機能

  1. 01遺伝子・疾患・意義によるバリアント検索
  2. 02分類とレビュー星評価の解釈
  3. 03E-utilitiesによるレコード取得
  4. 04XML・VCF・表形式ファイルの処理
  5. 05分類の不一致と根拠の確認

活用シーン

  1. 01特定遺伝子の病原性バリアント検索
  2. 02バリアントコールセットへの臨床注釈の追加
  3. 03ClinVar一括データの絞り込みと分析
  4. 04レビュー評価と分類不一致の確認

インストール

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

$npx skills add https://github.com/alterlab-ieu/alterlab-academic-skills --skill alterlab-clinvar

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

evals/
evals.json
references/
api_reference.md
clinical_significance.md
data_formats.md
scripts/
query_clinvar.py

詳細

ClinVar データベース

概要

ClinVar は、ヒトの遺伝子変異と表現型の関係を、裏付けとなるエビデンスとともに収録した、NCBI が無料で利用できるアーカイブです。このデータベースは、ゲノム変異と人の健康との関係に関する情報を集約し、臨床遺伝学や研究で使用される標準化された変異分類を提供します。

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

次の場合にこのスキルを使用してください。

  • 遺伝子、疾患、または臨床的意義を指定して変異を検索する
  • 臨床的意義の分類(病原性、良性、VUS)を解釈する
  • E-utilities API を介して ClinVar データにプログラムからアクセスする
  • FTP から一括データをダウンロードして処理する
  • レビューステータスと星評価を理解する
  • 相反する変異の解釈を解決する
  • 臨床的意義を付与して変異コールセットに注釈を付ける
対象外
シナリオ代わりに使用
集団の対立遺伝子頻度/祖先集団ごとの AF、gnomAD の制約alterlab-gnomad
体細胞がん変異カタログ、Cancer Gene Census、変異シグネチャーalterlab-cosmic
腫瘍コホート(TCGA、MSK-IMPACT)での遺伝子の変異頻度alterlab-cbioportal
薬理ゲノミクスに基づく遺伝子–薬剤の投与量(CPIC/DPWG)alterlab-clinpgx

3 種類の分類(2024 年以降)。 ClinVar では現在、生殖細胞系列の病原性(ACMG/AMP)、体細胞の臨床的影響(AMP/ASCO/CAP のティア)、発がん性(ClinGen/CGC/VICC)について、個別の集約分類が保持されています。API とファイルではこれらが別々に公開されています。esummary JSON には germline_classification、clinical_impact_classification、oncogenicity_classification の各オブジェクト(それぞれ description と review_status を含む)があり、clinical_significance フィールドは廃止されています。VCF には CLNSIG/CLNREVSTAT(生殖細胞系列)、ONC/ONCREVSTAT、SCI/SCIREVSTAT があります。variant_summary.txt には ClinicalSignificance(生殖細胞系列)に加えて、SomaticClinicalImpact と Oncogenicity の列があります。

主な機能

1. ClinVar の検索とクエリ
ウェブインターフェースでのクエリ

https://www.ncbi.nlm.nih.gov/clinvar/ のウェブインターフェースを使用して ClinVar を検索します。

一般的な検索パターン(フィールドタグは、稼働中の einfo フィールド一覧で確認済みです。[CLNSIG] および [RVSTAT] フィールドはありません。これらを使うと、通知なしに [All Fields] にフォールバックし、絞り込みは行われません)。

  • 遺伝子別:BRCA1[gene]
  • 臨床的意義別:clinsig_pathogenic[Properties](clinsig_likely_pathogenic、clinsig_benign、clinsig_likely_benign、clinsig_vus、clinsig_has_conflicts も使用できます。VUS は clinsig_vus です。clinsig_uncertain は何も一致しません)
  • レビューステータス別:"reviewed by expert panel"[Review status]、"practice guideline"[Review status]、"criteria provided, single submitter"[Review status]
  • 疾患別:"breast cancer"[Disease/Phenotype]
  • 変異別:"c.1310_1313del"[Variant name]
  • 染色体別:13[chr]
  • 組み合わせ:BRCA1[gene] AND clinsig_pathogenic[Properties]
E-utilities によるプログラムからのアクセス

NCBI の E-utilities API を使用して、ClinVar にプログラムからアクセスします。API の詳細なドキュメントについては、以下を含む references/api_reference.md を参照してください。

  • esearch - 条件に一致する変異を検索します
  • esummary - 変異の概要を取得します
  • efetch - 完全な XML レコードをダウンロードします
  • elink - 他の NCBI データベースで関連レコードを検索します

curl を使用した簡単な例:

# Search for pathogenic BRCA1 variants
curl "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=clinvar&term=BRCA1[gene]+AND+clinsig_pathogenic[Properties]&retmode=json"

レスポンス内の querytranslation フィールドを必ず確認してください。[...] タグが未知の場合、NCBI はこれを [All Fields] に書き換え、フィルターが通知なしに無効になります。

ベストプラクティス:

  • 自動化する前に、ウェブインターフェースでクエリをテストする
  • API キーを使用して、リクエスト制限を毎秒 3 件から 10 件に増やす
  • リクエスト制限エラーに対して指数バックオフを実装する
  • Biopython を使用する場合は Entrez.email を設定する
2. 臨床的意義の解釈
分類の理解

ClinVar では、変異の分類に標準化された用語を使用しています。詳細な解釈ガイドラインについては、references/clinical_significance.md を参照してください。

主な生殖細胞系列の分類用語(ACMG/AMP):

  • 病原性(P) - 変異が疾患を引き起こします(確率約99%)
  • 病原性の可能性が高い(LP) - 変異が疾患を引き起こす可能性が高いです(確率約90%)
  • 意義不明(VUS) - 分類するためのエビデンスが不十分です
  • 良性の可能性が高い(LB) - 変異が疾患を引き起こさない可能性が高いです
  • 良性(B) - 変異は疾患を引き起こしません

レビュー状況(星評価):

  • ★★★★ 診療ガイドライン - 最も高い信頼度
  • ★★★ 専門家パネルによるレビュー(例:ClinGen) - 高い信頼度
  • ★★ 複数の投稿者による投稿、矛盾なし - 中程度の信頼度
  • ★ 分類基準の提示、単独の投稿者 — または分類基準の提示、分類に矛盾あり
  • ☆ アサーション基準なし/分類の提示なし - 信頼度が低い

重要な考慮事項:

  • レビュー状況を必ず確認し、★★★または★★★★の評価を優先してください
  • 解釈が矛盾する場合は、手動で評価する必要があります
  • 新しいエビデンスが得られると、分類が変更される場合があります
  • VUS(意義不明)の変異は、臨床利用に十分なエビデンスがありません
3. FTP から一括データをダウンロードする
ClinVar FTP サイトにアクセスする

https://ftp.ncbi.nlm.nih.gov/pub/clinvar/ から完全なデータセットをダウンロードします(HTTPS または FTP で同じディレクトリ構成にアクセスできます)

ファイル形式と処理に関する包括的なドキュメントについては、references/data_formats.md を参照してください。

更新スケジュール:

  • 月次リリース:毎月第1木曜日(完全なデータセット、アーカイブ済み)
  • 週次更新:毎週月曜日(増分更新)
利用可能な形式

XML ファイル(最も包括的。2025-08-07 以降の現行形式で、生殖細胞系列/体細胞の要素が分離されています):

  • VCV(Variation)ファイル:xml/ClinVarVCVRelease_YYYY-MM.xml.gz(および _00-latest シンボリックリンク) - 変異を中心とした集約
  • RCV(Record)ファイル:xml/RCV_release/ClinVarRCVRelease_YYYY-MM.xml.gz - 変異と疾患の組み合わせ
  • 旧形式の ClinVarVariationRelease/ClinVarFullRelease(分類要素が単一)は、xml/VCV_xml_old_format/ と xml/RCV_xml_old_format/ で凍結されており、現在はサポートされていません
  • 投稿の詳細、エビデンス、メタデータをすべて含みます

VCF ファイル(ゲノム解析パイプライン向け):

  • GRCh37:vcf_GRCh37/clinvar.vcf.gz
  • GRCh38:vcf_GRCh38/clinvar.vcf.gz
  • 制限事項:10 kb を超える変異と複雑な構造変異は除外されます

タブ区切りファイル(迅速な分析向け):

  • tab_delimited/variant_summary.txt.gz - すべての変異の概要
  • tab_delimited/var_citations.txt.gz - PubMed の引用情報
  • tab_delimited/cross_references.txt.gz - データベース間の相互参照情報

ダウンロード例:

# Download latest monthly VCV XML release
wget https://ftp.ncbi.nlm.nih.gov/pub/clinvar/xml/ClinVarVCVRelease_00-latest.xml.gz

# Download VCF for GRCh38
wget https://ftp.ncbi.nlm.nih.gov/pub/clinvar/vcf_GRCh38/clinvar.vcf.gz
4. ClinVar データを処理・分析する
XML ファイルを扱う

XML ファイルを処理し、変異の詳細、分類、エビデンスを抽出します。

xml.etree を使用した Python の例:

import gzip
import xml.etree.ElementTree as ET

with gzip.open('ClinVarVCVRelease_00-latest.xml.gz', 'rt') as f:
    for event, elem in ET.iterparse(f, events=('end',)):
        if elem.tag == 'VariationArchive':
            variation_id = elem.attrib.get('VariationID')
            # Aggregate germline call lives under ClassifiedRecord/Classifications
            germline = elem.find('ClassifiedRecord/Classifications/GermlineClassification')
            if germline is not None:
                classification = germline.findtext('Description')      # e.g. "Pathogenic/Likely pathogenic"
                review_status = germline.findtext('ReviewStatus')
            elem.clear()  # Free memory
VCF ファイルを扱う

bcftools または Python を使用して、変異コールにアノテーションを付与するか、臨床的意義でフィルタリングします。

bcftools を使用する場合:

# Filter pathogenic variants
bcftools view -i 'INFO/CLNSIG~"Pathogenic"' clinvar.vcf.gz

# Extract specific genes
bcftools view -i 'INFO/GENEINFO~"BRCA"' clinvar.vcf.gz

# Annotate your VCF with ClinVar
bcftools annotate -a clinvar.vcf.gz -c INFO your_variants.vcf

Python で pysam を使用する場合(旧 PyVCF/import vcf パッケージはメンテナンスされておらず、Python 3.10 以降では動作しないため、代わりに pysam または cyvcf2 を使用してください):

import pysam

vcf = pysam.VariantFile("clinvar.vcf.gz")
for rec in vcf:
    # CLNSIG is a comma/pipe-delimited string (e.g. "Pathogenic/Likely_pathogenic");
    # match as substring, not equality.
    clnsig = str(rec.info.get("CLNSIG", ""))
    if "Pathogenic" in clnsig:
        gene = rec.info.get("GENEINFO", "")
        print(f"{rec.chrom}:{rec.pos} {gene} - {clnsig}")
タブ区切りファイルを扱う

迅速なフィルタリングと分析には、pandas またはコマンドラインツールを使用します。

pandas を使用する場合:

import pandas as pd

# Load variant summary (one row per variant *per assembly* — keep one build,
# or every count is doubled)
df = pd.read_csv('variant_summary.txt.gz', sep='\t', compression='gzip', low_memory=False)
df = df[df['Assembly'] == 'GRCh38']

# Filter pathogenic variants in specific gene
pathogenic_brca = df[
    (df['GeneSymbol'] == 'BRCA1') &
    (df['ClinicalSignificance'].str.contains('Pathogenic', na=False))
]

# Count variants by clinical significance
sig_counts = df['ClinicalSignificance'].value_counts()

コマンドラインツールを使用する場合:

# Extract pathogenic TP53 variants (GRCh38 rows). Columns: 3 Name, 5 GeneSymbol,
# 7 ClinicalSignificance (germline), 17 Assembly, 25 ReviewStatus, 31 VariationID
zcat variant_summary.txt.gz | \
  awk -F'\t' '$5=="TP53" && $7~/Pathogenic/ && $17=="GRCh38"' | \
  cut -f3,5,7,25,31
5. 解釈の不一致に対処する

複数の提出者が同じバリアントに異なる分類を付けた場合、ClinVar は「病原性の分類が競合」(2024 年に「解釈の競合」から名称変更、VCF 値は Conflicting_classifications_of_pathogenicity、レビュー状況は「基準が提示されているが、分類が競合」)と報告します。

解決方法:

  1. レビュー状況(星評価)を確認します。評価が高いほど、より重視されます
  2. 各提出者の根拠と判定基準を確認します
  3. 提出日を考慮します。新しい提出には、更新された根拠が反映されている場合があります
  4. 集団頻度データ(例:gnomAD)を確認し、状況を把握します
  5. 利用可能な場合は、専門家パネルによる分類(★★★)を参照します
  6. 臨床での利用にあたっては、必ず遺伝学の専門家の判断を仰いでください

競合を除外する検索クエリ:

TP53[gene] AND clinsig_pathogenic[Properties] NOT clinsig_has_conflicts[Properties]
6. 分類の更新を追跡する

新たな根拠が明らかになるにつれて、バリアントの分類は変更されることがあります。

分類が変更される理由:

  • 新たな機能研究や臨床データ
  • 集団頻度情報の更新
  • ACMG/AMP ガイドラインの改訂
  • 追加の家系から得られた分離データ

ベストプラクティス:

  • 再現性を確保するため、ClinVar のバージョンとアクセス日を記録します
  • 重要なバリアントの分類を定期的に再確認します
  • 重要な更新情報を受け取るため、ClinVar のメーリングリストに登録します
  • 安定したデータセットには、月次のアーカイブリリースを使用します
7. ClinVar にデータを提出する

組織は、バリアントの解釈を ClinVar に提出できます。

提出方法:

  • ウェブ提出ポータル:https://submit.ncbi.nlm.nih.gov/clinvar/
  • API による提出(サービスアカウントが必要です):references/api_reference.md を参照してください
  • Excel テンプレートを使用した一括提出

要件:

  • NCBI の組織アカウント
  • 判定基準(できれば ACMG/AMP ガイドライン)
  • 分類を裏付ける根拠

提出アカウントの設定については、[email protected] までお問い合わせください。

ワークフローの例

例 1:ある遺伝子で信頼度の高い病原性バリアントを特定する

目的: 専門家パネルのレビューを受けた CFTR 遺伝子の病原性バリアントを検索します。

手順:

  1. ウェブインターフェースまたは E-utilities を使用して検索します:
    CFTR[gene] AND clinsig_pathogenic[Properties] AND ("reviewed by expert panel"[Review status] OR "practice guideline"[Review status])
    
  2. レビュー状況に注意しながら結果を確認します(★★★ または ★★★★ が望ましいです)
  3. バリアントリストをエクスポートするか、efetch で完全なレコードを取得します
  4. 該当する場合は、臨床所見と照合します
例 2:ClinVar の分類で VCF にアノテーションを付ける

目的: バリアントコールに臨床的意義のアノテーションを追加します。

手順:

  1. 適切な ClinVar VCF をダウンロードします(ゲノムビルドを GRCh37 または GRCh38 に合わせてください):
    wget https://ftp.ncbi.nlm.nih.gov/pub/clinvar/vcf_GRCh38/clinvar.vcf.gz
    wget https://ftp.ncbi.nlm.nih.gov/pub/clinvar/vcf_GRCh38/clinvar.vcf.gz.tbi
    
  2. bcftools を使用してアノテーションを付けます:
    bcftools annotate -a clinvar.vcf.gz \
      -c INFO/CLNSIG,INFO/CLNDN,INFO/CLNREVSTAT \
      -o annotated_variants.vcf \
      your_variants.vcf
    
  3. アノテーション付き VCF をフィルタリングし、病原性バリアントを抽出します:
    bcftools view -i 'INFO/CLNSIG~"Pathogenic"' annotated_variants.vcf
    
例 3:特定の疾患に関連するバリアントを解析する

目的: 遺伝性乳がんに関連するすべてのバリアントを調べます。

手順:

  1. 疾患名で検索します:
    "hereditary breast cancer"[Disease/Phenotype] OR "Breast-ovarian cancer, familial"[Disease/Phenotype]
    
  2. 結果を CSV としてダウンロードするか、E-utilities で取得します
  3. レビュー状況でフィルタリングし、信頼度の高いバリアントを優先します
  4. 遺伝子(BRCA1、BRCA2、PALB2 など)ごとの分布を解析します
  5. 解釈が競合するバリアントは個別に調べます
例 4:一括ダウンロードとデータベースの構築

目的: 解析パイプライン用にローカル ClinVar データベースを構築します。

手順:

  1. 再現性を確保するため、月次リリースをダウンロードします:
    wget https://ftp.ncbi.nlm.nih.gov/pub/clinvar/xml/ClinVarVCVRelease_YYYY-MM.xml.gz
    # previous years' monthly files move to xml/archive/<year>/
    
  2. XML を解析してデータベース(PostgreSQL、MySQL、MongoDB)に読み込みます
  3. 遺伝子、位置、臨床的意義、レビュー状況でインデックスを作成します
  4. 更新を追跡できるよう、バージョン管理を実装します
  5. FTP サイトからの月次更新をスケジュールします

重要な制限事項と留意点

データ品質
  • すべての提出が同等に重視されるわけではありません - レビュー状況(星評価)を確認してください
  • 解釈が競合する場合があります - 手動での評価が必要です
  • 過去の提出は古くなっている場合があります - 新しいデータのほうが正確な可能性があります
  • VUS の分類は臨床診断ではありません - 根拠が不十分であることを意味します
対象範囲の制限
  • 直接的な臨床診断には使用できません - 必ず遺伝学の専門家に相談してください
  • 集団に固有 - バリアントの頻度は祖先集団によって異なります
  • 網羅性が不十分 - 十分に研究されていない遺伝子やバリアントがあります
  • バージョンへの依存 - 解析全体でゲノムビルド(GRCh37/GRCh38)を統一してください
技術的な制限
  • VCF ファイルには大きなバリアントが含まれません - 10kb を超えるバリアントは VCF 形式では扱えません
  • API のレート制限 - キーなしでは 3 req/sec、API キーありでは 10 req/sec
  • ファイルサイズ - XML の完全版リリースは、圧縮しても数 GB のファイルです
  • リアルタイム更新なし - ウェブサイトは毎週、FTP は毎月または毎週更新されます

リソース

リファレンスドキュメント

このスキルには、包括的なリファレンスドキュメントが含まれています。

  • references/api_reference.md - esearch、esummary、efetch、elink の使用例を含む、E-utilities API の完全なドキュメントです。レート制限、認証、Python/Biopython のコードサンプルも掲載しています。

  • references/clinical_significance.md - 臨床的意義の分類、レビュー状況の星評価、相反する評価の解決、バリアント解釈のベストプラクティスに関する詳細なガイドです。

  • references/data_formats.md - XML、VCF、タブ区切りファイル形式のドキュメントです。FTP ディレクトリ構造、処理例、形式の選択に関するガイダンスも掲載しています。

外部リソース
お問い合わせ

ClinVar またはデータ提出に関するお問い合わせ: [email protected]

スクリプト

scripts/query_clinvar.py — NCBI E-utilities 経由で ClinVar を利用する実行可能なヘルパーです(キー不要。NCBI_API_KEY を設定するとレート制限が緩和されます)。

python scripts/query_clinvar.py search "BRCA1[gene] AND clinsig_pathogenic[Properties]" --retmax 5
python scripts/query_clinvar.py summary 12345,12346

コメント