MongoDBを使って変異情報の管理がしたいという一心で仕事に手がつかないkimotonですこんにちは。 コロナもいいけどそんなことより花粉がヤバいですね。皆さんお気をつけて。
変異マイニング系の論文を読み漁っておりますので1つ投下します。
Purpose
MongoDBを用いたVCFから登録可能な変異DBを考察する。
Author
Amanda Birmingham, Adam M Mark, Carlo Mazzaferro, Guorong Xu, Kathleen M Fisch
UCSD CCBBの人です。
Motivation
- 全エクソームおよび全ゲノムシーケンシングの利用可能性の増加により、再現性のあるスケーラブルな変異解析に対する需要は広がっている。一方で、データのアノテーションをマイニングするための技術的ハードル、特に人類規模の全ゲノム配列を用いた解析での技術的ハードルが、変異情報を知見として利用する際の障壁となっている。
- 多くの変異アノテーションを利用し、変異のランク付けを行うには、各種アノテーションソフトウェアの詳細を理解し分析環境に統合し、複雑なデータ構造を持ったデータベースをオーダーメイドで開発する必要がある。
Superiority
カスタムクエリの作成方法に関するチュートリアル、必要なソフトウェアのインストール手順、ローカルデータファイルの更新コマンド等、情報系に詳しくないユーザーでも容易に利用できる工夫がされている。
ユーザーが関心ある変異をフィルタリングする際にデータ構造を学ぶ必要がない。有害な希少変異、既知の疾患変異、有害な複合ヘテロ接合変異、およびトリオのde novo変異といった一般に関心の対象となる変異のフィルタリングを提供している (参照:filtering-variants)。
- 標準のPyMongo構文を使用してMyVariant.infoまたはANNOVARの各フィールドのデータを参照できるようにデータが管理されているため、容易にカスタムクエリを作成することができる。
- MIT ライセンスで配布されているため、既存のコードをベースにしてユーザーが独自の変異フィルタリングや優先度付けを実装することができる。
Discussion
- MyVariant.infoのスキーマを踏襲しており、ユーザーにとって扱いやすい。
- MongoDBやBCFtools、Tabixをインストールしていく必要があり少々面倒。ライセンス的に再配布が許可されていないANNOVARはどうしようもなさそうだが、インストール手順の簡略化はもう少し工夫できそう。
- 全てPythonで記述されている、変異のパースやアノテーションは並列化されているようだが、パフォーマンス
- 最新のMyVariant.infoアノテーションを使用するため、
annotate()
メソッドでは毎度APIをたたきにいっている。
Reference
- BigQ: a NoSQL based framework to handle genomic variants in i2b2
i2b2 centerでは、既存の臨床データと遺伝学的データを統合的に管理するためにBigQというNoSQLベースのフレームワークを使用している。
Memo
- ワークフローは下記の通り。‘ANNOVARによるアノテーションは任意となっている。
- UCSD CCBBでは、VCFを出力する解析パイプラインにCirrus-NGSというパイプラインを使用しているらしい。
現在、Cirrus-NGSバリアント呼び出しパイプライン内にVAPrを組み込み、自動アノテーションとデータベース追加まで一貫して実行できるようにしている。また、RNA変異に関するアノテーションをサポートする機能を追加している。
提供されている変異フィルタリングの基準は下記。
- 希少な有害変異
- 1000 Genomes (ALL) allele frequency(Annovar) < 0.05 または情報なし
- ESP6500 allele frequency (MyVariant.info - CADD) <0.05または情報なし
- cosmic70(MyVariant.info)が存在
- Func_knownGene(Annovar)が、エクソン、スプライシング、またはその両方
- ExonicFunc_knownGene(Annovar)は「synonymous SNV」以外
- 既知の疾患変異
- cosmic70(MyVariant.info)情報が存在するか、ClinVarデータが存在し、臨床的意義が良性または良性ではない
- 有害な複合ヘテロ接合変異
- genotype_subclass_by_class(VAPr)が複合ヘテロ接合体
- CADD phredスコア(MyVariant.info-CADD)> 10
- De novo 変異
- 発端者に変異が存在する
- 祖先1または祖先2のいずれにも存在しない変異
- 希少な有害変異
サンプル
デフォルトのフィルタリング条件を使用する場合、たった4行でアノテーションからデータ抽出まで実行できる。
from VAPr import vapr_core.VaprAnnotator # Parse, annotate, and save variants from input VCF annotator = VaprAnnotator(“/path/to/vcfs/”, “/path/to/output_dir/”, mongo_db_name, mongo_ collection_name, “/path/to/annovar/”, build_ver=“hg19”) dataset = annotator.annotate() # Identify and prioritize known variants known_disease_variants = dataset.get_known_disease_variants()