macでインフォマティクス

macでインフォマティクス

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

高速なロングリードのスプリットアライナー LAMSA

 

 Illumina のSynthetic Long-Read(http://www.illumina.com/technology/next-generation-sequencing/long-read-sequencing-technology.html)、PacBio Single Molecular Real-Silence(HTS) (Eid et al、2009)およびOxford Nanopore Technologies(Eisenstein、2012; Schneider and Dekker、2012; Ip et a、2015)は、リード長を数千塩基対(bps) のハイスループットシーケンシングを可能にする。ロングリードにより最も大きな影響を受ける分析の1つは、リードのアライメント、すなわちHTSリードをリファレンスゲノムに合わせて位置を決定することである。

 リードアラインメントは、リシークエンシングの変異コールにとって基本的なものである(Li et al、2008; McKenna et al、2010; DePristo et al、2011; Jiang et al、2012)。広く適用されているため、多くの努力がなされている(Fonseca et al、2012)。しかし、BWA(Li and Durbin、2009)、Bowtie(Langmeadら、2009)、Bowtie2(Langmeadら、2012)、GEM(Marco-Solaら2012年)、SeqAlto(Mu et al、2012)は、数十から数百bpsのリード用に設計されている。これらのアライナーは、主にリードとリファレンスとの間の直線的アラインメントを実施する。 SNPs、indels、シークエンシングエラーなどでは、効率を維持しながら処理する能力を実証している。しかし、長いリードはより多くの場合、反転、転座、重複などの非同一直線上の構造変化(SV)のブレークポイントにまたがるため、上記の方法は数千bp以上のリードにはあまり適していない可能性がある。 BLAT(Kent、2002)、SSAHA2(Ningら、2001)およびLAST(Kiełbasaら、2011)などの長いゲノム配列のアライメントのために設計された方法もあり、それらはより長いゲノムフラグメントのアライメントに重点を置いているが、大量のHTSデータに対処するための効率に欠ける可能性がある。

 最先端のロングリードアライナーは、BWA-SW(Li and Durbin、2010)、BWA-MEM(Li、2013)、BLASR(Chaisson and Tesler、2012)、YAHA(Faust and Hall、2012)である。 BWA-SW、BWA-MEMおよびBLASRは、シードおよびエクステンションのアプローチに基づいている。すなわち、部分的な読み取り(「seed」)と参照ゲノムとを照合して、候補位置(「hit」)を見つけ出し、ヒットを囲む局所配列(「extension」)を使用して、リード全長のアライメントを行う。主な違いは、seedingの方法である。 BWA-SWは、リードおよび参照ゲノム間の近似一致をヒットとして使用して、候補の局所領域を見つける。このアプローチのボトルネックは、参照ゲノムのsuffix-trieをトラバースしておおよその一致を照会するのは非常に計算面で高価であることである。 BWA-MEMとBLASRの両方とも、短いトークンの正確な一致をヒットとして検出し、ヒットをさらにクラスタリングして候補地域を決定する。このアプローチが直面するボトルネックは、反復ゲノム領域をどのように扱うかである。例えば、ヒトゲノムの半分以上がリピートで構成されている(De Koning et al、2011; Treangen and Salzberg、2012)。この場合、短いトークンは多くの一致(ヒット)を有することがあり、多数のヒットをソートし、優先順位を付け、評価するのは計算面で高価になる可能性がある。実装の詳細の他に、3つのアライナは依然としてco-linear modelに基づいている。リード内の潜在的ブレークポイントを考慮して、エンドツーエンドのアライメント以外の、リードのための高品質のローカルアライメントを生成することに重点を置いている。(以下略)

 本論文では、より高速なスピードと様々なエラー率に適した新規のスプリットリードアライメントアプローチである long approximate matches-based split aligner(LAMSA)を提案する。 LAMSAは、2ステップのスプリットリードアライメント戦略を採用している。これは、リード内の同一直線および非同一直線のイベントを個別に処理する。この戦略では、LAMSAはリードを比較的長い断片に分割し、1つまたは複数の整列骨格を構築するために断片の共直線的整列(すなわち、おおよその一致)を利用する。以前の研究(Lim et al、2015)は、短いseedの代わりに比較的長い断片のアライメントを用いて、特に多数のミスマッチが存在する場合に、リードの真の位置を回復することがより現実的であることを示した。 LAMSAは、フラグメントのアラインメントを利用して、高品質のアライメント骨格を構築する。LAMSAは、リードのアライメントされなかった領域を非同一直線状のいくつかのカテゴリに分類し、それぞれのカテゴリに応じて特定の分割アライメント方法でそれらを処理する。他の現存するアライナー(例えば、YAHAおよびSTAR)は、リードの一部分をアンカーとして使用して、リード内の大規模または非同一直線状のイベントを処理するための様々なアプローチを実施してきたが、LAMSAの2ステップ戦略では短いseedの方法と違い、長い断片の反復性が低いため偽陽性率が低くなる。さらに、比較的少ない断片が使用されるため、効率を損なうことなく、より包括的に考慮され得る。これは、複雑なアプローチ(例えば、YAHAによって使用される短いシードベースのアラインメント)を有する場合、反復する短いシードのアライメントは計算面で高価な場合があるので、重要である(以下略)。

 IlluminaSynthetic Long-Read、PacBio SMRT、Oxford Nanoporeプラットフォームでシミュレーションとリアルデータを使いLAMSAをベンチマークすると、LAMSAがロングリードアライメント速度を実質的に改善できることを示した。また、リードのブレークポイントを処理し、高感度で正確なアライメントを生成することも示している。

 

インストール

ubuntu14.04に導入した。

Github

https://github.com/hitbc/LAMSA

git clone https://github.com/hitbc/LAMSA.git 
cd LAMSA; make

> ./lamsa

$ ./lamsa 

 

Program: LAMSA (Long Approximated Matches-based Split Aligner)

Version: 1.0.0

Contact: Yan Gao <yangao07@hit.edu.cn>

 

Usage:   lamsa <command> [options]

 

Command: 

         index       index reference sequence

         aln         align long sequence to reference

 

./lamsa aln

$ ./lamsa aln

 

Usage:   lamsa aln [options] <ref.fa> <read.fa/fq>

 

Algorithm options:

 

    -t --thread    [INT]    Number of threads. [1]

    -l --seed-len  [INT]    Length of seeding fragments. [50]

    -i --seed-inv  [INT]    Distance between neighboring seeding fragments. [100]

    -p --max-loci  [INT]    Maximum allowed number of seeding fragments' hits. [200]

    -V --SV-len    [INT]    Expected maximum length of SV. [10000]

    -v --ovlp-rat  [FLOAT]  Minimum overlapping ratio to cluster two skeletons or alignment records.

                            [0.70]

    -s --max-skel  [INT]    Maximum number of skeletons that are reserved in a cluster. [10]

    -R --max-reg   [INT]    Maximum allowed length of unaligned read part to trigger a bwt-based query.

                            [300]

    -k --bwt-kmer  [INT]    Length of BWT-seed. [19]

    -f --fastest            Use GEM-mapper's fastest mode(--fast-mapping=0). [false]

 

Scoring options:

 

    -m --match-sc  [INT]    Match score for SW-alignment. [1]

    -M --mis-pen   [INT]    Mismatch penalty for SW-alignment. [3]

    -O --open-pen  [INT(,INT,INT,INT)]

                            Gap open penalty for SW-alignment(end2end-global: insertion, deletion,

                            one-end-extend: insertion, deletion). [5(,5,5,5)]

    -E --ext-pen   [INT(,INT,INT,INT)]

                            Gap extension penalty for SW-alignment(end2end-global: insertion, deletion,

                            one-end-extend: insertion, deletion). [2(,2,2,2)]

    -w --band-width[INT]    Band width for banded-SW. [10]

    -b --end-bonus [INT]    Penalty for end-clipping. [5]

 

Read options:

 

    -e --err-rate  [FLOAT]  Maximum error rate of read. [0.04]

    -d --diff-rate [FLOAT]  Maximum length difference ratio between read and reference. [0.04]

    -x --mis-rate  [FLOAT]  Maximum error rate of mismatch within reads. [0.04]

 

    -T --read-type [STR]    Specifiy the type of reads and set multiple parameters unless overriden.

                            [null] (Illumina Moleculo)

                            pacbio (PacBio SMRT): -i25 -l50 -m1 -M1 -O1,1,2,2 -E1,1,1,1 -w200 -b0 -e0.30 -d0.30

                            ont2d (Oxford Nanopore): -i25 -l50 -m1 -M1 -O1,1,1,1 -E1,1,1,1 -w100 -b0 -e0.25 -d0.10

 

Output options:

 

    -r --max-out   [INT]    Maximum number of output records for a specific split read region. [10]

    -g --gap-split [INT]    Minimum length of gap that causes a split-alignment. [100]

    -S --soft-clip          Use soft clipping for supplementary alignment. [false]

    -C --comment            Append FASTQ comment to SAM output. [false]

    -o --output    [STR]    Output file (SAM format). [stdout]

 

    -h --help               Print this short usage.

    -H --HELP               Print a detailed usage.

 

 

ラン

indexを作成。

lamsa index ref.fa

 

ロングリードを指定してマッピングを実行する。

lamsa aln -t 20 ref.fa read.fq > aln.sam

-t --thread Number of threads. [1]

 

引用

LAMSA: fast split read alignment with long approximate matches.

Liu B1, Gao Y1, Wang Y

Bioinformatics. 2017 Jan 15;33(2):192-201.