macでインフォマティクス

macでインフォマティクス

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

マルチマッピングを補正する MMR

 

 ハイスループットシーケンシングデータのリファレンス配列への迅速かつ正確なマッピングの必要性に対処するために、過去数年間に多くの異なるソフトウェアツールが開発されてきており、その多くは頻繁に更新および改良されている(論文より Dobin et al、2013; Jean et et al、2010; Kim et al、2013; Li and Durbin、2009)。開発者は、RNAシーケンシングデータのスプライスアライメントのため、ギャップおよびミスマッチなど考慮するなど多くの課題に対処してきたが、一般的なアライメントツールの多くではあいまいなリードのマッピング問題が解決されていない。リード長、アライメント感度、リピートなどの要因に応じて、リードの大部分はターゲットにユニークにアライメントされ、正確に1つのマッピング位置が報告される。しかし、残りの、依然として非常に大きな割合のリード(アラインメント感度にもよるが、≒10-20%)で複数のマッピング可能なポジションが存在する。現在のところ、下流の分析では、これらのリードに対処するために異なる戦略が採用されている。そのほとんどは不都合なサイドエフェクトを伴う。アライメント結果からあいまいなアラインメントを破棄すると、あいまいなマッピングを伴うゲノム領域の定量を過小に評価することになる。一方ランダムアライメントまたはすべてのアライメントに均一にウエイトを分配するのは適切な生物学的正当性を持たない。著者らは、論文補足セクションA.5で、関連するアプローチ(Hashimoto et al。、2009; Li et al。、2010; Mortazavi et al。、2008; Wang et al。、2010; Zhang et al。、2013)の簡潔なレビューを記す 。

 ここでは、multi-mapper resolution (MMR)ツールと呼ばれるシンプルで強力なツールを紹介する。このツールは、ゲノム全体のリードのカバレッジができるだけ均一になるように各リードをユニークなマッピング位置にアサインする。 MMRは、ゲノム全体のカバレッジができる限り均一になるように、あいまいなマッピングになったリードのアライメントを繰り返し選ぶ。 MMR開発の動機は、転写物の定量および予測を改善するよう、RNA-Seqアラインメントの後処理を行うことである。MMRがDNA-Seqアライメントの後処理にも適用可能であることを示す。

 

公式ページ

http://www.raetschlab.org/suppl/MMR

原理

f:id:kazumaxneo:20180609193854j:plain

 

論文では、スピアマンの順位相関係数を使い、補正後のbamのほうがよりground truthとの正の相関がより高いことを示している。51-bpのベリーショートリードを使っているが、これはあいまいなマッピングがより起こりやすい条件でテストしているためと考えられる。

 

インストール

cent os6でテストした。

依存

  • samtools (最近のsamtoolsでは動かなかったが、0.1.19では動作した)

本体 Github

https://github.com/ratschlab/mmr

git clone https://github.com/ratschlab/mmr.git
cd mmr/
make

./mmr

$ ./mmr

Usage:

./mmr -o OUTFILE [options] IN_BAM

 

Available Options:

 

 

Input handling and paralellization:

-P --parse-complete parse complete file into memory [off]

-t --threads number of threads to use (must be > 2) [1]

-S --strand-specific alignments are strand specific [off]

-C --init-secondary  choose initial alignment also from secondary lines (flag 256) [off]

  --no-sort-check  input files are not checked to be sorted by read ID [off]

 

Input file filtering:

-f --pre-filter-off switch off pre filter for alignments that have F more edit ops than the best [on]

-F --filter-dist [INT] filter distance F for pre-filter [1]

-V --use-variants use variant alignments for filtering (different edit op count,

requires XG and XM Tag in alignment files) [off]

-L --max-list-length [INT] max length of alignment list per read (after filtering) [1000]

-r --trim-id trim this many positions from the end of each read ID [0]

 

Paired alignment handling:

-p --pair-usage pre use pair information in the reads [off]

-i --max-fragment-size upper limit of GENOMIC fragment length [1 000 000]

-A --max-pair-list-length [INT] max no of valid pairs before not using pair modus [10000]

 

Output handling:

-b --best-only print only best alignment [off]

-u --keep-unmapped print unmapped reads from input [off]

 

Options for using the variance optimization:

-w --windowsize  [INT] size of coverage window around read [20]

-I --iterations  [INT] number of iterations to smooth the coverage [5]

-a --annotation annotation file in GTF format to infer segment boundaries

-B --burn-in use the first iteration to fill coverage map only [off]

 

Options for using the MiTie objective for smoothing:

-m --mitie-objective use objective from MiTie instead of local variance [off]

-s --segmentfile MiTie segment file required for MiTie optimization

-l --lossfile MiTie loss parameter file required for MiTie optimization []

-R --read-len  [INT] average length of the reads [75]

-M --mitie-variance use variance smoothing for regions with no MiTie prediction [off]

-z --zero-expect-unpred initializes all covered but not predicted positions with expectation 0.0 [off]

 

General:

-v --verbose switch on verbose output [off]

-h --help print usage info

 

 

ラン

テストラン。

make test

 example/で以下のコマンドが走っている。

mmr -F 0 -b -v -o example_file_small.ID_sorted.mmr.bam example_file_small.ID_sorted.bam
  • -F    filter distance F for pre-filter [1]
  • -b    print only best alignment [off]
  • -v    switch on verbose output [off]

終わると example_file_small.ID_sorted.mmr.bam が出力される。同様に"make bigtest"でラージbamをつかったテストができる。

 

論文ではRNA seqのほか、カバレッジの高いExomeシーケンス、ラージゲノムのDNAシーケンスで大きな効果があるだろうとまとめている。

 

新しいsamtoolsでは動作しません。注意してください。  

引用

MMR: a tool for read multi-mapper resolution

André Kahles, Jonas Behr, Gunnar Rätsch

Bioinformatics. 2016 Mar 1; 32(5): 770–772.

 

構造変化のリードアライメント状況やゲノム比較結果を可視化する Ribbon

2020 8/9 論文追記

 

 Visualizationは、現在のゲノム革命において、バリアント、発現パターン、進化による変化、および他の多くの関係を検査し、理解するために非常に重要な役割を果たす(Preprint ref.1~3)。しかし、構造変化可視化時のリードとリファレンス、またはリファレンスとリファレンスとのアライメント情報の大部分は、リファレンスの座標しか示さないほとんどのゲノムブラウザの1次元ビューのため失われる。ロングリードまたはアセンブして作ったコンティグで構造変化を理解するためには、複数の染色体からのアラインメントや他のゲノム情報などのより多くの文脈を理解する必要がある。
 この問題は、リファレンスとクエリシーケンスの両方に沿ったアラインメントとサンプル内の関連バリアントコールを表示するインタラクティブなオンラインビジュアライゼーションツールであるRibbon(genomeribbon.com)を作成することで解決する。リボンは、複数の染色体にわたる多くのリードパターンを示し、個々のリードの詳細な検査を可能にする(Preprint 補足1)。例えば、ここでは、CYTH1およびEIF3H遺伝子を連結するSK-BR-3乳癌細胞株における遺伝子融合を示す。これまでにトランスクリプトームref.4-6で見つかっているが、ゲノムシーケンシングではこれら2つの遺伝子間のダイレクトな染色体融合の証拠は提供しなかった。 SMRTシークエンシングref.7の後、リボンは、実際には、2つの遺伝子にまたがるロングリードがあることを示した(図1a)(以下略)。結論として、リボンは、複雑なゲノムアラインメントを表示するための強力でインタラクティブなWebツールである。

 

Preprintです。

 

公式ページ

http://genomeribbon.com

紹介動画


 インストール

Github

https://github.com/MariaNattestad/ribbon

XAMPPをいれて自分でサーバーを立ち上げることもできるようになっている。ここではweb版を紹介する。

 

ラン

SplitThreaderと連携しており、SplitThreaderで構造変化を可視化し、それをRibbonにエキスポートして、実際のロングリードのアライメント状況を分析できるようになっている(SplitThreader紹介)。

 

Ribbonにアクセスする。

Ribbon

f:id:kazumaxneo:20180609131159j:plain

 

上のメニューのExamplesの1つ、ゴリラのアセンブリをヒトゲノムにアライメントしたデータを表示してみる。

f:id:kazumaxneo:20180609131236j:plain

 

上半分はゴリラアセンブリとヒトゲノムのHarr plot(ドットプロット)になっている。

f:id:kazumaxneo:20180609133443j:plain

 

青のプロットをクリックすると、下半分はその染色体だけの表示に切り替わる。chr10。

f:id:kazumaxneo:20180609134127j:plain

今現在、下半分に表示されているのは、chr10のうち、上の画像の青が濃くなっている部分だけになる。上の画像のドットをクリックすると、下の画像はその領域に切り替わるようになっている。

 

 

メニューのRibbonをDot plot表示に切り替え。

f:id:kazumaxneo:20180609134221j:plain

 

メニューのFilter alignments => Minimum % identityを97%まであげた。

f:id:kazumaxneo:20180609134336j:plain

 

メニューのReference => Reference settingsの数値を1000に修正し、1000 bp以上アライメントがスキップされた領域に線をつけた。

f:id:kazumaxneo:20180609134907j:plain

 

 

 

自分のデータを解析するには、sam/bamか、Mummerのshow-coords の解析結果を使う。ショートリードやロングリードのマッピングbamからバリアントコール部位のリードアライメント状況を可視化したり、アセンブリのcontig、ゲノム同士の比較などができる。

データは右のメニューからアップロードする。バクテリアのMiseqシーケンスデータから得たbam、そのバリアントコールのvcf、bedファイルをアップロードして、表示してみた。ゲノムとbedはUCSC genome browser(アーキアとバクテリア)から入手したものをそのまま使った。大きな欠失部位がコールされた部位のリードアライメント状況(関連するリードだけ描画されている)。

 

f:id:kazumaxneo:20180609142649j:plain

 

コール部位をクリックすればジャンプでき、コールされた構造変化を素早く確認できる。大規模なtranslocationなどの構造変化を見やすく工夫し、直感的に理解しやすくなっている。

 

引用

Ribbon: Visualizing complex genome alignments and structural variation

Maria Nattestad, Chen-Shan Chin, Michael C Schatz

bioRxiv preprint first posted online Oct. 20, 2016;

doi: http://dx.doi.org/10.1101/082123.

https://www.biorxiv.org/content/biorxiv/early/2016/10/20/082123.full.pdf

 

2020 8/9 追記

Ribbon: Intuitive visualization for complex genomic variation
Maria Nattestad, Robert Aboukhalil, Chen-Shan Chin, Michael C Schatz
Bioinformatics, Published: 07 August 2020

 

リアレンジメントなどの構造変異を可視化して分析する SplitThreader

 

 ゲノム再構成(Genomic rearrangements)および関連するコピー数の変化は、癌遺伝子および腫瘍サプレッサーの発現を変化させ、遺伝子融合を生じさせ、遺伝子発現を誤って調節する可能性があり、癌における重要な推進因子となっている。ここでは、 ゲノム再構成とガンゲノムのコピー数変動解析と可視化のためのオープンソースインタラクティブなWebアプリケーションであるSplitThreader(http://splitthreader.com)を紹介する。 SplitThreaderは、サンプル内のゲノム再構成のシーケンスグラフを作成し、新規インタラクションを検索するためにpriority queue breadth-first search algorithm を使用するr。これは、遺伝子融合および他の新規配列の検出、ならびに関心のあるゲノム領域間の再構成されたゲノム、特に調節エレメントおよびそれらの標的遺伝子の再配置における距離を評価するために適用される。 SplitThreaderはまた、各バリアントを分析して、他のバリアントとの関係およびそのコピー数の一致によって分類する。これはbalanced translocationsを特定し、単純なバリアントや複雑なバリアントを特定し、コピー数が候補ブレークポイント全体で一致しない場合に誤検出を示唆する。また、複数のバリアントコピー数状態に影響を及ぼし、全体的に増幅された領域内の欠失など、単一の変異の寄与を不明瞭にする場合の説明も提供する。これらのカテゴリは、バリアントをグループに分類し、さらに体系的な分析と手動キュレーションの出発点を提供する。その有用性を実証するために、著者らは3つのガン細胞株、イルミナペアエンドシーケンシングを有するMCF-7およびA549、およびロングリードPacBioシーケンシングを有するSK-BR-3にSplitThreaderを適用する。 SplitThreaderを用いて、以前に観察されたSK-BR-3およびMCF-7の遺伝子融合に関与するゲノム再構成を調べ、多数のゲノム再編成の複雑な一連の融合を含む多くの融合を探索する。

 

Github

https://github.com/MariaNattestad/SplitThreader

動画による紹介

ppt

http://schatzlab.cshl.edu/presentations/2016/2016.02.12.AGBT.SplitThreader.Analysis%20of%20Highly%20Rearranged%20Genomes.pdf

 

ここではweb版を紹介する。ヒトゲノムのhg19とGRCh38に対応している(ほかのデータも表示することは可能だが遺伝子情報がデタラメになる)。

SplitThreader

 

--準備--

centos6で作業した。

NGMLR(紹介)を使ってロングリードをマッピングしてbamファイルを作る。それから sniffles(紹介)でSVをコールする。

#マッピング
ngmlr -t 20 -r hg19.fa -q pacbio.fq -x pacbio| samtools sort -@ 20 -O BAM -o mapped_sort.bam -

#SVコール
sniffles -m mapped_sort.bam -v SV.vcf

 

copycat(Github 

https://github.com/marianattestad/copycat)を使い、chromosomeごとのカバレッジファイルを得る。*copycatコマンドは他のツールにもあるのでパスを通す時はよく考える。ここではパスを通さず使う。

#複数mappingを捨てる
samtools view -q 1 -b mapped_sort.bam > filtered.bam

samtools faidx hg19.fa
cut -f 1-2 hg19.fa > genome.txt
./copycat filtered.bam genome.txt > coverage.txt

 

 SV.txtとcoverage.txtをアップデートする。

f:id:kazumaxneo:20180607173936j:plain

 

上のメニューのExampleからテストデータを表示してみる。

f:id:kazumaxneo:20180607222346j:plain

右のメニューからVariantsを選択。SVのsubtypeを選択表示できる。

f:id:kazumaxneo:20180607222616j:plain

 

左の環状図のchrをドラッグして、右の図を切り替えることが可能。chr5(右上)とchr8(右下)に切り替え、translocationのみ表示。interchromosomal translocationが多い。

f:id:kazumaxneo:20180607223028j:plain

 

拡大して遺伝子を表示。図は+/-で拡大縮小したり、ドラッグで左右に移動できる。

f:id:kazumaxneo:20180607225224j:plain

 

f:id:kazumaxneo:20180609131822j:plain

構造変化の種類により、上の画像のように表示される。プレゼンテーションの動画より。

 

Variant Analysis

f:id:kazumaxneo:20180607225459j:plain

ほかに遺伝子融合の分析機能がある。

 

SV周辺のロングリードの実際のアライメント状況はRibbonに渡すことで素早く可視化できる。Ribbonでリードを描画する際に、先ほど作ったbamを要求されます。

f:id:kazumaxneo:20180607230006j:plain

Ribbon紹介) 

http://genomeribbon.com

 

 

引用

SplitThreader: Exploration and analysis of rearrangements in cancer genomes

Maria Nattestad, Marley C. Alford, Fritz J. Sedlazeck, Michael C. Schatz

bioRxiv preprint first posted online Nov. 15, 2016;

doi: http://dx.doi.org/10.1101/087981

 

 

Circa


 

BAMを感心対象のみにフィルタリングする VariantBam

 2020 4/17 インストール追記、help更新

 

 ゲノムシーケンスのコストが減少するにつれて、大規模なシーケンスデータセットを取り扱う際のストレージおよび計算上の負担が増大する懸念がある。ヒトゲノムの全ゲノムシーケンシングを30倍のカバレッジにすると、およそ10億リードのシーケンスが可能になり、圧縮BAMフォーマットでも100GB以上のディスクスペースが必要になる(論文より Li et al、2009)。これを軽減するために、BAMファイルのリファレンスベース圧縮を提供するCRAMフォーマットが確立され、ファイルサイズが2〜3倍減少した(Hsi-Yang Fritz et al、2011)。CRAMを用いれば全ゲノムの30カバレッジで30GBにできるが、現在のCRAMフォーマットは多くの解析ツールではサポートされていない。

 別の方法として、科学的な探求対象のシーケンス情報のみを含むトリミングされたBAMファイルを作成する方法がある。例えば、あるグループはエキソンの変異のみに関心があり、別のグループは構造変異を支持するリードにしか関心がないかもしれない。さらに、シークエンシングライブラリのクオリティによっては、低クオリティのリードの大部分を下流の分析にほとんど影響を与えずに除去できる。アライメント・タグを削除するか、カバレッジの高い領域でサブサンプリングを実行することで、さらにサイズを縮小することができる。これらのニーズをすべて満たしているリードのフィルタリングは、最も関連性の高い情報をコンパクトなファイルに保存しながらデータフットプリントを削減できる可能性がある。その後、元のBAMを低コストのアーカイブストレージに移動するか、または外部サーバ(例えばdbGaP)上に保持し、検索中にフィルタリングできる。

 リードのフィルタリングは、リードのサブセットのみで動作する解析パイプラインで直接使用することもできる。異なる分野(例えば、エピゲノム、メタゲノミクスなど)の研究では、データの異なる種類のサブセットに焦点を当てる傾向がある。シーケンスリードの効率的かつ正確な検索ができれば、そのような分析の開発を容易にするであろう。

 これらの問題に対処するため、カスタムリードセットを取得する堅牢で柔軟なメソッドを提供するBAM / CRAM / SAMフィルタリングツールVariantBamを開発した。VariantBamは階層型のフィルタリングシステムで、指定されたリードを出力に含めるかどうかを決定する。様々な分析(例えば、SNP、エキソン変異)で、異なるゲノムに異なるフィルタリングルールを適用しシングルパスで処理することができる。 VariantBamは、シーケンスディレクトリ、CIGAR解析、クオリティスコアの考慮事項、最大シーケンスカバレッジにサブサンプルする機能など、他のフィルタリングツールでは利用できない高度なフィルタリングオプションを提供する。VariantBamはC ++で書かれており、高速のC htslib(github.com/samtools/htslib)を使用して高効率でI / Oを実行する。 BAM、CRAM、SAM、および標準出力への出力がサポートされている。

 

 

インストール

cent os6でテストした。

Optional

  • samtools
  • bedtools

 

Github

https://github.com/walaj/VariantBam

git clone --recursive https://github.com/jwalabroad/VariantBam.git 
cd VariantBam
./configure
make
cd src/

#bioconda (link)
conda install -c bioconda -y variantbam

 >  variant

 

# variant

 

Usage: variant <input.bam> [OPTIONS] 

 

  Description: Filter a BAM/SAM/CRAM/STDIN according to hierarchical rules

 

 General options

  -h, --help                           Display this help and exit

  -v, --verbose                        Verbose output

  -x, --no-output                      Don't output reads (used for profiling with -q)

  -r, --rules                          JSON ecript for the rules.

  -k, --proc-regions-file              Samtools-style region string (e.g. 1:1,000-2,000) or BED/VCF of regions to process. -k UN iterates over unmapped-unmapped reads

  -Q, --mark-as-qc-fail                Flag reads that don't pass VariantBam with the failed QC flag, rather than deleting the read.

 Output options

  -o, --output                         Output file to write to (BAM/SAM/CRAM) file instead of stdout

  -C, --cram                           Output file should be in CRAM format

  -b, --bam                            Output should be in binary BAM format

  -T, --reference                      Path to reference. Required for reading/writing CRAM

  -s, --strip-tags                     Remove the specified tags, separated by commas. eg. -s RG,MD

  -S, --strip-all-tags                 Remove all alignment tags

  -Z, --write-trimmed                  Output the base-quality trimmed sequence rather than the original sequence. Also removes quality scores

 Filtering options

  -q, --qc-file                        Output a qc file that contains information about BAM

  -m, --max-coverage                   Maximum coverage of output file. BAM must be sorted. Negative values enforce a minimum coverage

  -p, --min-phred                      Set the minimum base quality score considered to be high-quality

 Region specifiers

  -g, --region                         Regions (e.g. myvcf.vcf or WG for whole genome) or newline seperated subsequence file.

  -G, --exclude-region                 Same as -g, but for region where satisfying a rule EXCLUDES this read.

  -l, --linked-region                  Same as -g, but turns on mate-linking

  -L, --linked-exclude-region          Same as -l, but for mate-linked region where satisfying this rule EXCLUDES this read.

  -P, --region-pad                     Apply a padding to each region supplied with the region flags (specify after region flag)

 Command line rules shortcuts (to be used without supplying a -r script)

      --min-clip                       Minimum number of quality clipped bases

      --max-nbases                     Maximum number of N bases

      --min-mapq                       Minimum mapping quality

      --min-del                        Minimum number of deleted bases

      --min-ins                        Minimum number of inserted bases

      --min-length                     Minimum read length (after base-quality trimming)

      --motif                          Motif file

  -R, --read-group                     Limit to just a single read group

  -f, --include-aln-flag               Flags to include (like samtools -f)

  -F, --exclude-aln-flag               Flags to exclude (like samtools -F)

 

 

ラン

chr1の1-1,100,000にマッピングされたリードのみbam出力する。

variant input.bam -g 'chr1:1-1,100,000' --min-mapq 10 -b -o mini.bam -v

sam出力なら-bを外す。mini.bamが出力される。

 

bamtobedに渡し各リードをbed出力する。

samtools view -h input.bam | variant - --min-mapq 10 -b | bamToBed > out.bed

 

VCFでコールされたポジション周囲100-bpのリードのみbam出力する。

variant input.bam -l input.vcf -P 100 -b -o mini.bam -v 

VCF以外にBEDで領域指定することも可能 (e.g. "1:1,000,000-1,000,010")。 

VCFでコールされた部位周辺だけ出力されている。

f:id:kazumaxneo:20180606183919j:plain

リファレンスと合致するリードは必要ない情報と考えれば、たいへん効率的なbamのフィルタリング方法といえる。bam自身がシュリンクされているので、ビューアの負担も劇的に減る。

 

VCFでコールされたポジション周囲100-bp以外のリードをbam出力する。

variant input.bam -L input.vcf -b -o mini.bam -v 

 

clippingされたハイクオリティなリードのみbam出力する。

variant input.bam --min-phred 4 --min-clip 5 -b -o mini.bam -v

 

マッピングクオリティ(MAPQ wiki)が20以上で、10以上の大きな挿入か欠失をもつリードだけbam出力する。

variant input.bam --min-mapq 20 --min-ins 10 --min-del 10 -b -o mini.bam -v

 

sub-samplingしてmax-coverageを100に減らす(マッパーによっては、リピート領域にMAPQ=0のリードが多数マッピングされる)。

variant input.bam -m 100 -o mini.bam -v -b

 

 

Githubには多数のexampleが紹介されています。

https://github.com/walaj/VariantBam

 

引用

VariantBam: filtering and profiling of next-generational sequencing data using region-specific rules.

Wala J, Zhang CZ, Meyerson M, Beroukhim R

Bioinformatics. 2016 Jul 1;32(13):2029-31.

 

全ゲノムやExomeのカバレッジを素早く計算する mosdepth

2020 4/19 help更新, コマンド追記

2021 5/14 インストール追記, help更新

 

 カバレッジデプスの測定は、コピー数変動(CNV)の検出などのゲノム解析にとってクリティカルで、例えばcn.mops(Klambauer et al、2012)、Indexcov(Pedersen et al、2017)などのどのゲノム領域のカバレッジが低すぎるか高すぎるか(Li、2014)調べる方法がある。カバレッジプロファイルの適用範囲を考えると、ゲノム全体のカバレッジを計算する既存のツールがいくつかある。 Samtools depth(Li et al、2009)は、ベースごとのカバレッジを出力する。 BEDTools genomecov(Quinlan and Hall、2010; Quinlan、2014)は、リージョンごとまたはベースごとのカバレッジを出力する。 Sambamba(Tarasov et al、2015)(紹介)はまた、ベースごとおよびウィンドウごとのデプスを提供する。効率的なカバレッジ計算の必要性は、全ゲノム配列の数およびシーケンスデプスと共に増加し、既存の方法は、30倍のカバレッジを有する典型的なヒトゲノムについて約1時間またはそれ以上の計算を必要とする。ここでは、既存のメソッドより高速で、追加のユーティリティーを持ったmosdepthを示す。

  Mosdepthは、nimプログラミング言語https://nim-lang.org)を経由しHTSLib(http://www.htslib.org/)を使用している。入力したBAMまたはCRAMファイルがポジションによってソートされることが期待される。 mosdepthは、リードごとに各ヌクレオチドを追跡する「パイルアップ」エンジンを使用するsamtoolsとは対照的に、アライメントのチャンク(塊)のみを追跡する。アラインメントの各チャンクの開始位置と終了位置(削除またはその他のイベントによって分割された場合、各アライメントは複数のチャンクを持つ可能性がある)は、サイズが染色体の長さである配列(32ビット整数)で追跡される。リファレンスゲノムへのアラインメントの各チャンクについて、mosdepthはその染色体位置(論文 図1)に対応する配列内のインデックスの値の開始とインクリメントをインクリメントする。ペアエンドシーケンシングフラグメントの両端に重複するアライメントがある場合(論文図1、ブラックアライメント)、ダブルカバレッジカバレッジを回避する。カバレッジアレイがBAMまたはCRAMファイル内のすべてのアラインメントの開始と終了を追跡すると、特定の位置の深さは、それに先行するすべての位置の累積合計として計算される(同様のアルゴリズムがBEDToolsで使用されている)。

 染色体に沿って、カバレッジは、配列の各要素までの複合開始および終了カウントを累積合計で置き換えることによって、適切な位置で計算される。完了すると、領域のカバレッジは、配列の要素の最初から最後までの平均値になる。これにより、数百万の小領域であっても、極めて迅速にカバレッジを計算することができる。このセットアップは、ゲノムのカバレッジ分布の迅速な計算、すなわち、ゲノムまたは所定の領域にわたる所定数のリードによってカバーされる塩基の数にも影響を受けやすい。分散計算には、各カバレッジ値の発生をカウントする配列を介した余分な繰り返しが必要となる。 mosdepth法はヒトゲノムの249メガベースのchr1に対してより多くのメモリを必要とし、約1GBのメモリが必要だが、その数はカバレッジのデプスやアラインメントされたリード数に依存しない。その柔軟性にもかかわらず、mosdepthは使いやすく、理解しやすくなっている(例えば、論文のsupplementary documentを参照)。

 

 

インストール

cent os6でテストした。後日、ubuntu18.04LTSにcondaを使って導入した(pyhthon3.7)。

依存

  • htslib version 1.4 or later
  • PCRE

PCREが古いと動作しない。その場合はアップグレードする。

cd ~/src/
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.41.tar.gz
tar zxvf pcre-8.41.tar.gz
cd pcre-8.41/
./configure
make

本体 Github

#bioconda (link) (linux)
mamba create -n mosdepth -y
conda activate mosdepth
mamba install -c bioconda -y mosdepth

#docker
docker pull quay.io/biocontainers/mosdepth:0.2.4--he527e40_0

mosdepth -h

# mosdepth -h

mosdepth 0.3.1

 

  Usage: mosdepth [options] <prefix> <BAM-or-CRAM>

 

Arguments:

 

  <prefix>       outputs: `{prefix}.mosdepth.dist.txt`

                          `{prefix}.mosdepth.summary.txt`

                          `{prefix}.per-base.bed.gz` (unless -n/--no-per-base is specified)

                          `{prefix}.regions.bed.gz` (if --by is specified)

                          `{prefix}.quantized.bed.gz` (if --quantize is specified)

                          `{prefix}.thresholds.bed.gz` (if --thresholds is specified)

 

  <BAM-or-CRAM>  the alignment file for which to calculate depth.

 

Common Options:

 

  -t --threads <threads>     number of BAM decompression threads [default: 0]

  -c --chrom <chrom>         chromosome to restrict depth calculation.

  -b --by <bed|window>       optional BED file or (integer) window-sizes.

  -n --no-per-base           dont output per-base depth. skipping this output will speed execution

                             substantially. prefer quantized or thresholded values if possible.

  -f --fasta <fasta>         fasta file for use with CRAM files [default: ].

 

Other options:

 

  -F --flag <FLAG>              exclude reads with any of the bits in FLAG set [default: 1796]

  -i --include-flag <FLAG>      only include reads with any of the bits in FLAG set. default is unset. [default: 0]

  -x --fast-mode                dont look at internal cigar operations or correct mate overlaps (recommended for most use-cases).

  -q --quantize <segments>      write quantized output see docs for description.

  -Q --mapq <mapq>              mapping quality threshold. reads with a quality less than this value are ignored [default: 0]

  -T --thresholds <thresholds>  for each interval in --by, write number of bases covered by at

                                least threshold bases. Specify multiple integer values separated

                                by ','.

  -m --use-median               output median of each region (in --by) instead of mean.

  -R --read-groups <string>     only calculate depth for these comma-separated read groups IDs.

  -h --help                     show help

 

 

ラン

キャプチャされた領域のbedファイルはイルミナからダウンロードした(本来あり得ないが、このテストではキットの種類は気にしない)。

https://support.illumina.com/sequencing/sequencing_kits/nextera-rapid-capture-exome-kit/downloads.html

 exomeデータ(ERR035486)を使い、ヒトゲノムアセンブリhg19に対してマッピングする。minimap2を使う(mminimap2紹介)。

minimap2 -t 10 -ax sr ref.fa pair1.fq pair2.fq | samtools sort -@ 10 -O BAM -o exome.bam - && samtools index exome.bam

 

mosdepthを使ってchr1のデプスを計算する。

mosdepth --by capture.bed output exome.bam -Q 0 -t 10 -c chr1
  • -Q    mapping quality threshold [default: 0]
  • -t      number of BAM decompression threads [default: 0]
  • -c     chromosome to restrict depth calculation.

ポジションごとのカバレッジと、bedの領域ごとのカバレッジがgz出力される。-nをつけると ポジションごとのカバレッジファイルは出力されなくなる。

 

ファイル内容を確認。

head output.regions.bed

$ head output.regions.bed

chr1 13402 13639 CEX-chr1-13403-13639 149.31

chr1 69088 70010 CEX-chr1-69089-70010 824.77

chr1 324438 325605 CEX-chr1-324439-325605 0.79

chr1 664484 665108 CEX-chr1-664485-665108 1.34

chr1 721404 721912 CEX-chr1-721405-721912 0.21

chr1 762079 762571 CEX-chr1-762080-762571 2.47

chr1 861319 861395 CEX-chr1-861320-861395 15.22

chr1 865532 865718 CEX-chr1-865533-865718 7.06

chr1 866416 866471 CEX-chr1-866417-866471 46.58

chr1 871149 871278 CEX-chr1-871150-871278 29.43

head output.per-base.bed

$ head output.per-base.bed

chr1 0 10004 0

chr1 10004 10007 1

chr1 10007 10008 0

chr1 10008 10029 1

chr1 10029 10051 2

chr1 10051 10052 1

chr1 10052 10054 2

chr1 10054 10055 3

chr1 10055 10061 4

chr1 10061 10073 5

output.mosdepth.global.dist.txtには、カバレッジの度数分布が出力される。

 

追記

multiqcで統合レポートを作成する。全スレッド使用。MQ≥1。

mosdepth --by gencode.v33.annotation.bed sample1.mosdepth sample1.bam -Q 1
mosdepth --by gencode.v33.annotation.bed sample2.mosdepth sample2.bam -Q 1
mosdepth --by gencode.v33.annotation.bed sample3.mosdepth sample3.bam -Q 1
multiqc .

f:id:kazumaxneo:20200419130116p:plain

f:id:kazumaxneo:20200419130119p:plain

引用

Mosdepth: quick coverage calculation for genomes and exomes.

Pedersen BS, Quinlan AR

Bioinformatics. 2018 Mar 1;34(5):867-868.

 

CNVを検出するパイプライン iCopyDAV

 

 ハイスループットシークエンシング技術の出現により、集団に特異的な構造変異(SV)および疾患におけるそれらの可能な役割の同定にかなりの関心が集まっている。様々な構造変化の中で、コピー数変動(CNV)は、ヒトゲノムの多様性および疾患に有意に寄与することが示されている。 CNVsは、ヒトゲノムの約9.5%に及ぶサイズ50 bp以上、おそらくは1 MbpのDNA断片の欠失および重複を含む[論文より ref.1]。これは、遺伝子によりgene dosage imbalance (gene dosage wiki)または遺伝子破壊、または非コード遺伝子および調節因子の発現の変化を介して、タンパク質コード領域の改変につながる可能性がある。

 CNVの形成は、主に複製の不正確な修復および間違いによって引き起こされる。 DNA double strand breaks(DSB)の主要な修復機構の1つは、相同組換えである。修復機構は、DSBを別の相同領域に位置合わせしないで、非対立遺伝子相同組換え(NAHR)を生じる(反復および断片的重複の助けを借りて)。このメカニズムは、通常、再発性CNVの形成において観察される。 DSB部位における別の修復機構は、non-homologous end joining(NHEJ)およびmicrohomology-mediated end joining(MMEJ)を含み、欠失/挿入(リピートによって援助される)をもたらし得る。 NAHRとは異なり、これらのメカニズムはDSBに参加するためのテンプレートを必要としない。 CNVはまた、複製プロセスにおけるミス、すなわちポリメラーゼスリップおよび鋳型交換のために生成され得る。テンプレートの切り換えでは、DNA複製フォークが停止し、DNA鎖伸長が停止し、別の複製DNA断片に移行し、フォークストールとテンプレートスイッチング(FoSTeS)と呼ばれるプロセスを再開する。このメカニズムは、非反復CNVの生成をもたらす。 Mobile element insertion(MEI)は、転位性エレメントがコピーを作り、逆方向反復(レトロトランスポゾン、DNAトランスポゾンおよび内因性レトロウイルスによって媒介される)に隣接する新しい位置への挿入を可能にするメカニズムである[ref.2,3]。

 伝統的なkaryotyping、 fluorescence in situ hybridization(FISH)、およびアレイベースのcomparative genomic hybridizationarrayCGH)および一塩基多型(SNP)アレイなどのアレイベースの方法などの従来のアプローチは、現在、ハイスループットの次世代シーケンス(NGS )ベースの手法を使用している。 NGSデータにおけるCNVの検出に使用される様々な戦略は、ペアエンドマッピング(PEM)、スプリットリード(SR)、カバレッジデプス(DoC)、デノボアセンブリ(AS)およびそれらの組み合わせ方法である。これらのアプローチのそれぞれには、独自の長所と短所があり、特定のアプローチによってCNVの完全なスペクトルの検出が制限されている。例えば、PEMおよびSRベースのアプローチは、小さなCNVを正確に検出するが、挿入サイズより大きな挿入の予測には適しておらず、低複雑度の領域およびセグメント重複でCNVを同定できない。De novoアセンブリベースの方法は、これらの方法がリファレンスベースのアライメント結果とは独立しているため、新規な遺伝子変異をバイアスなく予測するアプローチを提供している。しかしながら、これらの方法は、30倍以上のカバレッジを必要とし、計算要求量が高くなる。カバレッジ・オブ・カバレッジ(DoC)ベースのアプローチは、シングルリードデータのバリアント領域の絶対的なコピー数を決定する能力があるため、最も一般的だが、CNVコールでの正確なブレークポイント予測能で苦しんでいる。

 本研究では、DoCベースのアプローチにおけるさまざまな問題を強調する。DoCベースのアプローチは、リードデプスがDNA領域のコピー数にほぼ比例するという仮定に基づいている。しかしながら、様々なシステマティックバイアスのために、CNVの検出はそれほど簡単ではない。リードデプスに影響を及ぼす2つの主なバイアスは、GCバイアスおよびmappabilityバイアスである[ref.3 pubmed]。これらを補正するため、データ前処理は重要なステップであり、さまざまなアプローチが提案されている(論文 表1)。 GC含量はヒトゲノムに沿って均一ではなく、PCR増幅プロセスはバイアスを引き起こし低GCまたは高GC領域からのリードを少なくする。これは、GCバイアスと呼ばれる低GC領域または高GC領域でのリードデプス(RD)信号を正確に推定する際にバイアスを導入する。低GCおよび高GC領域のフィルタリング、GC含量に基づくビンのリードデプスの標準化(コントロールサンプルがない場合)、またはケースコントロールサンプルの対応するビン内のコピー数比を使うことは、このバイアスに対処するのに役立つ。 DoCベースのアプローチでCNVコールに影響を及ぼすもう1つの大きな偏見は、mappabilityバイアスと呼ばれるあいまいなリードの処理である。アライメントのステップでは、あいまいなリードは、 ベストスコアのポジション、k個のベストスコアのポジション、すべての可能なポジション[ref.4]、または可能なポジションのうちの任意の1つにランダムに割り当てられる[ref.5,6]。これは、不均一なリードデプスをもたらす。この問題は、ショートリード(36〜150bp)の場合に顕著である。マッピング可能領域をフィルタリングするための適切な閾値を選択すること、および/またはビンのmappability scoreに関してビン内のリードを正規化することは、このバイアスに対処するのに役立つ。この研究では、iCopyDAVを使用して、GCバイアスおよびmappabilityバイアスの適切な処理が、ビンのサイズ、検出されるCNVのタイプおよびシーケンシングカバレッジに依存することを示す。
 DoCベースのアプローチのもう1つの主要なステップは、segmentation(以下セグメンテーション)である。このステップの目的は、類似の強度のリードデプス信号をクラスタ化することであり、平均リードデプス信号から逸脱するものは、バリアント領域として識別される。リードデプス信号は、シーケンシングエラー、マッピングエラー(マルチプルマッピング、ミスマッチ)、SNPおよびindelsの存在のために非常にノイズが多い。セグメンテーションにおける主な課題は、真のコピーバリアント領域と偽のバリアント領域とを区別することである。変異検出アルゴリズムとそれに続くマージ手順[ref.13]や、リードデプス信号がある確率分布に従うと仮定した統計的な仮説検定(e.g., Poisson, negative-binomial)に大別される様々なセグメンテーション手法が提案されている(論文 表1)[ref.9,11]。 iCopyDAVを使用して、これらのメソッドがアンダーカットまたはオーバーカットの問題を抱え、検出されるCNVのタイプとサイズ、およびデータのシーケンス範囲に応じて慎重に選択する必要があることを示す。

 CNVの機能的影響を分析するために、様々な機能要素、すなわちタンパク質コード遺伝子、非コードRNA、調節因子(プロモーターおよびエンハンサー)などとの重複に関する情報、既知のCNVおよび疾患関連が望ましい。多数の独立した注釈ツールがCNVの機能注釈(表2にまとめられている)に利用可能であるが、本発明者らの知見によれば、注釈コンポーネントはCNV検出ツールにはない。CNVの視覚化もまた重要な特徴であり、染色体/ゲノムにわたるCNVの分布を分析し、CNVクラスターを同定するのを助ける。

 以前の研究[ref.36,37]は、複数の方法を使用すると、単一のアプローチと比較してCNV予測の信頼性を改善できることを示している。PEM、SR、DoCメソッド(CNVer [38]、ERDS [39]、Clever [40]、HugeSeq [41]、SVMerge [42]、MetaSV [43]など異なる戦略に基づいたさまざまなツールの出力をマージする統合されたプラットフォームが開発されている。これらのプラットフォームは単一のアプローチよりも優れているが、アプローチのタイプを選択する柔軟性はない。また、これらのプラットフォームのほとんどはアノテーションとビジュアライゼーション機能を提供していない。したがって、単一プラットフォーム上の予測されたバリアントコールとバリアントのアノテーションの両方を提供するエンドツーエンドパイプラインの必要性が明らかに存在する。この目的で、著者らは、DoCアプローチに基づいた全ゲノムNGSデータにおけるCNV検出のための統合プラットフォームiCopyDAVを開発した。データ前処理(GCバイアスおよびマッピングバイアスの処理)、セグメンテーション(分割および凝集アプローチ)、CNVコール(タイプおよびコピー数)、アノテーション(機能要素、既知のCNV、臨床関連性および構造的特徴)およびビジュアライゼーション(GCプロファイルおよびCNV分布プロット)。適切なビンサイズの選択から、GCおよびマッピング可能バイアスの除去方法、セグメンテーション方法まで、エンドツーエンドソリューションを提供する点で、さまざまな統合プラットフォームとは異なる。したがって、iCopyDAVでは、ユーザーは、検出されるCNVのタイプとサイズ、およびデータのシーケンス・カバレッジに応じて、ワークフローをカスタマイズできる。必要に応じて、ユーザーはiCopyDAV内のさまざまなワークフローからのCNVコールをマージすることもできる(結合または交差)。 iCopyDAVの重要な特徴は、高いカバレッジのシーケンスデータでも(エキソーム解析など)、セグメント化アルゴリズムの並列化による高い計算効率により、CNVの検出が高速化されていることである。

 

公式HP (Docker imageやデータ、マニュアルあり)

iCopyDAV

 

インストール

公式ページのdockerを使い、mac10.12に導入した。

本体 Github

https://github.com/vogetihrsh/icopydav

コンテナのダウンロード。

wget http://bioinf.iiit.ac.in/icopydav/icopydav.tar
sudo docker load -i iCopyDAV.tar

#立ち上げる
Sudo docker run -i -t <Image ID>

#実行ファイルのあるroot/icopydav/に移動する。
cd /root/icopydav/

./calOptBinSize --help

# ./calOptBinSize --help

Usage: calOptBinsize -c <config file> -i <input BAM>

>./prepareData --help

# ./prepareData --help

Usage: prepare_data -m <map file> -g <gc content file> --win <window_Size> --genome_file <Genome file> -o <output Prefix> 

./pretreatment --help

# ./pretreatment --help

Usage: preprocess -i <input BAM> -o <output Prefix> -m <mappability file> -z <bin file>

> ./runSegmentation --help

v# ./runSegmentation --help

Usage: runSegmentation -o <output prefix> <one or both segmentation flags (-t, -d)>

./callCNV --help

# ./callCNV --help

Usage: callCNV -o <output Prefix> -z <window file> <genome-flag>

For additional parameters please go through read me

./annotate --help # (*1)

# ./annotate --help

Usage: annotate -i <input bed> -o <output prefix> <genome flag>

Please go through ReadMe for futher help

./plot --help

# ./plot --help

Usage: plot -i <input bed> -o <output prefix> <genome flag>

*1アノテーションはhg18とhg19のみ可能。

 

--データの送り方について--

別のターミナルウィンドウを開き、データを送る。

#コンテナIDを確認
sudo docker ps

#確認したIDのルートにデータを送る。ここでは~/fastq/にあるinput.fqを送る。
docker cp ~/fastq/input.fq containerID:.

  解析したデータをコンテナの外に送る。上と同様にosx側から操作。

docker cp containerID:/root/icopydav/files .

 最初から共有ディレクトリを指定して立ち上げても良いと思います。 

 

ラン

ランにはconfigファイルが必要。レポジトリのルートにおいてあるconfig.txtは以下のような内容になっている。

# cat config.txt 

#These are comments

# Minimum window size allowed

#  You can comment any parameter by adding '#' before it. For default values

#  of parameters please through the README.md

minSize=100

genomeSize=10000000

percCNLoss=0.05

percCNGain=0.05

fdr=0.01

overDispersion=3 # Value = 2 for low coverage data

ploidy=2

必要に応じて修正する。

 

すでにdockerコンテナ内に入っているものとする(一旦抜けるにはCtrl+PQ、再ログインはdocker psでIDを確認して docker attach < ID>)。 

 

公式からダウンロードできるテストデータを解析してみる。

wget http://bioinf.iiit.ac.in/icopydav/test.tar

 

マニュアルの通り進める。

# CALCULATE OPTIMAL BIN/WINDOW SIZE

./calOptBinSize -c config.txt -i Testing_files/Test.bam 

 

 # DATA PREPARATION

./prepareData -m Testing_files/chr21.dat -g Testing_files/chr21.gc --win 100 --genome_file Testing_files/chr21.gen -o output

 

# PRETREATMENT STEP

./pretreatment -i Testing_files/Test.bam -z output_100.bin --mapfile output_100.map -o output --gcfile output_100.gc 

 > head -n 5 cbs_output_annotated.bed 

# head -n 5 cbs_output_annotated.bed 

#c1 c2 c3 c4 c5 GENE LOCATION Gene_Structural_Elements DGV_accessions Enhancers miRNA_target_sites Segmental_Duplications Interspersed_repeats Tandem_repeats ClinVar_pathogenicity ClinVar_Phenotype OMIM_PHENOTYPE DECIPHER EXAC Priority

chr21 9719800 9724000 1 34.9907 . . . dgv2455e59,dgv2456e59,dgv7727n54,dgv7728n54,dgv7729n54,esv28756,esv5204,esv6965,esv8991,nsv586875,nsv586876,nsv820334,nsv834035 . . . . chr21:9719768-9725583_TR,chr21:9719769-9725584_TR . . . . . low

chr21 9724000 9725000 1 75.7965 . . . dgv2455e59,dgv2456e59,dgv7727n54,dgv7728n54,dgv7729n54,esv28756,esv5204,nsv586875,nsv586876,nsv820334,nsv834035 . . . . chr21:9719768-9725583_TR,chr21:9719769-9725584_TR . . . . . low

chr21 9725000 9725400 1 32.238 . . . dgv2455e59,dgv2456e59,dgv7727n54,dgv7728n54,dgv7729n54,esv28756,esv8133,nsv586875,nsv586876,nsv820334,nsv834035 . . . . chr21:9719768-9725583_TR,chr21:9719769-9725584_TR . . . . . low

chr21 9725400 9726400 1 13.5252 . . . dgv2455e59,dgv2456e59,dgv7727n54,dgv7728n54,dgv7729n54,esv28756,esv6494,esv8133,nsv586875,nsv586876,nsv820334,nsv834035 . . . . . . . . . . low

 

# SEGMENTATION

./runSegmentation -o output -t -d  

output_cbs_pCNVD.output、output_tvm_pCNVD.outputができる。

 

# POSTPROCESSING AND CNV CALLING

./callCNV -o output -z output_100.bin --hg18

 

# ANNOTATION  

./annotate -i output_tvm_pCNVD.bed -o tvm_output --hg18
./annotate -i output_cbs_pCNVD.bed -o cbs_output --hg18

 

# PLOT (visualization)

./plot -i output_cbs_pCNVD.bed -o tvm --hg18
./plot -i output_cbs_pCNVD.bed -o tvm --hg18

 

osxにコピーする。

docker cp containerID:/root/icopydav/tvm.png .
docker cp containerID:/root/icopydav/cbs.png .

画像を開く。

> open tvm.png

f:id:kazumaxneo:20180605111320j:plain

> open cbs.png

f:id:kazumaxneo:20180605113159j:plain

 

 

引用

iCopyDAV: Integrated platform for copy number variations-Detection, annotation and visualization

Dharanipragada P, Vogeti S, Parekh N.

PLoS One. 2018 Apr 5;13(4):e0195334.

 

cpなどのコマンドの進捗をモニターするprogress

 

標準では、"cp mv dd tar cat rsync grep fgrep egrep cut sort md5sum sha1sum sha224sum sha256sum sha384sum sha512sum adb gzip gunzip bzip2 bunzip2 xz unxz lzma unlzma 7z 7za zcat bzcat lzcat split gpg" に対応している。 

 

インストール

mac10.13とcentos6に導入した。

対応OS

Linux-and-OSX

 

本体 Github

git clone https://github.com/Xfennec/progress.git
cd progress/
make

./progress -h

$ ./progress -h

progress - Coreutils Viewer

---------------------

Shows progress on file manipulations (cp, mv, dd, ...)

 

Monitored commands (default):

cp mv dd tar cat rsync grep fgrep egrep cut sort md5sum sha1sum sha224sum sha256sum sha384sum sha512sum adb gzip gunzip bzip2 bunzip2 xz unxz lzma unlzma 7z 7za zcat bzcat lzcat split gpg 

 

Usage: ./progress [-qdwmM] [-W secs] [-c command] [-p pid]

  -q --quiet                   hides all messages

  -d --debug                   shows all warning/error messages

  -w --wait                    estimate I/O throughput and ETA (slower display)

  -W --wait-delay secs         wait 'secs' seconds for I/O estimation (implies -w, default=1.0)

  -m --monitor                 loop while monitored processes are still running

  -M --monitor-continuously    like monitor but never stop (similar to watch ./progress)

  -a --additional-command cmd  add additional command to default command list

  -c --command cmd             monitor only this command name (ex: firefox)

  -p --pid id                  monitor only this process ID (ex: `pidof firefox`)

  -i --ignore-file file        do not report process if using file

  -o --open-mode {r|w}         report only files opened for read or write

  -v --version                 show program version and exit

  -h --help                    display this help and exit

/usr/local/bin/とかに移動しとく。

 

ラン

cpコマンド進捗状況を調べる。

cp input.fq output.fq &
progress

$ progress

[36984] cp input.fq

24.4% (740 MiB / 3.0 GiB)

 

%で進捗が表示される。

 

より実用的に使うなら、loopオプション-mをつけて叩く。fastqのディレクトリをカレントにコピーするのをモニターする。

cp -r raw_fastq_dir/ test_dir/ & progress -m

-mをつけると、ジョブが終わるまで進捗が表示される。

複数ジョブ、バックグラウンドでコピーしている時は、それぞれのジョブの進捗がモニターされる。

 

tar.bz2解凍の進捗をモニターする。

tar -xf SRS044742.tar.bz2 & progress -m

 

追記

何度もうつコマンドはエイリアス通すと楽なので、"P"でprogress -mを実行できるようにした。bash_profileに書き込んでソースするなら、ターミナルで以下のように打つ。

echo alias P=\'progress -m\' >> ~/.bash_profile && source ~/.bash_profile

進捗をモニタしながらコピーする。 

cp original.fq copy.fq &P

 

 

 

macだと他にもこんな方法もあるようです。gzipなどにも対応してるかは不明です。

 

*rsyncコマンドには進捗を示すオプション"-P"あり。

 

引用

GitHub - Xfennec/progress: Linux tool to show progress for cp, mv, dd, ... (formerly known as cv)

 

参考ページ