異物混入スクリーニングの目的は、人為的な理由または生物学的な理由で存在する可能性のある汚染配列を特定することである。人為的な理由としては、クローニング人工配列(ベクター、リンカー/アダプター/プライマー、大腸菌宿主DNA)、ヒトのDNA配列によるラボ内の汚染、他の生物とのサンプルまたはシークエンシングランの混合、シークエンシングされたクローンに統合された細菌挿入配列などが挙げられる。生物学的な理由としては、DNA調整を行った際に生物の表面や腸内に存在したエンドシンビオン、微生物の存在が挙げられる。
NCBIのVecScreenオンライン版
https://www.ncbi.nlm.nih.gov/tools/vecscreen/
インストール
vecscreenの実行形式ファイル(linux)と結果をまとめるスクリプトVSlistTo1HitPerLine.awk: NCBIハッカソンで Paul Kittsによって作成されたgawk(GNU awk)のスクリプト(こちらは無くてもよい)、をダウンロード。
wget ftp://ftp.ncbi.nlm.nih.gov/blast/demo/vecscreen
chmod u+x vecscreen
wget ftp://ftp.ncbi.nlm.nih.gov/pub/kitts/VSlistTo1HitPerLine.awk
chmod u+x VSlistTo1HitPerLine.awk
> vecscreen --help
# ./vecscreen --help
vecscreen arguments:
-i Query File [File In]
default = stdin
-o VecScreen report Output File [File Out]
default = stdout
-d Database [String]
default = UniVec
-f Output format:
0 = HTML format, with alignments
1 = HTML format, no alignments
2 = Text list, with alignments
3 = Text list, no alignments
[Integer]
default = 0
データベースのダウンロード
1、真核生物配列の汚染チェック(*1)。ファージ、ベクター、E.coliゲノム、ファージゲノム、バクテリアの挿入配列やトランスポゾンデータ配列をダウンロードしてデータベースを作成。
wget ftp://ftp.ncbi.nlm.nih.gov/pub/kitts/contam_in_euks.fa.gz
gzip -dv contam_in_euks.fa.gz
makeblastdb -dbtype nucl -in contam_in_euks.fa -out contam_in_euks
2、原核生物配列の汚染チェック(*1)。phiX174 phage(イルミナの内部コントロール)配列をダウンロードしてデータベースを作成。
wget ftp://ftp.ncbi.nlm.nih.gov/pub/kitts/contam_in_prok.fa
makeblastdb -dbtype nucl -in contam_in_prok.fa -out contam_in_prok
3、ミトコンドリアゲノムの汚染がないかのチェック(*1)。NCBI refseqのミトコンドリアゲノムをダウンロードしてデータベースを作成。
wget ftp://ftp.ncbi.nlm.nih.gov/blast/db/FASTA/mito.nt.gz
gzip -dv mito.nt.gz
makeblastdb -dbtype nucl -in mito.nt -out contam_in_mito
4、rRNAの汚染がないかのチェック(*1)。ダウンロードしてデータベースを作成。
wget ftp://ftp.ncbi.nlm.nih.gov/pub/kitts/rrna.gz
gzip -dv rrna.gz
makeblastdb -dbtype nucl -in rrna -out contam_in_rrna
5、アダプター配列(Adapters, linkers)の汚染がないかのチェック(*1)。ダウンロードしてデータベースを作成。
#eukaryotic sequences
wget ftp://ftp.ncbi.nlm.nih.gov/pub/kitts/adaptors_for_screening_euks.fa
#prokaryotic sequences
wget ftp://ftp.ncbi.nlm.nih.gov/pub/kitts/adaptors_for_screening_proks.fa
3、4、5についてはVecScreenの想定対象ではないので検出できない可能性がある点に注意して下さい(VecScreenのBLASTパラメータは固定されている)。詳細は*1のレポジトリのBLASTコマンドを確認して下さい。
実行方法
1、真核生物配列の汚染チェック。データベースの"1"を使用。BLASTのコマンドにパスが通っている必要はない。
vecscreen -d contam_in_euks -f3 -i input.fasta -o output
#html
vecscreen -d contam_in_euks -f3 -i input.fasta -f 1-o output.html
マッチの強さに応じて分類され、その位置が表示される。
2、結果をまとめる。
VSlistTo1HitPerLine.awk suspect=0 weak=0 output > filtered_output
出力
VecScreen_No_Hits NODE_1_length_948815_cov_14.579641
VecScreen_No_Hits NODE_2_length_530360_cov_14.577065
VecScreen_No_Hits NODE_3_length_414455_cov_14.636035
VecScreen_No_Hits NODE_4_length_270442_cov_14.641914
VecScreen_No_Hits NODE_5_length_252083_cov_14.518325
VecScreen_No_Hits NODE_6_length_153567_cov_14.643091
VecScreen_No_Hits NODE_7_length_76610_cov_14.817817
VecScreen_No_Hits NODE_8_length_35390_cov_14.624274
VecScreen_No_Hits NODE_9_length_5436_cov_30.151894
VecScreen_No_Hits NODE_10_length_1042_cov_29.918135
VecScreen_No_Hits NODE_11_length_499_cov_47.251185
VecScreen_No_Hits NODE_12_length_420_cov_16.323615
VecScreen_No_Hits NODE_13_length_165_cov_18.522727
VecScreen_No_Hits NODE_14_length_128_cov_8.980392
VecScreen_No_Hits NODE_15_length_110_cov_27.818182
VecScreen_Strong JQ764988.2 1 5386
1つだけStrong hitがある。
メモ
VecScreenに使用される検索パラメータは、既知のベクター配列と同一であるか、または既知の配列からわずかに逸脱している配列セグメントを見つけるように設計されている。そのため、VecScreenに使用されるblastnパラメータは、デフォルトのblastnパラメータよりもかなり厳しいものとなっている。
引用
https://www.ncbi.nlm.nih.gov/tools/vecscreen/
*1
こちらのレポジトリで詳しく説明されています。実際に手動でblastを実行する際のワードサイズや閾値等も参考になります。