2020 3/15 インストール追記、help更新
2020 4/19 追記
goleftはMIT licence下で提供されているバイオインフォマティクスのツールキット。GO言語で構築されている。
インストール
リリース(リンク)からosx向けバイナリをダウンロードできる。パスの通ったディレクトリに移動しておく。
chmod u+x goleft-osx.dms
mv goleft-osx.dms /usr/local/bin/goleft
goleft #動作確認
#bioconda (link)
conda install -c bioconda -y goleft
> goleft -h
$ goleft -h
goleft Version: 0.2.0
covstats : coverage stats across bams by sampling
depth : parallelize calls to samtools in user-defined windows
depthwed : matricize output from depth to n-sites * n-samples
indexcov : quick coverage estimate using only the bam index
indexsplit : create regions of even coverage across bams/crams
samplename : report samplename(s) from a bam's SM tag
> goleft covstats -h
$ goleft covstats -h
coverage insert_mean insert_sd insert_5th insert_95th template_mean template_sd pct_unmapped pct_bad_reads pct_duplicate pct_proper_pair read_length bam sample
Usage: goleft [--n N] [--regions REGIONS] [--fasta FASTA] BAMS [BAMS ...]
Positional arguments:
BAMS bams/crams for which to estimate coverage
Options:
--n N, -n N number of reads to sample for length [default: 1000000]
--regions REGIONS, -r REGIONS
optional bed file to specify target regions
fasta file. required for cram format
--help, -h display this help and exit
> goleft depth -h
$ goleft depth -h
Usage: goleft [--windowsize WINDOWSIZE] [--maxmeandepth MAXMEANDEPTH] [--ordered] [--q Q] [--chrom CHROM] [--mincov MINCOV] [--stats] [--reference REFERENCE] [--processes PROCESSES] [--bed BED] --prefix PREFIX BAM
Positional arguments:
BAM bam for which to calculate depth
Options:
--windowsize WINDOWSIZE, -w WINDOWSIZE
window size in which to calculate high-depth regions [default: 250]
--maxmeandepth MAXMEANDEPTH, -m MAXMEANDEPTH
windows with depth > than this are high-depth. The default reports the depth of all regions.
--ordered, -o force output to be in same order as input even with -p.
--q Q, -Q Q mapping quality cutoff [default: 1]
--chrom CHROM, -c CHROM
optional chromosome to limit analysis
--mincov MINCOV minimum depth considered callable [default: 4]
--stats, -s report sequence stats [GC CpG masked] for each window
--reference REFERENCE, -r REFERENCE
path to reference fasta
--processes PROCESSES, -p PROCESSES
number of processors to parallelize.
--bed BED, -b BED optional file of positions or regions to restrict depth calculations.
--prefix PREFIX prefix for output files depth.bed and callable.bed
--help, -h display this help and exit
> goleft indexcov -h
$ goleft indexcov -h
Usage: goleft --directory DIRECTORY [--includegl] [--excludepatt EXCLUDEPATT] [--sex SEX] [--chrom CHROM] [--fai FAI] BAM [BAM ...]
Positional arguments:
BAM bam(s) or crais for which to estimate coverage
Options:
--directory DIRECTORY, -d DIRECTORY
directory for output files
--includegl, -e plot GL chromosomes like: GL000201.1 which are not plotted by default
--excludepatt EXCLUDEPATT [default: ^chrEBV$|^NC|_random$|Un_|^HLA\-|_alt$|hap\d$]
--sex SEX, -X SEX comma delimited names of the sex chromosome(s) used to infer sex. Set to '' if no sex chromosomes are present. [default: X,Y]
--chrom CHROM, -c CHROM
optional chromosome to extract depth. default is entire genome.
--fai FAI, -f FAI fasta index file. Required when crais are used.
--help, -h display this help and exit
> goleft depthwed -h
$ goleft depthwed -h
Usage: goleft --size SIZE BEDS [BEDS ...]
Positional arguments:
BEDS depth.bed files from goleft depth
Options:
--size SIZE, -s SIZE sizes of windows to aggregate to must be >= window in input files.
--help, -h display this help and exit
> goleft indexsplit -h
$ goleft indexsplit -h
Usage: goleft --n N [--fai FAI] [--problematic PROBLEMATIC] INDEXES [INDEXES ...]
Positional arguments:
INDEXES bai's/crais to use for splitting genome.
Options:
--n N, -n N number of regions to split to.
--fai FAI fasta index file.
--problematic PROBLEMATIC, -p PROBLEMATIC
pipe-delimited list of regions to split small.
--help, -h display this help and exit
> goleft samplename -h
$ goleft samplename -h
samplename 0.2.0
Usage: goleft [--errormulti] BAM
Positional arguments:
BAM bam for to get sample name(s)
Options:
--errormulti, -e return an error if there is not exactly 1 sample in the bam.
--help, -h display this help and exit
--version display version and exit
ラン
1、covstats bamをサンプリングしてカバレッジとインサートサイズをレポート
bamを指定してランする。bedファイルで特定の領域や染色体だけ解析もできる。
goleft covstats pair.bam
カバレッジ、インサートサイズとそのSDなどが出力される。
cutとcolumnに渡して整形表示。
2、depth 一定のウィンドウサイズでbamのカバレッジを計算
goleft depth --reference ref.fa --prefix output input.bam
prefixで指定したファイルに指定ウィンドウサイズのカバレッジが出力される。
3、indexcov bam.baiからのカバレッジの超高速な推定。30サンプルを30秒で解析可能(ref.1)。
複数のbamをディレクトリに準備してランする。
goleft indexcov --directory output/ bam_data/*.bam
関係ないファイルがあるとエラーになったので、bamとbaiだけ集めたほうがよいかもしれない。htmlで結果は出力される。
上では2サンプルだけです。 公式のほうがわかりやすい結果を載せています(リンク)。
他にも、bamをほぼ等しい量のデータでN個の領域に分割するindexsplitや(計算を並列化するために使う)、SM tagからsamplenameをレポートするsamplenameがある。
2020 4/19
multiqcでレポート作成 。
goleft indexcov --directory goleft_outdir *.bam
multiqc .
goleftも素晴らしいhtmlレポートを作成してくれるが、multiqcの出力はサンプル間比較がしやすく、他の解析結果と共に統合レポートを作成するのに便利。
引用
ref.1
Indexcov: fast coverage quality control for whole-genome sequencing.
Pedersen BS, Collins RL, Talkowski ME, Quinlan AR
Gigascience. 2017 Nov 1;6(11):1-6.
https://github.com/brentp/goleft