Indelは、DNA配列中の塩基の挿入または欠失を意味する。2番目に主要な変異であるindelsはゲノムおよびタンパク質の進化において重要な役割を果たす。シーケンシングエラー、リードのあいまいなアライメント、異なるツールによる同じバリアントの一貫性のない表現方法などの人為的要因のため、同じ変異が異なる場所で発生することがある(論文より ref.1-3)。例えば、位置100285630から100285650までの参照配列AGGAAAGAAAGAAAGAAAGAG、および位置100285632および100285650のこの領域にそれぞれ注釈されたdbSNP、rs147659011(GAAA / +)およびrs60376183(AAGA / +)に保存された2つのindelsを考える。これらのindel突然変異は、実際には異なる位置で生じてもよいが、それらは同じ変化した配列AGGAAAGAAAGAAAGAAAGAAAGAGを生じるので、生物学的に同等である。論文の supplementary table1は、dbSNPにおける重複挿入および欠失の別の例を示す。 dbSNP、DGV(Database of Genomic Variant)、Ensemblなどの多くのデータベースは大規模な研究の結果であるため、これらのデータベースには同様のケースが存在し、重大なデータ冗長性の問題を引き起こすことがある。実際、dbSNPに保存されたヒトindelsの約10%(ref.4)、Ensemblの18%(ref.1)は重複している。重要なデータベースにおけるindelの冗長性を解決することは、その後の遺伝学研究にとって重要である。それにもかかわらず、この問題はそれにふさわしい注意を払われていない。
等価性を考慮し冗長性を解決する多数のアプローチが開発されている。 2つの異なるVCFファイル内の同じ位置、参照、および代替の対立遺伝子を共有する場合、「厳密な一致」アプローチは2つのindelで一致する。しかしながら、ref.3に示されているように、このアプローチは、同一ではない同等のインデルを見つけることができない。 「距離ベースアプローチ」は、同じ長さを持ち、±5 bp または±25 bpのような特定の距離内に存在する場合、2つのindelsを等価として扱う。しかし、この手法では、隣り合うindelsが等価でなく、distance cutoffよりも離れた等価なindelを見逃してしまうと、誤検出が発生する。明らかに、最適な距離カットオフの選択は、2つのタイプのエラーのトレードオフである。距離カットオフが小さいほど偽陽性率は減少するが、偽陰性率は増加する。(一部略)
本論文では、indelの普遍的な測位システムであるUPS-indelを提案する。これはすべてのindelがすべての同等のindelが発生する可能性のある位置の範囲で表されることを意味する。この表現はVCFファイルに追加され、等価なindel表現を含むUVCFファイルを出力する。このVCFファイルにVCFファイルを追加する利点は、(1)元のVCFファイル構造が変更されていないため、UVCFファイルは多くの下流プログラムと互換性があり、(2)UPS-indel表記により、異なるVCFファイル、(3)コーディング領域と非コーディング領域の両方に重複する同等のindelについて、indelコール出力に範囲列を持つと、下流のindel注釈システムは単一の位置ではなくその範囲を考慮する。要約すると、入力VCFファイルの単純な変更を行い、indel等価情報を含むUVCFファイルを出力する。
indelsを比較して生物学的に同等であるかどうか分析するために使用する。 冗長なindelsを見つたり、異なるツールが出力したindelを比較するためにも利用できるツールである。
インストール
本体 Github
https://github.com/shabbir005/ups-indel
git clone https://github.com/shabbir005/ups-indel.git
cd ups-indel/
make
> ./ups_indel
$ ./ups_indel
USAGE: ups_indel REFERENCE_FILE.fa VCF_FILE.vcf OUTPUT_FILE_NAME -hd=true.
> ./ups_generate_redundant_indel_list
$ ./ups_generate_redundant_indel_list
USAGE: ups_generate_redundant_indel_list UPS_INDEL_VCF_FILE.UVCF OUTPUT_FILE_NAME.
> ./ups_compare_uvcf_files
$ ./ups_compare_uvcf_files
USAGE: ups_compare_uvcf_files FIRST_UVCF_FILE.UVCF SECOND_UVCF_FILE.UVCF OUTPUT_FILE_NAME
> java GenerateFilteredUVCFFileAfterRemovingRedundantIndel
$ java GenerateFilteredUVCFFileAfterRemovingRedundantIndel
USAGE: java GenerateFilteredUVCFFileAfterRemovingRedundantIndel UVCF_FILE REDUNDANT_INDEL_LIST
ラン
1、レポジトリ内のテストデータを分析する。
ups_indel example/ref.fa example/in.vcf out -hd=true
終わるとout.uvcfができる。 UPS-COORDINATEのカラムがVCFに追加される。
2、重複するvcfのリストを出力する。1で出力したuvcfファイルを使う。
ups_generate_redundant_indel_list out.uvcf redundant_indel_list.txt
> cat redundant_indel_list.txt
$ cat example/redundant_indel_list.txt
[rs145072688, rs555500075]
[rs368127301, rs557514207]
[rs201888535, rs61158452]
uesaka-no-Air-2:ups-indel kazumaxneo$
3、重複するコール数とユニークなコール数を出力する。1で出力したuvcfファイルを使う。
ups_compare_uvcf_files example/sample1.uvcf example/sample2.uvcf compare_list.txt
> cat compare_list.txt
$ cat compare_list.txt
Number of Common Indels in example/sample1.uvcf and example/sample2.uvcf : 106
Number of Indels in example/sample1.uvcf but not in example/sample2.uvcf : 30
Number of Indels in example/sample2.uvcf but not in example/sample1.uvcf : 20
4、重複をフィルタリングするには、javaのコマンドを走らせる(1、2を先におこなっておく)。
java GenerateFilteredUVCFFileAfterRemovingRedundantIndel out.uvcf redundant_indel_list.txt
出力はinputのファイル名に"filtered"をつけたout_filtered.uvcfが出力される。
引用
UPS-indel: a Universal Positioning System for Indels.
Hasan MS, Wu X, Watson LT, Zhang L
Sci Rep. 2017 Oct 26;7(1):14106.