From 15591c90380cdfe6a10e26b891f7a0650637e842 Mon Sep 17 00:00:00 2001 From: Heng Li Date: Fri, 10 Apr 2020 11:04:35 -0400 Subject: [PATCH] improve documentation --- CommandLines.cpp | 4 +- hifiasm.1 | 171 +++++++++++++++++++++++------------------------ 2 files changed, 85 insertions(+), 90 deletions(-) diff --git a/CommandLines.cpp b/CommandLines.cpp index 4502785..a5be845 100644 --- a/CommandLines.cpp +++ b/CommandLines.cpp @@ -46,12 +46,14 @@ void Print_H(hifiasm_opt_t* asm_opt) fprintf(stderr, " -n INT small removed unitig threshold [%d]\n", asm_opt->max_short_tip); fprintf(stderr, " -x FLOAT max overlap drop ratio [%.2g]\n", asm_opt->max_drop_rate); fprintf(stderr, " -y FLOAT min overlap drop ratio [%.2g]\n", asm_opt->min_drop_rate); - fprintf(stderr, " -v show version number\n"); + fprintf(stderr, " --version show version number\n"); fprintf(stderr, " -h show help information\n"); fprintf(stderr, " Trio-partition:\n"); fprintf(stderr, " -1 FILE hap1/paternal k-mer dump generated by \"yak count\" []\n"); fprintf(stderr, " -2 FILE hap2/maternal k-mer dump generated by \"yak count\" []\n"); + fprintf(stderr, " -3 FILE list of hap1/paternal read names []\n"); + fprintf(stderr, " -4 FILE list of hap2/maternal read names []\n"); fprintf(stderr, " -c INT lower bound of the binned k-mer's frequency [%d]\n", asm_opt->min_cnt); fprintf(stderr, " -d INT upper bound of the binned k-mer's frequency [%d]\n", asm_opt->mid_cnt); diff --git a/hifiasm.1 b/hifiasm.1 index 2d0c2ba..ce2ba07 100644 --- a/hifiasm.1 +++ b/hifiasm.1 @@ -5,34 +5,56 @@ hifiasm - haplotype-resolved de novo assembler for PacBio Hifi reads. .SH SYNOPSIS -.PP -hifiasm + +* Assemble HiFi reads: +.RS 4 +.B hifiasm .RB [ -o .IR prefix ] .RB [ -t -.IR numThres ] -.RB [ -r -.IR roundCorrection ] -.RB [ -a -.IR roundGraphClean ] +.IR nThreads ] +.RB [ -z +.IR endTrimLen ] +.R [options] +.I input1.fq +.RI [ input2.fq +.R [...]] +.RE + +* Trio binning assembly with yak dumps: +.RS 4 +.B yak count +.B -o +.I paternal.yak +.B -b37 +.RB [ -t +.IR nThreads ] .RB [ -k .IR kmerLen ] -.RB [ -z -.IR adapterLen ] -.RB [ -m -.IR maxLargeBubbles ] -.RB [ -p -.IR maxSmallBubbles ] -.RB [ -n -.IR maxSmallUnitig ] -.RB [ -x -.IR maxDropRatio ] -.RB [ -y -.IR minDropRatio ] -.RB [ -i ] -.RB [ -v ] -.RB [ -h ] -.I <...> +.I paternal.fq.gz +.br +.B yak count +.B -o +.I maternal.yak +.B -b37 +.RB [ -t +.IR nThreads ] +.RB [ -k +.IR kmerLen ] +.I maternal.fq.gz +.br +.B hifiasm +.RB [ -o +.IR prefix ] +.RB [ -t +.IR nThreads ] +.R [options] +.B -1 +.I paternal.yak +.B -2 +.I maternal.yak +.I child.hifi.fq.gz +.RE .SH DESCRIPTION .PP @@ -49,9 +71,8 @@ outputs consist of multiple types of assembly graph in GFA format. .TP 10 .BI -o \ FILE -Prefix of output files [hifiasm.asm]. The outputs of hifiasm include error corrected -reads in fasta format, all-to-all overlaps in paf format, and four types of assembly -graph in GFA format. For detailed description of all assembly graphs, please see the +Prefix of output files [hifiasm.asm]. For detailed description of all assembly +graphs, please see the .B OUTPUTS section of this man-page. @@ -59,18 +80,18 @@ section of this man-page. .BI -t \ INT Number of CPU threads used by hifiasm [1]. +.TP +.BI -h +Show help information. -.TP 10 -.BI -v +.TP +.BI --version Show version number. -.TP 10 -.BI -h -Show help information. .SS Error correction options -.TP 10 +.TP .BI -k \ INT K-mer length [40]. This option must be less than 64. @@ -80,7 +101,7 @@ Rounds of haplotype-aware error corrections [2]. This option affects all outputs .SS Assembly options -.TP 10 +.TP .BI -a \ INT Rounds of assembly graph cleaning [4]. This option is used with .B -x @@ -90,8 +111,7 @@ Note that unlike .BR -r , this option does not affect error corrected reads and all-to-all overlaps. - -.TP 10 +.TP .BI -z \ INT Length of adapters that should be removed [0]. This option remove .I INT @@ -100,8 +120,7 @@ Some old Hifi reads may consist of short adapters (e.g., 20bp adapter at one end). For such data, trimming short adapters would significantly improve the assembly quality. - -.TP 10 +.TP .BI -m \ INT Maximal probing distance for bubble popping when generating primary/alternate contig graphs [10000000]. Bubbles longer than @@ -110,8 +129,7 @@ bases will not be popped. For detailed description of these graphs, please see t .B OUTPUTS section of this man-page. - -.TP 10 +.TP .BI -p \ INT Maximal probing distance for bubble popping when generating haplotype-resolved processed unitig graph without small bubbles [100000]. Bubbles longer than @@ -121,16 +139,13 @@ are not the real haplotype information. For detailed description of this graph, .B OUTPUTS section of this man-page. - -.TP 10 +.TP .BI -n \ INT A unitig is considered small if it is composed of less than .I INT reads [3]. Hifiasm may try to remove small unitigs at various steps. - - -.TP 10 +.TP .BI -x \ FLOAT, -y \ FLOAT Max and min overlap drop ratio [0.8, 0.2]. This option is used with .BR -r . @@ -153,9 +168,11 @@ rounds of short overlap removal with an increasing threshold between and .BR -y . -.TP 10 +.TP .BI -i -Ignore saved overlaps in [*.ovlp*] files. +Ignore error corrected reads and overlaps saved in +.IR prefix .*.bin +files. Apart from assembly graphs, hifiasm also outputs three binary files that save all overlap information during assembly step. With these files, hifiasm can avoid the time-consuming all-to-all overlap calculation step, @@ -168,19 +185,25 @@ with different parameters. .TP 10 .BI -1 \ FILE -Paternal/haplotype1 k-mer dump generated by +K-mer dump generated by .B yak count -from the paternal/haplotype1 reads. For details of yak, please see -.I [https://github.com/lh3/yak] +from the paternal/haplotype1 reads [] -.TP 10 +.TP .BI -2 \ FILE -Maternal/haplotype2 k-mer dump generated by +K-mer dump generated by .B yak count -from the maternal/haplotype2 reads. For details of yak, please see -.I [https://github.com/lh3/yak] +from the maternal/haplotype2 reads [] -.TP 10 +.TP +.BI -3 \ FILE +List of paternal/haplotype1 read names [] + +.TP +.BI -4 \ FILE +List of maternal/haplotype2 read names [] + +.TP .BI -c \ INT Lower bound of the binned k-mer's frequency [2]. When doing trio binning, a k-mer is said to be differentiating if it occurs >= @@ -190,7 +213,7 @@ but occurs < .B -c times in the other sample. -.TP 10 +.TP .BI -d \ INT Upper bound of the binned k-mer's frequency [5]. When doing trio binning, a k-mer is said to be differentiating if it occurs >= @@ -208,38 +231,6 @@ times in the other sample. Write additional files to speed up the debugging of graph cleaning -.SH EXAMPLES - -.TP -.BR ./hifiasm " " \-o " " NA12878.asm " " \-t " " 32 " " NA12878_1.fq.gz " " NA12878_2.fq.gz -In this example, hifiasm will be run with 32 CPU threads. The input read files are [NA12878_1.fq.gz] -and [NA12878_2.fq.gz], -while all output files can be found at [NA12878.asm.*]. - -.TP -.BR ./hifiasm " " \-o " " butterfly.asm " " \-t " " 32 " " \-z " " 20 " " butterfly.fq.gz -In this example, hifiasm will be run with 32 CPU threads. The input read file is [butterfly.fq.gz], -while all output files can be found at [butterfly.asm.*]. -With -.I [-z 20], -hifiasm will remove 20 bases from both ends of each read. - -.SH EXAMPLES FRO TRIO -.TP -.BR ./yak " " count " " \-k31 " " \-b37 " " \-t16 " " \-o " " mat.yak " " mat.fq.gz -Build maternal trio index from mat.fq.gz. - -.TP -.BR ./yak " " count " " \-k31 " " \-b37 " " \-t16 " " \-o " " pat.yak " " pat.fq.gz -Build paternal trio index from pat.fq.gz. - -.TP -.BR ./hifiasm " " \-o " " NA12878.asm " " \-t " " 32 " " \-1 " " pat.yak " " \-2 " " mat.yak " " NA12878_1.fq.gz " " NA12878_2.fq.gz -In this example, hifiasm will do trio assembly with 32 CPU threads. The paternal assembly can be found at [NA12878.asm.hap1.p_ctg.gfa], -and the maternal assembly can be found at [NA12878.asm.hap2.p_ctg.gfa]. - - - .SH OUTPUTS .PP @@ -299,8 +290,10 @@ maternal/haplotype2 assembly. .RE .PP -For each graph, hifiasm also outputs a simplified version without sequences. These simplified -graphs can be easily visualized. +For each graph, hifiasm also outputs a simplified version without sequences for +the ease of visualization. Hifiasm keeps corrected reads and overlaps in three +binary files such as it can regenerate assembly graphs from the binary files +without redoing error correction. .PP Note that different species need different assembly graphs. For homozygous genomes,