Package: zga
ZGA - prokaryotic genome assembly and annotation pipelineMain FeaturesWide range of supported reads: Illumina, Oxford Nanopore, PacBio, BGI.Short read multi-threaded processing: QC, filtering, trimming, overlapped pairs merging.Assemblies from short reads, long reads or hybrid assembly using modern and powerful assemblers:SPAdes,Unicycler,FlyeorMEGAHIT.Quality control of assembly: completeness and contamination assessment withCheckMas well as PhiX detection.Fast annotation of bacterial and archeal genome assemblies withDFAST.No High Performance Computing needed. The pipeline works on laptop or desktop.InstallationZGA is written in Python and tested with Python 3.6, 3.7 and 3.8.Install with condaThe simplest way to install ZGA and all dependencies isconda:You need to install conda, e.g.miniconda. Python 3.6 or newer is preferred.After installation You should add channels - the conda's software sources:conda config --add channels biocondaconda config --add channels conda-forgeAt the end You should install ZGA to an existing active environment (Python 3.6 - 3.8):conda install zgaor create a fresh environment and activate it:conda create -n zga zgaconda activate zgaIf You have troubles with bioconda channel try to use my personal channelhttps://anaconda.org/laxeye/zgaconda install -c laxeye zgaInstall from PyPIRunpip install zga. Biopython is the only one dependency installed from PyPI. All other dependencies You should install manually or usingcondaas mentioned above. CheckM is available onPyPi, but it's easier to install it usingconda.Get source from GithubYou can get ZGA by cloning from the repository withgit clone https://github.com/laxeye/zga.gitor by downloading an archive. After downloading enter the directorycd zgaand runpython3 setup.py install.Don't forget to install dependecies (see bellow).Installing dependenciesZGA uses several software and libraries including:fastpBBmapNxTrimmashSPAdes(>= 3.12 to support merged paired-end reads, >= 3.5.0 to support Nanopore reads)UnicyclerFlye>= 2.6MEGAHITminimap2raconCheckM>= 1.1.0BioPythonNCBI BLAST+DFASTYou may install all dependencies separately usingconda. It's highly recommended to create a new conda environment:conda create -n zga "python>=3.6" fastp "spades>=3.12" unicycler checkm-genome dfast bbmap blast biopython nxtrim "mash>=2" flye minimap2 racon "samtools>=1.9" megahitand activate itconda activate zgaOtherwise you may install dependencies to existing conda environment:conda install "python>=3.6" fastp "spades>=3.12" unicycler checkm-genome dfast bbmap blast biopython nxtrim "mash>=2" flye minimap2 racon "samtools>=1.9"Of course, it's possible to useanother wayseven compile all tools from source code. In this case you should check if binaries are in your '$PATH' variable.DFAST database downloadAfter installation DFAST downloads some basic databases. It's recommended to download more databases usingdfast_file_downloader.pycommand-line script:Rundfast_file_downloader.py -hto see available databases and options.Default databases may be donloaded withdfast_file_downloader.py --protein dfast --cdd Cog --hmm TIGRSoon auto-download of databases during installation with conda will be available.If You want to use more databases You need to edit DFAST configuration file and provide it to ZGA with--dfast-configoption.Operating systems requirementsZGA was tested on Ubuntu 18.04, 19.10 and 20.04. Most probably any modern 64-bit Linux distribuition is suitable.Your feedback on other OS is welcome!UsageRunzga -hto get a help message.Pipeleine stepsZGA includes several steps:Read quality check ('readqc')Read processing ('preprocessing')Genome assembling ('assembling')Genome polishing ('polishing')Genome quality assessment ('check_genome')Genome annotation ('annotation')You may start from any step and finish at any step providing arguments-sor--first-stepand-lor--last-stepfollowed by step designation (in brackets in the list above).E.g. if You like to perform read processing, genome assembling and genome polishing You should runzga --first-step preprocessing --last-step polishing ...Input filesZGA may use unprocessed or processed sequencing reads from different platforms as well as genome assemblies to perform assembly polishing, assembly quality assessment and assembly annotation. FASTQ format gzipped or not is required for sequencing reads. Paired-end reads shoul be provided in separate files, not interleaved. Sequencing reads should be provided as space separated list after corresponding argument:-1or--pe-1for forward paired-end reads (Illumina, BGI)-2or--pe-2for reverse paired-end reads-Sor--single-endfor unpaired short reads--pe-mergedfor merged overlapping paired-end reads (if You performed merging earlier)--mp-1for first mate-pair reads, RF orientation is supposed--mp-2for second mate-pair reads--pacbiofor PacBio single-end sequencing reads--nanoporefor Oxford Nanopore sequencing readsWhenbbduk.sh(short read trimming tool) throws an exception ZGA tries to repair reads withrepair.sh(from BBMap).Exampleszga -1 Raw.R1.fq.gz -2 Raw.R2.fq.gzunprocessed paired-end readszga -1 Unmerged_1.fq -2 Unmerged_2.fq --pe-merged Merged.fqreads after processing (overlapping reads merging)zga -1 Lib1.R1.fq.gz Lib2.R1.fq -2 Lib1.R2.fq Lib2.R2.fqcombination of reads from two sequencing librariesOutputZGA produces up to 4 sub-folders in output folder:readQC- results of reaq quality control withfastp,reads- processed reads,assembly- folder produced by genomic assembler,annotation- annotated genome.Log-filezga.logis available in the output folder.Usage examplesPerform all steps: read qc, read trimming and merging, assembly, CheckM assesment with default (bacterial) marker set, DFAST annotation and use 4 CPU threads where possible:zga -1 R1.fastq.gz -2 R2.fastq.gz --bbmerge --threads 4 -o my_assemblyAssemble with SPAdes using paired-end and nanopore reads of archaeal genome (CheckM will use archaeal markers) altering memory limit to 16 GB:zga -1 R1.fastq.gz -2 R2.fastq.gz --nanopore MiniION.fastq.gz -a spades --threads 4 --memory-limit 16 --domain archaea -o my_assemblyShort read correction with SPAdes is a computationally expensive step, You may run read-correction with tadpole including--tadpole-correctoption which is much faster and needs less memory.zga --tadpole-correct -1 R1.fastq.gz -2 R2.fastq.gz --threads 4 -o my_assemblyAssemble long reads with Flye skipping long read polishing and perfom short-read polishing with racon:zga -1 R1.fastq.gz -2 R2.fastq.gz --nanopore MiniION.fastq.gz -a flye --threads 4 --domain archaea -o my_assembly --flye-short-polish --flye-skip-long-polishAssemble from Nanopore reads using unicycler:zga -a unicycler --nanopore MiniION.fastq -o nanopore_assemblyPerform assesment and annotation of genome assembly with e.g.PectobacteriumCheckM marker set:zga --first-step check_genome -g pectobacterium_sp.fasta --checkm_rank genus --checkm_taxon Pectobacterium -o my_output_dirLet CheckM to infer the right marker set:zga --first-step check_genome -g my_genome.fa --checkm_mode lineage -o my_output_dirKnown issues and limitationsZGA is in the stage of active development.Known issues and limitations:Unicycler can't use mate-pair reads or multiple libraries of same type.Don't hesitate to report bugs or features!CiteIt's a great pleasure to know, that your software is useful. Please cite ZGA:Korzhenkov A. 2021. ZGA: a flexible pipeline for read processing, de novo assembly and annotation of prokaryotic genomes. bioRxivhttps://doi.org/10.1101/2021.04.27.441618And of course tools it's using:Chen, S., Zhou, Y., Chen, Y., & Gu, J. (2018). fastp: an ultra-fast all-in-one FASTQ preprocessor. Bioinformatics, 34(17), i884-i890.https://doi.org/10.1093/bioinformatics/bty560Bushnell, B., Rood, J., & Singer, E. (2017). BBMerge–accurate paired shotgun read merging via overlap. PloS one, 12(10).https://doi.org/10.1371/journal.pone.0185056Bankevich, A., Nurk, S., Antipov, D., Gurevich, A. A., Dvorkin, M., Kulikov, A. S., ... & Pyshkin, A. V. (2012). SPAdes: a new genome assembly algorithm and its applications to single-cell sequencing. Journal of computational biology, 19(5), 455-477.https://dx.doi.org/10.1089%2Fcmb.2012.0021Wick, R. R., Judd, L. M., Gorrie, C. L., & Holt, K. E. (2017). Unicycler: resolving bacterial genome assemblies from short and long sequencing reads. PLoS computational biology, 13(6), e1005595.https://doi.org/10.1371/journal.pcbi.1005595Vaser, R., Sović, I., Nagarajan, N., & Šikić, M. (2017). Fast and accurate de novo genome assembly from long uncorrected reads. Genome research, 27(5), 737-746.https://genome.cshlp.org/content/27/5/737.fullLi, D., Liu, C-M., Luo, R., Sadakane, K., and Lam, T-W., (2015) MEGAHIT: An ultra-fast single-node solution for large and complex metagenomics assembly via succinct de Bruijn graph. Bioinformatics, doi: 10.1093/bioinformatics/btv033https://doi.org/10.1093/bioinformatics/btv033Li, H. (2018). Minimap2: pairwise alignment for nucleotide sequences. Bioinformatics, 34:3094-3100.https://dx.doi.org/10.1093/bioinformatics/bty191Kolmogorov, M., Yuan, J., Lin, Y., & Pevzner, P. A. (2019). Assembly of long, error-prone reads using repeat graphs. Nature biotechnology, 37(5), 540-546.https://doi.org/10.1038/s41587-019-0072-8Parks, D. H., Imelfort, M., Skennerton, C. T., Hugenholtz, P., & Tyson, G. W. (2015). CheckM: assessing the quality of microbial genomes recovered from isolates, single cells, and metagenomes. Genome research, 25(7), 1043-1055.https://dx.doi.org/10.1101%2Fgr.186072.114Tanizawa, Y., Fujisawa, T., & Nakamura, Y. (2018). DFAST: a flexible prokaryotic genome annotation pipeline for faster genome publication. Bioinformatics, 34(6), 1037-1039.https://dx.doi.org/10.1093%2Fbioinformatics%2Fbtx713Camacho, C., Coulouris, G., Avagyan, V. et al. (2009). BLAST+: architecture and applications. BMC Bioinformatics 10, 421.https://doi.org/10.1186/1471-2105-10-421Cock, P. J., Antao, T., Chang, J. T., Chapman, B. A., Cox, C. J., Dalke, A., ... & De Hoon, M. J. (2009). Biopython: freely available Python tools for computational molecular biology and bioinformatics. Bioinformatics, 25(11), 1422-1423.https://doi.org/10.1093/bioinformatics/btp163O’Connell, J., et al. (2015) NxTrim: optimized trimming of Illumina mate pair reads. Bioinformatics 31(12), 2035-2037.https://doi.org/10.1093/bioinformatics/btv057Ondov, B.D., Treangen, T.J., Melsted, P. et al. Mash: fast genome and metagenome distance estimation using MinHash. Genome Biol 17, 132 (2016).https://doi.org/10.1186/s13059-016-0997-x