macでインフォマティクス

macでインフォマティクス

HTS (NGS) 関連のインフォマティクス情報についてまとめています。

データベースやゲノムアセンブリの汚染・キメラアセンブリ配列を調べる conterminator

2022/06/22 タイトル修正, インストール手順追記

 

 公的・私的リポジトリのゲノム数は、少なくとも過去10年間で急増しており、その主な理由は、塩基配列決定にかかる費用が急速に低下したことにある。また、公開されているゲノムデータベースGenBankは、EMBLやDDBJと定期的に同期しており、約18ヶ月ごとにその数が倍増している。これらのゲノムデータベースは、約30年間にわたってバイオテクノロジーと医学の新しい知見を推進してきた重要な世界的リソースである。

 このデータベースは、数百から数千の無秩序なDNA配列断片からなるドラフトゲノムであり、GenBankに保存されている50万以上のゲノムの大部分を占めている。これらの断片の中には、試薬、実験材料、サンプル処理の人工物、多重化されたシークエンシングの実行による交差汚染などにより、外来DNAが含まれているものもある(論文図1a)。これらの汚染された配列は、メタゲノム研究における配列のラベル付けの誤り、遺伝子の水平移動に関する誤った結論、ゲノムのアノテーションの質の低下など、様々な問題を引き起こす可能性がある。

 汚染の問題に対処するために、NCBIGenBankの本拠地)では、汚染された断片を検出するために2つのフィルタリングプロトコルを適用している。第一に、合成配列(ベクター、アダプター、リンカー、プライマーなど)を検出するためにVecScreenを使用し、第二に、一般的な汚染物質とのBLASTアライメントにより、より広範な汚染配列を検出する。これらのフィルターにもかかわらず、汚染は依然として発生しており、その検出は依然として困難な状況にある。

ヒトDNAはシーケンシングラボに常に存在しているため、ホモ・サピエンスはゲノムプロジェクトの主要な汚染源であり続けている。自動検索にもかかわらず、公開されているゲノムの中に汚染されたヒトDNAの断片が残っていることがある [ref.11]。例えば、最近の研究では、何千ものヒトDNA断片が細菌ゲノムのドラフトに含まれている可能性があり、これらの多くが誤ってタンパク質として翻訳され、アノテーションされていることが示されている[ref.10]。しかし、他の多くの種[ref.12-16]も汚染の原因となっている。汚染を検出するための系統的なアプローチは、提出されたすべてのゲノムを他の既知のすべてのゲノムと比較する計算コストによって制限されている。例えば、1.5Tbのサイズを持つRefSeqデータベースのBLAST全対全比較を行うには、約30,000CPU年かかると言われている。Minimap2やBowtie2のようなより高速なアラインメント手法は時間はかからないが、この比較の二次的な複雑さに悩まされることになる。Mashやsourmashのような他の高速な方法は、より迅速にゲノムを比較することができるが、より大きなゲノム内の小さな汚染配列を見つけるのには適していない。

 本研究では、分類学的キングダム間の局所的なアラインメントを計算することで、ヌクレオチドデータベースやタンパク質データベースの汚染を検出する高速な手法であるConterminator(論文図1b)を紹介する。この手法は、Linclustの線形時間の全対全比較アルゴリズムを利用し、MMseqs2を用いた網羅的なアラインメントを行う。これにより、巨大なヌクレオチドとタンパク質の配列セットを単一のサーバー上で処理することが可能となった。この方法を適用して、ヌクレオチドデータベースGenbankとRefSeq、および包括的なNRタンパク質データベースのコンタミネーションの現状を定量化した。

 

Conterminatorは、クロスキングドムのアラインメントを検出し、汚染を予測する。MMseqs2の既存のモジュールをベースに、汚染検出用に拡張したものである。Conterminatorは、ゲノム配列の中から、他のキングダムのゲノムと少なくとも100塩基以上の長さで、かつ配列同一性閾値が90%以上でアラインする領域を同定する。ごく少数の例外を除き、異なるキングダムのDNA配列は全くアライメントされるべきではなく、このレベルの同一性で一致する配列は汚染物の有力な候補となる。このルールの例外として、最近の水平方向の遺伝子導入イベントが挙げられるが、これは非常にまれである。

 

インストール

ubuntu18.04LTSでmambaを使ってテストした。

# SSE4.1
wget https://mmseqs.com/conterminator/conterminator-linux-sse41.tar.gz; tar xvfz conterminator-linux-sse41.tar.gz; export PATH=$(pwd)/conterminator/:$PATH
# AVX2
wget https://mmseqs.com/conterminator/conterminator-linux-avx2.tar.gz; tar xvfz conterminator-linux-avx2.tar.gz; export PATH=$(pwd)/conterminator/:$PATH

# conda、ここでは高速なmambaを使う(link
mamba install -c bioconda conterminator -y

> conterminator -h

Search for Contamination.

 

conterminator Version: 570993be7f5f31ee357183c9118bf3aa75575870

© Martin Steinegger (themartinsteinegger@gmail.com)

 

Main workflows for database input/output

dna Searches for cross taxon contamination in DNA sequences

protein Searches for cross taxon contamination in protein sequences

 

Bash completion for modules and parameters can be installed by adding "source MMSEQS_HOME/util/bash-completion.sh" to your "$HOME/.bash_profile".

Include the location of the conterminator binary in your "$PATH" environment variable.

conterminator dna -h

$ conterminator dna

Usage: conterminator dna <i:fasta/q> <i:mappingFile> <o:result>

<tmpDir> [options]

 

Options:

 Align:

   --min-seq-id FLOAT         list matches above this sequence

identity (for clustering) (range 0.0-1.0) [0.900]

   --min-aln-len INT          minimum alignment length (range 0-INT_MAX) [100]

 

 Misc:

   --blacklist STR            Comma separated list of ignored taxa in

LCA computation

[10239,12908,28384,81077,11632,340016,61964,48479,48510]

 

 Common:

   --threads INT              number of cores used for the computation

(uses all cores by default) [128]

   -v INT                     verbosity level: 0=nothing, 1: +errors,

2: +warnings, 3: +info [3]

   --split-memory-limit BYTE  Set max memory per split. E.g. 800B, 5K,

10M, 1G. Defaults (0) to all available system memory. [0]

 

References:

 - Steinegger M, Soding J: MMseqs2 enables sensitive protein sequence

searching for the analysis of massive data sets. Nature Biotechnology,

35(11), 1026-1028 (2017)

 

Examples:

 Searches for cross taxon contamination in DNA sequences

 

Show an extended list of options by calling 'conterminator dna -h'.

 

 

実行方法

BLASTデータベースを指定する。

#1 blastdbcmdコマンドを使って全ての配列を取り出す。
blastdbcmd -db nt -entry all > nt.fna

#2 taxonomical identifierを各fasta配列にアサインしたmapping.fileが必要。これを作る。
blastdbcmd -db nt -entry all -outfmt "%a %T" > nt.fna.taxidmapping

#3 conterminatorの実行
conterminator dna nt.fna nt.fna.taxidmapping nt.result tmp

出力例

${RESULT_PREFIX}_conterm_prediction

f:id:kazumaxneo:20210217004952p:plain

予測された汚染が含まれている。フォーマットについてはレポジトリを確認して下さい。

 

メモ

上の例は分割されたntⅠつ分の分析結果だが、ntデータベース全ても同時に分析してみたが、物理メモリ128GBのマシンではメモリ不足でエラーになった(2020/0にNCBIから取得)。 

引用

Terminating contamination: large-scale search identifies more than 2,000,000 contaminated entries in GenBank
Martin Steinegger & Steven L. Salzberg
Genome Biology volume 21, Article number: 115 (2020)

 

 

関連