Package: hitac
HiTaCHiTaC is an open-source hierarchical taxonomic classifier for fungal ITS sequences.Quick linksBenchmarkInstall standalone versionQuick start for standalone versionInstall as a QIIME2 pluginQuick start for QIIME2 pluginSupportContributingGetting the latest updatesCitationBenchmarkHiTaC was thoroughly evaluated with theTAXXI benchmark, consistently achieving higher accuracy and sensitivity as evidenced in the figures below.For reproducibility, a Snakemake pipeline was created. Instructions on how to run it and source code are available athttps://github.com/mirand863/hitac/tree/main/benchmark.Install standalone versionOption 1: CondaHiTaC can be easily installed in a new conda environment by running the following command:condacreate-nhitac-cbiocondahitacAfterward, the new conda environment created can be activated with:condaactivatehitacFor conda installation instructions, we refer the reader toConda's user guide.Option 2: PipAlternatively, HiTaC can be installed with pip by running:pipinstallhitacOption 3: DockerLastly, HiTaC can be downloaded as a docker image:dockerpullmirand863/hitac_standalone:latestThe downloaded image can then be started with:dockerrun-itmirand863/hitac_standalone:latest/bin/bashQuick start for standalone versionFor an interactive tutorial, we refer the reader to ourGoogle Colabs notebook.To see the usage run[command] --helpif you want further help with a specific command.usage:hitac-fit[-h]--referenceREFERENCE[--kmerKMER][--threadsTHREADS]--classifierCLASSIFIER

Fithierarchicalclassifier

optionalarguments:-h,--helpshowthishelpmessageandexit--referenceREFERENCEInputFASTAfilewithreferencesequence(s)totrainmodel--kmerKMERK-mersizeforfeatureextraction[default:6]--threadsTHREADSNumberofthreadstotraininparallel[default:all]--classifierCLASSIFIERPathtostoretrainedhierarchicalclassifierInput FilesHiTaC accepts reference and query files in FASTA format. The reference file must have the taxonomies annotated as follows:>EU272527;tax=d:Fungi,p:Ascomycota,c:Eurotiomycetes,o:Eurotiales,f:Trichocomaceae,g:Paecilomyces,s:Paecilomyces_sinensis;CCGAGTGAGGGTCCCACGAGGCCCAACCTCCCATCCGTGTTGAACTACACCTGTTGCTTCGGCGGGCCCGCCGTGGTTCA
CGCCCGGCCGCCGGGGGGCCTTGTGCTCCCGGGCCCGCGCCCGCCGAAGACCCCTCGAACGCTGCCCTGAAGGTTGCCGT
CTGAGTATAAAATCAATCATTAAAACTTTCAACAACGGATCTCTTGGTTCCGGCATCGATGAAGAACGCAGCGAAATGCG
ATAAGTAATGTGAATTGCAGAATTCCGTGAATCATCGAATCTTTGAACGCACATTGCGCCCCCTGGCATTCCGGGGGGCA
TGCCTGTCCGAGCGTCATTGCTAACCCTCCAGCCCGGCTGGTGTGTTGGGTCGACGTCCCCCCCGGGGGACGGGCCCGAA
AGGCAGCGGCGGCGCCGCGTCCGATCCTCGAGCGTATGGGGCTTTGTCACGCGCTCTGGTAGGGTCGGCCGGCTGGCCAG
CCAGCGACCTCACGGTCACCTATTTTTTCTCTTAGG
>L54118;tax=d:Fungi,p:Basidiomycota,c:Agaricomycetes,o:Boletales,f:Suillaceae,g:Suillus,s:Suillus_placidus;ACGAATTCATAATTCGGCGAGGGGAAAGCGGAGGGTTGTAGCTGGCCTTTTTACCGAGGCACGTGCACGCTCTCTTCCGA
ACTCTCGTCGTATGGGCGCGGGGCGACCCGCGTCTTTCATCCCACCTCTTCGTGTAGAAAGTCTTTGAATGTTTTTACCA
TCATCGAGTCGCGACTTCTAGGAGACGCGATTCTTTGAGACAAAAGTTTATTACAACTTTCAGCAATGGATCTCTTGGCT
CTCGCATCGATGAAGAACGCAGCGAATCGCGATATGTAATGTGAATTGCAGATCTACAGTGAATCATCGAATCTTTGAAC
GCACCTTGCGCTCCTCGGTGTTCCGAGGAGCATGCCTGTTTGAGCGTCAGTAAATTCTCAACCCCTCTCGATTTGCTTCG
AGAGGGCGCTTGGATGGTGGGGGCTGCCGGAGACCTGGATTTATCCCTGGACTCGGGCTCTCCTGAAATGCATCGGCTTG
CGGTCGACTTTCGACTTTGCGCGACAAGGCCTTCGGCGTGATAATGATCGCCGTTCGCCGAAGCGCAGGAATGAACGGTC
CCGCGCCTCTAATCCGTCGACGCTTTCGAGCGTCTTCCTCATTGACGTTTGACCTCAAATTraining and predicting taxonomiesTo train the model and classify, simply run:hitac-fit\--referencereference.fasta\--classifierclassifier.pkl

hitac-classify\--classifierclassifier.pkl\--readsreads.fasta\--classificationclassification.tsvAdditionally, a filter can be trained to remove ranks where the predictions might be inaccurate and to compute the confidence score:hitacfit-filter\--referencereference.fasta\--filterfilter.pkl

hitacfilter\--filterfilter.pkl\--readsreads.fasta\--classificationclassification.tsv\--filtered-classificationfiltered_classification.tsvOutput FileHiTaC generates a TSV file for the predictions. The first column in the TSV file contains the identifier of the test sequence and the second column holds the predictions made by HiTaC. For example:EU254776d:Fungi,p:Ascomycota,c:Sordariomycetes,o:Diaporthales,f:Valsaceae,g:Cryptosporella,s:Cryptosporella_femoralis
FJ711636d:Fungi,p:Basidiomycota,c:Agaricomycetes,o:Agaricales,f:Marasmiaceae,g:Armillaria,s:Armillaria_tabescens
UDB016040d:Fungi,p:Basidiomycota,c:Agaricomycetes,o:Russulales,f:Russulaceae,g:Russula,s:Russula_adusta
GU827310d:Fungi,p:Ascomycota,c:Lecanoromycetes,o:Lecanorales,f:Ramalinaceae,g:Ramalina,s:Ramalina_conduplicans
JN943699d:Fungi,p:Ascomycota,c:Lecanoromycetes,o:Lecanorales,f:Parmeliaceae,g:Punctelia,s:Punctelia_caseanaInstall as a QIIME2 pluginOption 1: CondaHiTaC can also be installed as a QIIME 2 plugin. To install QIIME 2 version 2023.2 in a GNU/Linux machine, run:wgethttps://data.qiime2.org/distro/core/qiime2-2023.2-py38-linux-conda.yml
condaenvcreate-nhitac--fileqiime2-2023.2-py38-linux-conda.yml# OPTIONAL CLEANUPrmqiime2-2023.2-py38-linux-conda.ymlNote:Instructions on how to install on Windows and macOS are available atQIIME 2 docs.Afterward, the new conda environment created in the last step can be activated and HiTaC can be installed:condaactivatehitac
condainstall-cconda-forge-cbiocondahitacFor conda installation instructions, we refer the reader toConda's user guide.Option 2: PipAlternatively, HiTaC can be installed with pip in an environment where QIIME 2 was previously installed:pipinstallhitacOption 3: DockerLastly, HiTaC and all its dependencies can be downloaded as a docker image:dockerpullmirand863/hitac_qiime:latestThe downloaded image can then be started with:dockerrun-itmirand863/hitac_qiime:latest/bin/bashQuick start for QIIME2 pluginFor an interactive tutorial, we refer the reader to ourGoogle Colabs notebook.To see the usage runqiime hitac --helporqiime hitac [command] --helpif you want further help with a specific command.Usage:qiimehitac[OPTIONS]COMMAND[ARGS]...Description:ThisQIIME2pluginwrapsHiTaCforhierarchicaltaxonomicclassification.Pluginwebsite:https://gitlab.com/dacs-hpi/hitacGettingusersupport:PleaseposttotheQIIME2forumforhelpwiththisplugin:https://forum.qiime2.org

Options:--versionShowtheversionandexit.--citationsShowcitationsandexit.--helpShowthismessageandexit.

Commands:classifyHierarchicalclassificationwithHiTaC's pre-fitted modelfilter      Hierarchical classification filtering with HiTaC'spre-fittedmodelfitTrainHiTaC's hierarchical classifierfit-filter  Train HiTaC'shierarchicalfilterInput FilesHiTaC accepts taxonomy in TSV format and training and test files in FASTA format. All these files must be previously imported by QIIME 2, for example:qiimetoolsimport\--input-pathquery.fasta\--output-pathquery.qza\--type'FeatureData[Sequence]'qiimetoolsimport\--input-pathreference.fasta\--output-pathreference.qza\--type'FeatureData[Sequence]'qiimetoolsimport\--type'FeatureData[Taxonomy]'\--input-formatHeaderlessTSVTaxonomyFormat\--input-pathtaxonomy.txt\--output-pathtaxonomy.qzaTraining and predicting taxonomiesTo train the model and classify, simply run:qiimehitacfit\--i-reference-readsreference.qza\--i-reference-taxonomytaxonomy.qza\--o-classifierclassifier.qza

qiimehitacclassify\--i-classifierclassifier.qza\--i-readsquery.qza\--o-classificationclassification.qzaAdditionally, a filter can be trained to remove ranks where the predictions might be inaccurate and to compute the confidence score:qiimehitacfit-filter\--i-reference-readsreference.qza\--i-reference-taxonomytaxonomy.qza\--o-filterfilter.qza

qiimehitacfilter\--i-filterfilter.qza\--i-readsquery.qza\--i-classificationclassification.qza\--o-filtered-classificationfiltered_classification.qzaOutput FileThe predictions can be exported from QIIME 2 to a TSV file:qiimetoolsexport\--input-pathclassification.qza\--output-pathoutput_diror alternativelly if the filter was used:qiimetoolsexport\--input-pathfilter_output.qza\--output-pathoutput_dirThe first column in the TSV file contains the identifier of the test sequence, while the second column holds the predictions made by HiTaC and the third column is the prediction probability if the filter was applied. For example:FeatureIDTaxonConfidence
EU254776d__Fungi;p__Ascomycota;c__Sordariomycetes;o__Diaporthales;f__Valsaceae;g__Cryptosporella-1
FJ711636d__Fungi;p__Basidiomycota;c__Agaricomycetes;o__Agaricales;f__Marasmiaceae;g__Armillaria-1
UDB016040d__Fungi;p__Basidiomycota;c__Agaricomycetes;o__Russulales;f__Russulaceae;g__Russula-1
GU827310d__Fungi;p__Ascomycota;c__Lecanoromycetes;o__Lecanorales;f__Ramalinaceae;g__Ramalina-1
JN943699d__Fungi;p__Ascomycota;c__Lecanoromycetes;o__Lecanorales;f__Parmeliaceae;g__Punctelia-1SupportIf you run into any problems or issues, please create aGitLab issueand we will try our best to help.We strive to provide good support through our issue tracker on GitLab. However, if you'd like to receive private support with:Phone / video calls to discuss your specific use case and get recommendationsPrivate discussions over Slack or MattermostPlease reach out tofabio.malchermiranda@hpi.de.ContributingWe are a small team on a mission to improve ITS taxonomic classification, and we will take all the help we can get! If you would like to get involved, here is information oncontribution guidelines and how to test the code locally.You can contribute in multiple ways, e.g., reporting bugs, writing or translating documentation, reviewing or refactoring code, requesting or implementing new features, etc.Getting the latest updatesIf you'd like to get updates when we release new versions, please click on the notification button on the top and select "Watch". GitLab will then send you notifications along with a changelog with each new release.CitationIf you use HiTaC, please cite:Miranda, Fábio M., et al. "HiTaC: Hierarchical Taxonomic Classification of Fungal ITS Sequences." bioRxiv (2020).@article{miranda2020hitac,
  title={HiTaC: Hierarchical Taxonomic Classification of Fungal ITS Sequences},
  author={Miranda, F{\'a}bio M and Azevedo, Vasco AC and Renard, Bernhard Y and Piro, Vitor C and Ramos, Rommel TJ},
  journal={bioRxiv},
  year={2020},
  publisher={Cold Spring Harbor Laboratory}}