--- title: Metagenomics/AMR description: Information and Notes on my studies and research of deeplearning techniques in the context of antimicrobial resistances in metagenomics. --- # AMR Studies ## Efforts to reproduce AMR++ v1 - still some differences when running my pipeline steering script. - nele and judith are keeping intermediate files from some galaxy runs - need to use that to figure out where the difference comes from. - annotations are different, but only are missing the "new" column with RequiresSNP Info. ## AMR++ Additional Implementations - DeepArg - should take removed host reads as input - metaxa2 workflow (after kraken run) - kraken2 - figure out how to make kraken faster: - maybe rather than: - `kraken2 --memory-map S1 ; kraken2 --memory-map S2` - do - `kraken2 S1 S2` - such that kraken loads the entire db into memory once and run all samples in one prozess/call. ## Meeting w/ Judith, Nele, Steffen - ToDo - [ ] retrain DeepARG with MegaRes v3.0 database - [ ] AMR++ v1 vs v3 validation - sequence data located: - on synology `/data_syn/sequenzdaten/` - on server `/home/admin/Seqs/` - start/continue common struture - ## IOW / Christiane Hassenrück / OTC Genomic - Christiane erfragt, ob ich potentiell an deren Daten kommen könnte und unser tool daran testen koennte. - links: - https://www.oceantechnologycampus.com/ - https://www.io-warnemuende.de/otcg-home-de.html - https://github.com/tseemann/abricate (Christiane hat bisher nur abricate genutzt) - kein Fan von analyse mit short reads als einzigen input. lieber nach assembly, i.e. contigs as input. - kooperiert das FLI mit dem DSMZ in Braunschweig? - können wir (Fabian ich und das FLI an etablierte Strukturen anknüpfen?) ## Reference Dump - PhD thesis https://vtechworks.lib.vt.edu/items/4bd67860-7df9-41c5-893f-0b0e284a5eb1 - blasting: - https://doi.org/10.1186/1471-2105-10-421 - https://doi.org/10.1016/S0022-2836(05)80360-2 - Follow up articles from DeepArg secondary authors: - DeepMRG: https://doi.org/10.1101/2023.11.14.566903 - ARGEM: https://doi.org/10.3389/fgene.2023.1219297 - HT-ARGfinder: https://doi.org/10.3389/fenvs.2022.901917 - PhD thesis https://vtechworks.lib.vt.edu/handle/10919/106511 - BRENDA enzym db https://www.brenda-enzymes.org/enzyme.php?ecno=3.5.2.6 - article https://towardsdatascience.com/building-machine-learning-models-for-predicting-antibiotic-resistance-7640046a91b6 ## Pipelines/Workflows ### funcscan (Pipeline) - https://github.com/nf-core/funcscan - includes AMRFinderPlus ABRicate, DeepARG, RGI, fARGene ### ResistoXplorer (Pipeline) - https://www.resistoxplorer.no/ResistoXplorer/faces/docs/FaqView.xhtml#input2 - uses both AMR++ v2 and DeepARG ? ### AMRFinderPlus (Workflow) - https://github.com/ncbi/amr - ### AMR++ (Workflow) - https://www.meglab.org/amrplusplus/ - version 3 https://github.com/Microbial-Ecology-Group/AMRplusplus/tree/master - version 1 (credentials user:admin@galaxy.org pw:admin) - Galaxy shed [link](https://toolshed.g2.bx.psu.edu/repository?repository_id=f249d27395ea9e5b&changeset_revision=c9fbf44a96f7) - github repo [link](https://github.com/cdeanj/galaxytools/tree/master/workflows/amrplusplus) <details> <summary>AMR++ version comparison</summary> taking test input from v3: reads: data/raw/*_R{1,2}.fastq.gz host: data/host/chr21.fasta.gz host_index: data/host/chr21.fasta.gz amr_index: data/amr/megares_database_v3.00.fasta amr: data/amr/megares_database_v3.00.fasta annotation: data/amr/megares_annotation_v3.00.csv v3 default: trimmomatic: v3 (v1) leading = 3 (3 - not applied) trailing = 3 (3 - not applied) slidingwindow = 4:15 (4:20) minlen = 36 (20 - not applied) resistome threshold = 80 (1) rarefaction min = 5 max = 100 threshold = 80 skip = 5 samples = 1 - datasets in S3 Galaxy queue - 1126 -> ch21.fasta - 1124 -> S3_test_R1.fastq - 1125 -> S3_test_R2.fastq - 1127 -> megares_annotation_v3.00.csv - 1128 -> megares_database_v3.00.fasta - 1244 -> R1.paired.fastq - 1245 -> R2.paired.fastq - step10 Map with BWA - 1248 -> alignment_sorted.bam - step 11 Filter by flag - in v1 `samtools view ... -f 0x0004 -f 0x0008 -f 0x0001 ...` - in v3 `samtools view ... -f 12 ...` equivalent to `samtools view ... -f 0x4 -f 0x8 ...` - 1249 -> alignment_sorted_filtered. - step 12 Sort again - 1250 -> alignment_sorted_filtered_sorted.bam - step 13 #### Conclusion Two major differences between v1 and v3: 1. v1 only uses the sliding window (`4:20`) while v3 uses more options and tighter window (`4:15`). 1. v1 uses different alignment method `bwa aln` instead of `bwa mem` Recreation of v1 in v3 nextflow framework: [stalbrec/AMRplusplus](https://github.com/Microbial-Ecology-Group/AMRplusplus/compare/master...stalbrec:AMRplusplus:amrpp_v1_recreation) </details> ### DeepARG <details> <summary>Workflow steps</summary> 1. Trimmomatic - trim & QC on paired end input - input: forward and reverse read e.g. `F.fq.gz` and `R.fq.gz` - output: - `F.fq.gz.paired` surviving pairs - `R.fq.gz.unpaired` surviving Rs - `F.fq.gz.unpaired` surviving Fs - rest discarded - e.g. 25k read pairs - 24246 out paired passing in both R and F - 519 out passing in F only - 216 out passing in R only - (29 failing both in R and F) 2. merge `F.paired` and `R.paired` - vsearch - input `R.paired` and `F.paired` - out `F.unmerged`, `R.unmerged` and `merged` $\rightarrow$ summed to `reads.clean` 3. DeepARG Inference - Diamond $\rightarrow$ database with 12279 features (gene sequences) - features are aligned to short reads - outputs `.tsv` file $\rightarrow$ hits with metrics ``` X = [ feature bit-scores -> . . . reads | v . . . ] ``` - DeepARG predict - score $\geq 0.9 \rightarrow$ single hit - score $<0.9 \rightarrow$ first two leading hits - read-id; predicted class; prediction score (probabilty) - output files - mapping $\rightarrow$ Diamond best hit info + prediction :::danger best hit might be the wrong one, since the sorting is done with bit-score as primary sort key, but in diamond they are sorted in descending alphabetical order - i think! $\rightarrow$ check this!! ::: 4. Quantification of results - pair best-hit aus alignment das mit predicted class passt 5. Normalization 1. `bowtie2` gg13 alignment to reads 2. Take $N_\mathrm{16s}$ from reads and normalize ARG counts using $N_\mathrm{16s}/L_\mathrm{16s}$, where $L_\mathrm{16s} = 1432$ (**why?**) 3. ARG counts are normalized: $N_\mathrm{sub-type} = (N_\mathrm{sub-type, raw}/L_\mathrm{sub-type~gene})/(N_\mathrm{16s}/L_\mathrm{16s})$ </details> ### hAMRonization - https://github.com/pha4ge/hAMRonization - harmonizes output format of various AMR detection tools - ABRicate https://github.com/tseemann/abricate - ARIBA https://github.com/sanger-pathogens/ariba - c-SSTAR https://github.com/chrisgulvik/c-SSTAR - fargene https://github.com/fannyhb/fargene - GROOT https://github.com/will-rowe/groot - kmerresistance https://bitbucket.org/genomicepidemiology/kmerresistance/src/master/ - mykrobe https://github.com/Mykrobe-tools/mykrobe - PointFinder (now in ResFinder) (https://doi.org/10.1093/jac/dkx217, https://bitbucket.org/genomicepidemiology/pointfinder, https://bitbucket.org/genomicepidemiology/resfinder) - ResFams https://github.com/dantaslab/resfams - ResFinder https://bitbucket.org/genomicepidemiology/resfinder http://genepi.food.dtu.dk/resfinder - The Resistance Gene Identifier https://github.com/arpcard/rgi - sraX https://github.com/lgpdevtools/sraX - SRST2 https://github.com/katholt/srst2 - staramr https://github.com/phac-nml/staramr - TBProfiler https://tbdr.lshtm.ac.uk/ https://github.com/jodyphelan/TBProfiler ### Other Tools/collections - https://github.com/topics/antimicrobial-resistance-genes - https://github.com/topics/antimicrobial-resistance - https://nf-co.re/deepvariant/1.0