From 86757a1e3a1c510896968da050a0dd6765170070 Mon Sep 17 00:00:00 2001 From: shaziaruybal Date: Tue, 6 Aug 2024 14:34:24 +0100 Subject: [PATCH 1/8] remove unnecessary column in landscaping matrix --- .../tables/MMS_software_landscaping.csv | 82 +++++++++---------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/website_docs/tables/MMS_software_landscaping.csv b/website_docs/tables/MMS_software_landscaping.csv index ab11372..612c238 100644 --- a/website_docs/tables/MMS_software_landscaping.csv +++ b/website_docs/tables/MMS_software_landscaping.csv @@ -1,41 +1,41 @@ -Tool,Authors,Stage,Theme,Major_use_case,Tutorial on PGEforge,Reason_no_tutorial,Software_download_link,Repos_link,Webpage_link,Implementation,Installation,Functionalities,Functionality_notes,Preprint_DOI,Preprint_year,Publication_DOI,Publication_year,Documentation_location,Documentation_link,Tutorials_location,Tutorials_link,Run settings/parameters output,Runs on windows,Runs on Mac Intel,Runs on Mac ARM,Runs on Linux,Installation via build from source,"Installation via pre-built from repo (e.g. PIP, Conda, CRAN)",Installation via container,Installation via direct download,GitHub branch rules exist,Master branch protected,Auto tests required for branch merging,Run via GUI,Run via command line,"Implementation language (e.g. C++, R, Python)",Command line language,Last_updated -MLMOI,"Meraj Hashemi, Kristan Schneider",Release,analysis,MOI estimation,no,This tool was relegated due to difficulty with installation as the package has been removed from CRAN. Manual installation instructions were difficult to follow. ,https://cran.r-project.org/src/contrib/Archive/MLMOI/,https://github.com/Maths-against-Malaria/MOI-Bias-correction,NA,R package,Manual package install from .tar ball (removed from CRAN archive),"MOI estimation, Allele frequency estimation",NA,NA,NA,https://doi.org/10.1371/journal.pone.0261889,2021,within package,NA,within package,NA,,,,,,,,,,,,,,,,,11-Sep-23 -MalHaploFreq,Ian Hastings,Release,analysis,Frequency/prevalence estimation of phased genotypes,no,"This tool has largely been superseeded by MultiLociBiallelicModel, which also estimates prevalence but does not require MOI, can do more loci and estimates the MOI from the input data",http://pcwww.liv.ac.uk/hastings/MalHaploFreq/,NA,NA,.exe file ,Manual download of .exe file,Haplotype frequency estimation,"MOI estimation and prevalence estimates are secondary (essentially untested), program does not work on Mac or Linux",NA,NA,https://doi.org/10.1186/1475-2875-7-130,2008,software website,http://pcwww.liv.ac.uk/hastings/MalHaploFreq/,NA,NA,,,,,,,,,,,,,,,,,06-Dec-23 -malaria.em,Xiaohong Li,Release,analysis,Frequency/prevalence estimation of phased genotypes,no,"The code for this program was removed from CRAN in 2014, does not appear to be activiely maintained and is no longer available for download other than from archives. A program that does something similar is MultiLociBiallelicModel. ",https://cran.r-project.org/src/contrib/Archive/malaria.em/,NA,NA,R package,Manual package install from .tar ball (CRAN archive),"MOI estimation, haplotype frequency estimation",NA,NA,NA,https://doi.org/10.2202/1544-6115.1321,2007,within package,NA,NA,NA,,,,,,,,,,,,,,,,,06-Dec-23 -FreqEstimationModel,Aimee Taylor,Beta,analysis,Frequency/prevalence estimation of phased genotypes,planned,,https://github.com/aimeertaylor/FreqEstimationModel/tree/master,https://github.com/aimeertaylor/FreqEstimationModel,NA,R package,Manual download of files or github clone and run files locally,"MOI, population-level allele and haplotype frequency estimation",Statistical model based on prevalence data. Allows for missing data,NA,NA,https://doi.org/10.1186/1475-2875-13-102,2014,within package,NA,within package,NA,,,,,,no,yes,no,no,,,,no,yes,R,R,06-Dec-23 -MultiLociBiallelicModel,Christian Tsoungui Obama,Beta,analysis,Frequency/prevalence estimation of phased genotypes,yes,,https://github.com/Maths-against-Malaria/MultiLociBiallelicModel,https://github.com/Maths-against-Malaria/MultiLociBiallelicModel,NA,Standalone R scripts,Git clone and run scripts,MOI and haplotype frequency estimation,NA,NA,NA,https://doi.org/10.3389/fepid.2022.943625,2022,github repo,https://github.com/Maths-against-Malaria/MultiLociBiallelicModel,github repo,https://github.com/Maths-against-Malaria/MultiLociBiallelicModel/blob/main/src/SNP_MLE.R,yes,yes,yes,yes,yes,no,no,no,yes,no,no,no,no,yes,R,R,06-Dec-23 -pfmix,John O'Brien,Release,analysis,MOI estimation,no,"Due to limited documentation on installation, we were unable to install and run the tool. The tool has not been updated in seven years ",https://github.com/cascobayesian/pfmix/tree/master,https://github.com/cascobayesian/pfmix,NA,R package,Manual package install from .tar ball,"MOI estimation, strain mixture proportion inference",also inference of proportion 'unexplained' mixture proportions within infections,NA,NA,https://doi.org/10.1371/journal.pcbi.1004824,2016,github repo,https://github.com/cascobayesian/pfmix/tree/master,github repo README,https://github.com/cascobayesian/pfmix/tree/master,,,,,,,,,,,,,,,,,06-Dec-23 -THEREALMcCOIL,Hsiao-Han Chang,Release,analysis,MOI estimation,yes,,https://github.com/EPPIcenter/THEREALMcCOIL,https://github.com/EPPIcenter/THEREALMcCOIL,,Standalone R scripts,Git clone and compile from source files,COI and population allele frequency estimation,Can be used in categorical (SNP either het or hom) or proportional mode (relative signal intensity for each allele used),NA,NA,https://doi.org/10.1371/journal.pcbi.1005348,2017,github repo. Link to gh-page in README that doesn't work (https://eppicenter.github.io/THEREALMcCOIL/),https://github.com/EPPIcenter/THEREALMcCOIL,NA,NA,yes,yes,yes,yes,yes,yes,no,no,no,no,no,no,no,no,R,C++,20-Nov-23 -McCOILR,"Hsiao-Han Chang, OJ Watson",Release,analysis,MOI estimation,no,"This tool is an R wrapper for THEREALMcCOIL, it produces inflated COI estimates as compared to original C++ file from EPPICenter. Presumed seed bug",https://github.com/OJWatson/McCOILR,https://github.com/OJWatson/McCOILR,,R package,devtools install,COI and population allele frequency estimation,Wrapper on THEREALMcCOIL,NA,NA,NA,NA,package and website ,https://ojwatson.github.io/McCOILR/articles/introduction.html,package and website,https://ojwatson.github.io/McCOILR/articles/introduction.html,,,,,,,,,,,,,,,,,20-Nov-23 -coiaf,"Aris Paschalidis, OJ Watson",Release,analysis,MOI estimation,yes,,https://github.com/bailey-lab/coiaf,https://github.com/bailey-lab/coiaf,https://bailey-lab.github.io/coiaf/index.html,R package,devtools install,COI estimation,can get discrete or continuous COI values,NA,NA,https://doi.org/10.1371/journal.pcbi.1010247,2023,package and website ,https://bailey-lab.github.io/coiaf/index.html,package and website,https://bailey-lab.github.io/coiaf/articles/example_real_data.html,no,yes,yes,yes,yes,yes,no,no,no,?,?,?,no,yes,R,R,20-Nov-23 -DEploid,Joe Zhu,Release,analysis,Phasing,no,"This tool has been superseded by DeploidIBD, which is the same program just run without the IBD flag",https://github.com/DEploid-dev/DEploid,https://github.com/DEploid-dev/DEploid,https://deploid.readthedocs.io/en/latest/#,C++,Make,"COI, proportion and haplotype estimation",NA,NA,NA,https://doi.org/10.1093/bioinformatics/btx530,2018,github repo and website,https://deploid.readthedocs.io/en/latest/,github repo and website,https://deploid.readthedocs.io/en/latest/,,,,,,,,,,,,,,,,,21-Apr-20 -Deploid-r,"Joe Zhu, Jacob Almagro-Garcia, Gil McVean",Release,analysis,Phasing,no,This tool is considered relegated as it links to an old version of Deploid,https://github.com/DEploid-dev/DEploid-r,https://github.com/DEploid-dev/DEploid-r,https://deploid.readthedocs.io/en/latest/index.html,R package,devtools install,"COI, proportion and haplotype estimation",Rcpp wrapper for DEploid,NA,NA,NA,NA,github repo,https://github.com/DEploid-dev/DEploid-r,NA,NA,,,,,,,,,,,,,,,,,21-Apr-20 -DEploidIBD,Joe Zhu,Release,analysis,Phasing,yes,,https://github.com/DEploid-dev/DEploid,https://github.com/DEploid-dev/DEploid,https://deploid.readthedocs.io/en/latest/index.html,C++,Make,"COI, proportion, within-sample IBD and haplotype estimation","DEploid with ""-ibd"" flag",NA,NA,https://doi.org/10.7554/eLife.40845,2019,github repo and website,https://deploid.readthedocs.io/en/latest/,github repo and website,https://deploid.readthedocs.io/en/latest/,no,yes,yes,yes,yes,,,yes,,,,,no,yes,C++,bash,20-Mar-22 -isoRelate,Lyndal Henden,Release,analysis,Relatedness estimation,planned,,https://github.com/bahlolab/isoRelate,https://github.com/bahlolab/isoRelate,NA,R package,devtools install,Infering pairwise IBD in haploid species,NA,NA,NA,https://doi.org/10.1371/journal.pgen.1007279,2018,within package,https://github.com/bahlolab/isoRelate/blob/master/README.md ,within package,NA,no,no,no,no,yes? wasm ,no,yes,no,no,,,,no,yes,C++ and R,R,22-Nov-23 -hmmIBD,Steve Schaffner,Release,analysis,Relatedness estimation,yes,,https://github.com/glipsnort/hmmIBD,https://github.com/glipsnort/hmmIBD,NA,C + Python scripts,Compile with any C compiler,Identifies IBD segments between pairs of genomes,Includes scripts to extract and thin data,NA,NA,https://doi.org/10.1186/s12936-018-2349-7,2018,within package,NA,NA,NA,y (to stdout),?,yes,yes,yes,yes,no,no,no,no,no,no,no,yes,C + Python,C + Python,21-Nov-23 -paneljudge,"Aimee Taylor, Pierre Jacob",Beta,study design,Panel design,yes,,https://github.com/aimeertaylor/paneljudge,https://github.com/aimeertaylor/paneljudge,NA,R package,devtools install,performance of a panel of genetic markers designed to test relatedness,can also estimate relatedness between monoclonals,NA,NA,https://onlinelibrary.wiley.com/doi/10.1111/1755-0998.13622,2022,within package,https://github.com/aimeertaylor/paneljudge,vignette within package,NA,yes,yes,yes,yes,yes,no,yes,no,no,,,,no,yes,"R, C++",R,11-Dec-23 -dcifer,Inna Gerlovina,Release,analysis,Relatedness estimation,yes,,https://CRAN.R-project.org/package=dcifer,https://github.com/EPPIcenter/dcifer,https://eppicenter.github.io/dcifer/,R package,CRAN install,estimation of relatedness (IBD) between polyclonal infections,in addition to estimating relatedness also allows user to perform statistical inference also produces estimates of COI and population allele frequencies. ,NA,NA,https://doi.org/10.1093/genetics/iyac126,2022,package and website,https://eppicenter.github.io/dcifer/,vignette (CRAN),https://cloud.r-project.org/web/packages/dcifer/vignettes/vignetteDcifer.pdf,,,,,,,,,,,,,,,,,19-Nov-23 -moire,"Maxwell Murphy, Bryan Greenhouse",Release,analysis,MOI estimation + allele frequency + within host relatedness,yes,,https://github.com/EPPIcenter/moire,https://github.com/EPPIcenter/moire,https://eppicenter.github.io/moire/,R package,devtools install,"Estimation of COI, estimation of pop-level allele frequencies",uses MCMC based approaches,https://doi.org/10.1101/2023.10.03.560769,2023,NA,NA,package and website,https://eppicenter.github.io/moire/index.html,vignette,https://eppicenter.github.io/moire/articles/mcmc_demo.html,no,yes,yes,yes,yes,no,yes,no,no,no,no,no,no,yes,C++,R,09-Nov-23 -MALECOT,Bob Verity,Beta,analysis,Population structure,planned,,https://github.com/bobverity/MALECOT,https://github.com/bobverity/MALECOT,https://bobverity.github.io/MALECOT/,R package,devtools install,"Inference of population strucure, estimation of COI, estimation of allele frequencies",NA,NA,NA,NA,NA,package and website,https://bobverity.github.io/MALECOT/index.html,package and website,https://bobverity.github.io/MALECOT/index.html,,yes,yes,yes,yes,no,yes,no,no,,,,no,yes,C++ and R,R,09-Nov-23 -SIMPLEGEN,"Bob Verity, Shazia Ruybal, Isobel Routledge, Sophie Berube, Daniel Larremore",Development,simulation,Transmission simulation,no,This tool is still under development,https://github.com/mrc-ide/SIMPLEGEN/tree/master,https://github.com/mrc-ide/SIMPLEGEN/tree/master,https://mrc-ide.github.io/SIMPLEGEN/,R package,devtools install,transmission simulation of malaria epidemiology and genotypes,NA,NA,NA,NA,NA,package and website,https://mrc-ide.github.io/SIMPLEGEN/index.html,package and website,https://mrc-ide.github.io/SIMPLEGEN/index.html,,,,,,,,,,,,,,,,,09-Nov-23 -magenta,OJ Watson,Beta,simulation,Transmission simulation,no,This tool is a simulator and thus not within the scope of PGEforge genomic data analysis tools,https://github.com/OJWatson/magenta,https://github.com/OJWatson/magenta,https://ojwatson.github.io/magenta/index.html,R package,devtools install,transmission simulation of malaria epidemiology and genotypes,Implements interventions and a basic spatial model,NA,NA,https://doi.org/10.1093/molbev/msaa225,2020,website,https://ojwatson.github.io/magenta/articles/Introduction.html,website,https://ojwatson.github.io/magenta/articles/Introduction.html,,,,,,,,,,,,,,,,,10-Dec-23 -DRpower,"Bob Verity, Shazia Ruybal",Release,study design,pfhrp2/3 study design,yes,,https://github.com/mrc-ide/DRpower,https://github.com/mrc-ide/DRpower,https://mrc-ide.github.io/DRpower/,R package,devtools install,power and sample size calculation for pfhrp2/3 studies,additional interactive web app,NA,NA,NA,NA,package and website,https://mrc-ide.github.io/DRpower/,package and website,https://mrc-ide.github.io/DRpower/,,yes,yes,yes,,no,yes,no,no,,,,no,yes,C++ and R ,R,09-Nov-23 -pixelate,"Aimee Taylor, James Watson, Caroline Buckee",Release,visualization,Mapping,planned,,https://github.com/aimeertaylor/pixelate,https://github.com/aimeertaylor/pixelate,NA,R package,CRAN install,pixelates geographic maps according to levels of uncertainty,An R package,https://doi.org/10.48550/arXiv.2005.11993,2020,NA,NA,github repo,https://github.com/aimeertaylor/pixelate,vignettes folder of github repo,https://rdrr.io/github/artaylor85/pixelate/,,yes,yes,yes,yes,no,yes,no,no,,,,no,yes,R,R,07-Jul-22 -estMOI,Samuel Assefa,Release,analysis,MOI estimation,yes,,https://sourceforge.net/projects/estmoi/,https://github.com/sammy-assefa/estMOI/tree/master,NA,perl script,download perl script,estimates multiplicity of infection,seems that it maybe used to be a website and is now a perl script,NA,NA,https://doi.org/10.1093/bioinformatics/btu005,2014,pdf in github,https://github.com/sammy-assefa/estMOI/blob/master/README.pdf,NA,NA,yes,?,yes,yes,yes,yes,no,no,yes,?,?,?,no,yes,Perl,Perl,13-Nov-15 -forward-dream,"Jason Hendry, Gil McVean",Release,simulation,GenEpi Simulation,no,This tool is a simulator and thus not within the scope of genomic data analysis tools,https://github.com/JasonAHendry/fwd-dream,https://github.com/JasonAHendry/fwd-dream,NA,Python,conda,Simulates malaria transmission and evolution,NA,https://doi.org/10.1101/2020.08.27.269928,2020,https://doi.org/10.1371/journal.pcbi.1009287,2021,github,https://github.com/JasonAHendry/fwd-dream,NA,NA,,,,,,,,,,,,,,,,,21-Feb-21 -moimix,Stuart Lee,Release,analysis,MOI estimation,no,"This tool was considered superseded by other MOI estimation tools as it does not estimate MOI, rather it only differentiates poly/monoclonal infections",https://github.com/bahlolab/moimix,https://github.com/bahlolab/moimix,NA,R package,BiocManager,"Estimate MOI, heterzyosity, call major calls",NA,NA,NA,NA,NA,github,https://github.com/bahlolab/moimix/blob/master/README.md,vignette within package,https://github.com/bahlolab/moimix/blob/master/vignettes/introduction.Rmd,,,,,,,,,,,,,,,,,22-Nov-23 -hrp2malaRia,OJ Watson,Release,simulation,,no,This tool is a simulator and thus not within the scope of genomic data analysis tools,,https://github.com/OJWatson/hrp2malaRia,,,,,,,,https://doi.org/10.7554/eLife.25008,2017,,,,,,,,,,,,,,,,,,,,,21-Nov-23 -hmmibdr,"OJ Watson, Steve Schaffner",Release,analysis,,no,"This tool is an R wrapper for hmmIBD, to install locally need C compiler and to run python scripts to produce input files from raw VCFs. ",,https://github.com/OJWatson/hmmibdr,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,21-Nov-23 -MIPanalyzer,"Bob Verity, OJ Watson, Nick Brazeau",Release,analysis,Basic popgen analysis of MIP data,planned,,https://github.com/mrc-ide/MIPanalyzer,https://github.com/mrc-ide/MIPanalyzer,https://mrc-ide.github.io/MIPanalyzer/index.html,R package,devtools install,"Filtering of MIP data, PCA, pairwise genetic distances",NA,NA,NA,NA,NA,website,https://mrc-ide.github.io/MIPanalyzer/index.html,website,https://mrc-ide.github.io/MIPanalyzer/index.html,,yes,yes,yes,yes,no,yes,no,no,,,,no,yes,C++ and R,R,12-Dec-23 -PlasmoSim,Bob Verity,Beta,simulation,Simulation of SNP data in demes,no,This tool is a simulator and thus not within the scope of genomic data analysis tools,https://github.com/mrc-ide/PlasmoSim,https://github.com/mrc-ide/PlasmoSim,https://mrc-ide.github.io/PlasmoSim/,R package,devtools install,"Simulation of genetic data (SNPs, haplotypes) or ancestry (IBD). Options for human movement between demes.",NA,NA,NA,NA,NA,website,https://mrc-ide.github.io/PlasmoSim/,website,https://mrc-ide.github.io/PlasmoSim/,,,,,,,,,,,,,,,,,11-Dec-23 -polySimIBD,"Nicholas Brazeau, Bob Verity",Beta,analysis,Population genetic simulation,no,This tool is a simulator and thus not within the scope of PGEforge genomic data analysis tools,https://github.com/nickbrazeau/polySimIBD,https://github.com/nickbrazeau/polySimIBD,NA,R package,"remotes, github install",forwards in-time simulation of pop gen,under development,NA,NA,NA,NA,github,https://github.com/nickbrazeau/polySimIBD,vignette,https://github.com/nickbrazeau/polySimIBD/tree/master/vignettes,,,,,,,,,,,,,,,,,22-Nov-23 -discent,"Nicholas Brazeau, Bob Verity",Development,analysis,"Estimate deme-level relatedness, accounting for migration",no,This tool is still under development,https://github.com/nickbrazeau/discent,https://github.com/nickbrazeau/discent,NA,R package,vignettes inside repos,Estimates deme inbreeding spatial coefficient (DISC),NA,NA,NA,NA,NA,github,https://github.com/nickbrazeau/discent,NA,NA,,,,,,,,,,,,,,,,,10-Dec-23 -SNP-slice,"Nianqiao Ju, Jiawei Liu, Qixin He",Development,analysis,MOI estimation,no,This tool is still under development,NA,NA,NA,NA,NA,"Reconstruction of SNP haplotypes, estimation of COI",Reconstruction of SNP haplotypes allows for inference of haplotype/strain frequencies,https://doi.org/10.1101/2023.07.29.551098,2023,NA,NA,NA,NA,NA,NA,,,,,,,,,,,,,,,,,09-Nov-23 -BRO,Dan Larremore,Release,analysis,Relatedness estimation (genetic similarity),no,This tool was not a packaged open-source tool so we were unable to install,https://github.com/dblarremore/BayesianRepertoireOverlap,https://github.com/dblarremore/BayesianRepertoireOverlap,https://bro.colorado.edu,Python scripts (also packaged as an online tool),Fork repo and run scripts locally,Relatedness estimation with uncertainty,Developed for var repertoires,NA,NA,https://doi.org/10.1371/journal.pcbi.1006898,2019,github repo,https://github.com/dblarremore/BayesianRepertoireOverlap,NA,NA,,,,,,,,,,,,,,,,,09-Nov-23 -Pv3Rs,"Aimee Taylor, Yong See Foo",Development,analysis,Relatedness estimation,no,This tool is still under development,https://github.com/aimeertaylor/Pv3Rs,https://github.com/aimeertaylor/Pv3Rs,NA,R package,devtools installation from github repo,Relatedness estimation with uncertainty ,compute_posterior() function could also be used for Pf by setting prior probability of relapse=0,https://doi.org/10.1101/2022.11.23.22282669,2022,NA,NA,within package,NA,Vignettes within package,NA,,,,,,,,,,,,,,,,,09-Nov-23 -Anti-malarial MCMC Bayesian Algorithm,Mateusz Plucinski,Development,analysis,TES outcome classification,no,This tool is still under development,https://github.com/GTJuniorDesign0100-2020/anti-malarial-MCMC-bayesian-algorithm,https://github.com/GTJuniorDesign0100-2020/anti-malarial-MCMC-bayesian-algorithm,NA,Python script,GitHub clone and run scripts,Estimate TES outcomes from genotyping data,This version is NOT designed for NGS data but length polymorphism data using capillary electrophoresis. There is a version with minor modifications adapted from this; Monica Golumbeanu @SwissTPH hopefully getting a clean version on a GitHub repo soon,NA,NA,https://doi.org/10.1128%2FAAC.00072-15,2015,github repo,https://github.com/GTJuniorDesign0100-2020/anti-malarial-MCMC-bayesian-algorithm/blob/master/README.md,Help in package and github readme,NA,,,,,,,,,,,,,,,,,03-Dec-23 -AmpSeq,"Jorge Amaya, Ruchit Panchal, Phillip Schwabl, Pablo Manrique",Release,analysis,Amplicon Analysis ,no,This tool focuses on upstream bioinformatic data processing and is thus not within the scope of PGEforge genomic data analysis tools,https://github.com/broadinstitute/malaria-amplicon-pipeline/tree/main,https://github.com/broadinstitute/malaria-amplicon-pipeline/tree/main,https://github.com/broadinstitute/malaria-amplicon-pipeline/tree/main,Python scripts,GitHub Clone and run scripts,Denoising and amplicon assembly,NA,NA,NA,https://doi.org/10.1111/1755-0998.13622,2022,github repo,https://github.com/broadinstitute/malaria-amplicon-pipeline/tree/main,NA,NA,,,,,,,,,,,,,,,,,07-Sep-23 -AmpSim,Nicholas Hathaway,Development,simulation,Amplicon Simulation,no,This tool is still under development,https://github.com/nickjhathaway/elucidator,https://github.com/nickjhathaway/elucidator,,C++,"GitHub Clone, docker, vagrant",Simulating PCR and sequencing noise ,,,,,,,,,,,,,,,,,,,,,,,,,,21-Nov-23 -rehh,"Alexander Klassmann, Mathieu Gautier, Renaud Vitalis",Release,analysis,Selection (extended haplotype heterozygosity),no,"This tool focuses on population genetics, not specifically focused on Plasmodium and thus is not within the scope of PGEforge Plasmodium genomic data analysis tools",https://cran.r-project.org/web/packages/rehh/index.html,https://gitlab.com/oneoverx/rehh,NA,R package ,devtools installation ,Estmimating and plotting EHH/iHS,NA,NA,NA,"https://doi.org/10.1093/bioinformatics/bts115, https://doi.org/10.1111/1755-0998.12634","2012, 2017",gitlab repo,https://gitlab.com/oneoverx/rehh,Vignette,https://cran.r-project.org/web/packages/rehh/vignettes/rehh.html,,,,,,no,yes,no,no,,,,no,yes,C and R ,R ,15-Sep-21 -Hierfstat,"Jerome Goudet, Thibaut Jombart, Zhian N. Kamvar, Eric Archer, Olivier Hardy",Release,analysis,Estimation and Tests of Hierarchical F-Statistics,no,"This tool focuses on population genetics, not specifically focused on Plasmodium and thus is not within the scope of PGEforge Plasmodium genomic data analysis tools",https://github.com/jgx65/hierfstat,https://cran.r-project.org/web/packages/hierfstat/index.html,https://rdrr.io/cran/hierfstat/man/hierfstat.html,R package ,devtools installation ,Different types of F-statistics (per locus and pairwise),NA,NA,NA,https://doi.org/10.1111/j.1471-8286.2004.00828.x,2004,github repo,https://github.com/jgx65/hierfstat,Vignette,https://cran.r-project.org/web/packages/hierfstat/vignettes/hierfstat.html,no,yes,yes,yes,yes,yes,yes,no,no,?,?,?,no,yes,R,R,05-May-22 -MicroHaploHet,Karamoko Niare,Development,analysis,Estimating microhaplotype heterozygosity,no,This tool is still under development,NA,NA,NA,Bash/Python,GitHub Clone,Microhaplotype heterozygosity and microhaplotype-based PCA,NA,NA,NA,NA,NA,github repo,NA,NA,NA,,,,,,,,,,,,,,,,,29-Aug-23 \ No newline at end of file +Tool,Authors,Stage,Theme,Major_use_case,Tutorial on PGEforge,Reason_no_tutorial,Software_download_link,Repos_link,Webpage_link,Implementation,Installation,Functionalities,Functionality_notes,Preprint_DOI,Preprint_year,Publication_DOI,Publication_year,Documentation_location,Documentation_link,Tutorials_location,Tutorials_link,Run settings/parameters output,Runs on windows,Runs on Mac Intel,Runs on Mac ARM,Runs on Linux,Installation via build from source,"Installation via pre-built from repo (e.g. PIP, Conda, CRAN)",Installation via container,Installation via direct download,GitHub branch rules exist,Master branch protected,Auto tests required for branch merging,Run via GUI,Run via command line,"Implementation language (e.g. C++, R, Python)",Command line language +MLMOI,"Meraj Hashemi, Kristan Schneider",Release,analysis,MOI estimation,no,This tool was relegated due to difficulty with installation as the package has been removed from CRAN. Manual installation instructions were difficult to follow. ,https://cran.r-project.org/src/contrib/Archive/MLMOI/,https://github.com/Maths-against-Malaria/MOI-Bias-correction,NA,R package,Manual package install from .tar ball (removed from CRAN archive),"MOI estimation, Allele frequency estimation",NA,NA,NA,https://doi.org/10.1371/journal.pone.0261889,2021,within package,NA,within package,NA,,,,,,,,,,,,,,,, +MalHaploFreq,Ian Hastings,Release,analysis,Frequency/prevalence estimation of phased genotypes,no,"This tool has largely been superseeded by MultiLociBiallelicModel, which also estimates prevalence but does not require MOI, can do more loci and estimates the MOI from the input data",http://pcwww.liv.ac.uk/hastings/MalHaploFreq/,NA,NA,.exe file ,Manual download of .exe file,Haplotype frequency estimation,"MOI estimation and prevalence estimates are secondary (essentially untested), program does not work on Mac or Linux",NA,NA,https://doi.org/10.1186/1475-2875-7-130,2008,software website,http://pcwww.liv.ac.uk/hastings/MalHaploFreq/,NA,NA,,,,,,,,,,,,,,,, +malaria.em,Xiaohong Li,Release,analysis,Frequency/prevalence estimation of phased genotypes,no,"The code for this program was removed from CRAN in 2014, does not appear to be activiely maintained and is no longer available for download other than from archives. A program that does something similar is MultiLociBiallelicModel. ",https://cran.r-project.org/src/contrib/Archive/malaria.em/,NA,NA,R package,Manual package install from .tar ball (CRAN archive),"MOI estimation, haplotype frequency estimation",NA,NA,NA,https://doi.org/10.2202/1544-6115.1321,2007,within package,NA,NA,NA,,,,,,,,,,,,,,,, +FreqEstimationModel,Aimee Taylor,Beta,analysis,Frequency/prevalence estimation of phased genotypes,planned,,https://github.com/aimeertaylor/FreqEstimationModel/tree/master,https://github.com/aimeertaylor/FreqEstimationModel,NA,R package,Manual download of files or github clone and run files locally,"MOI, population-level allele and haplotype frequency estimation",Statistical model based on prevalence data. Allows for missing data,NA,NA,https://doi.org/10.1186/1475-2875-13-102,2014,within package,NA,within package,NA,,,,,,no,yes,no,no,,,,no,yes,R,R +MultiLociBiallelicModel,Christian Tsoungui Obama,Beta,analysis,Frequency/prevalence estimation of phased genotypes,yes,,https://github.com/Maths-against-Malaria/MultiLociBiallelicModel,https://github.com/Maths-against-Malaria/MultiLociBiallelicModel,NA,Standalone R scripts,Git clone and run scripts,MOI and haplotype frequency estimation,NA,NA,NA,https://doi.org/10.3389/fepid.2022.943625,2022,github repo,https://github.com/Maths-against-Malaria/MultiLociBiallelicModel,github repo,https://github.com/Maths-against-Malaria/MultiLociBiallelicModel/blob/main/src/SNP_MLE.R,yes,yes,yes,yes,yes,no,no,no,yes,no,no,no,no,yes,R,R +pfmix,John O'Brien,Release,analysis,MOI estimation,no,"Due to limited documentation on installation, we were unable to install and run the tool. The tool has not been updated in seven years ",https://github.com/cascobayesian/pfmix/tree/master,https://github.com/cascobayesian/pfmix,NA,R package,Manual package install from .tar ball,"MOI estimation, strain mixture proportion inference",also inference of proportion 'unexplained' mixture proportions within infections,NA,NA,https://doi.org/10.1371/journal.pcbi.1004824,2016,github repo,https://github.com/cascobayesian/pfmix/tree/master,github repo README,https://github.com/cascobayesian/pfmix/tree/master,,,,,,,,,,,,,,,, +THEREALMcCOIL,Hsiao-Han Chang,Release,analysis,MOI estimation,yes,,https://github.com/EPPIcenter/THEREALMcCOIL,https://github.com/EPPIcenter/THEREALMcCOIL,,Standalone R scripts,Git clone and compile from source files,COI and population allele frequency estimation,Can be used in categorical (SNP either het or hom) or proportional mode (relative signal intensity for each allele used),NA,NA,https://doi.org/10.1371/journal.pcbi.1005348,2017,github repo. Link to gh-page in README that doesn't work (https://eppicenter.github.io/THEREALMcCOIL/),https://github.com/EPPIcenter/THEREALMcCOIL,NA,NA,yes,yes,yes,yes,yes,yes,no,no,no,no,no,no,no,no,R,C++ +McCOILR,"Hsiao-Han Chang, OJ Watson",Release,analysis,MOI estimation,no,"This tool is an R wrapper for THEREALMcCOIL, it produces inflated COI estimates as compared to original C++ file from EPPICenter. Presumed seed bug",https://github.com/OJWatson/McCOILR,https://github.com/OJWatson/McCOILR,,R package,devtools install,COI and population allele frequency estimation,Wrapper on THEREALMcCOIL,NA,NA,NA,NA,package and website ,https://ojwatson.github.io/McCOILR/articles/introduction.html,package and website,https://ojwatson.github.io/McCOILR/articles/introduction.html,,,,,,,,,,,,,,,, +coiaf,"Aris Paschalidis, OJ Watson",Release,analysis,MOI estimation,yes,,https://github.com/bailey-lab/coiaf,https://github.com/bailey-lab/coiaf,https://bailey-lab.github.io/coiaf/index.html,R package,devtools install,COI estimation,can get discrete or continuous COI values,NA,NA,https://doi.org/10.1371/journal.pcbi.1010247,2023,package and website ,https://bailey-lab.github.io/coiaf/index.html,package and website,https://bailey-lab.github.io/coiaf/articles/example_real_data.html,no,yes,yes,yes,yes,yes,no,no,no,?,?,?,no,yes,R,R +DEploid,Joe Zhu,Release,analysis,Phasing,no,"This tool has been superseded by DeploidIBD, which is the same program just run without the IBD flag",https://github.com/DEploid-dev/DEploid,https://github.com/DEploid-dev/DEploid,https://deploid.readthedocs.io/en/latest/#,C++,Make,"COI, proportion and haplotype estimation",NA,NA,NA,https://doi.org/10.1093/bioinformatics/btx530,2018,github repo and website,https://deploid.readthedocs.io/en/latest/,github repo and website,https://deploid.readthedocs.io/en/latest/,,,,,,,,,,,,,,,, +Deploid-r,"Joe Zhu, Jacob Almagro-Garcia, Gil McVean",Release,analysis,Phasing,no,This tool is considered relegated as it links to an old version of Deploid,https://github.com/DEploid-dev/DEploid-r,https://github.com/DEploid-dev/DEploid-r,https://deploid.readthedocs.io/en/latest/index.html,R package,devtools install,"COI, proportion and haplotype estimation",Rcpp wrapper for DEploid,NA,NA,NA,NA,github repo,https://github.com/DEploid-dev/DEploid-r,NA,NA,,,,,,,,,,,,,,,, +DEploidIBD,Joe Zhu,Release,analysis,Phasing,yes,,https://github.com/DEploid-dev/DEploid,https://github.com/DEploid-dev/DEploid,https://deploid.readthedocs.io/en/latest/index.html,C++,Make,"COI, proportion, within-sample IBD and haplotype estimation","DEploid with ""-ibd"" flag",NA,NA,https://doi.org/10.7554/eLife.40845,2019,github repo and website,https://deploid.readthedocs.io/en/latest/,github repo and website,https://deploid.readthedocs.io/en/latest/,no,yes,yes,yes,yes,,,yes,,,,,no,yes,C++,bash +isoRelate,Lyndal Henden,Release,analysis,Relatedness estimation,planned,,https://github.com/bahlolab/isoRelate,https://github.com/bahlolab/isoRelate,NA,R package,devtools install,Infering pairwise IBD in haploid species,NA,NA,NA,https://doi.org/10.1371/journal.pgen.1007279,2018,within package,https://github.com/bahlolab/isoRelate/blob/master/README.md ,within package,NA,no,no,no,no,yes? wasm ,no,yes,no,no,,,,no,yes,C++ and R,R +hmmIBD,Steve Schaffner,Release,analysis,Relatedness estimation,yes,,https://github.com/glipsnort/hmmIBD,https://github.com/glipsnort/hmmIBD,NA,C + Python scripts,Compile with any C compiler,Identifies IBD segments between pairs of genomes,Includes scripts to extract and thin data,NA,NA,https://doi.org/10.1186/s12936-018-2349-7,2018,within package,NA,NA,NA,y (to stdout),?,yes,yes,yes,yes,no,no,no,no,no,no,no,yes,C + Python,C + Python +paneljudge,"Aimee Taylor, Pierre Jacob",Beta,study design,Panel design,yes,,https://github.com/aimeertaylor/paneljudge,https://github.com/aimeertaylor/paneljudge,NA,R package,devtools install,performance of a panel of genetic markers designed to test relatedness,can also estimate relatedness between monoclonals,NA,NA,https://onlinelibrary.wiley.com/doi/10.1111/1755-0998.13622,2022,within package,https://github.com/aimeertaylor/paneljudge,vignette within package,NA,yes,yes,yes,yes,yes,no,yes,no,no,,,,no,yes,"R, C++",R +dcifer,Inna Gerlovina,Release,analysis,Relatedness estimation,yes,,https://CRAN.R-project.org/package=dcifer,https://github.com/EPPIcenter/dcifer,https://eppicenter.github.io/dcifer/,R package,CRAN install,estimation of relatedness (IBD) between polyclonal infections,in addition to estimating relatedness also allows user to perform statistical inference also produces estimates of COI and population allele frequencies. ,NA,NA,https://doi.org/10.1093/genetics/iyac126,2022,package and website,https://eppicenter.github.io/dcifer/,vignette (CRAN),https://cloud.r-project.org/web/packages/dcifer/vignettes/vignetteDcifer.pdf,,,,,,,,,,,,,,,, +moire,"Maxwell Murphy, Bryan Greenhouse",Release,analysis,MOI estimation + allele frequency + within host relatedness,yes,,https://github.com/EPPIcenter/moire,https://github.com/EPPIcenter/moire,https://eppicenter.github.io/moire/,R package,devtools install,"Estimation of COI, estimation of pop-level allele frequencies",uses MCMC based approaches,https://doi.org/10.1101/2023.10.03.560769,2023,NA,NA,package and website,https://eppicenter.github.io/moire/index.html,vignette,https://eppicenter.github.io/moire/articles/mcmc_demo.html,no,yes,yes,yes,yes,no,yes,no,no,no,no,no,no,yes,C++,R +MALECOT,Bob Verity,Beta,analysis,Population structure,planned,,https://github.com/bobverity/MALECOT,https://github.com/bobverity/MALECOT,https://bobverity.github.io/MALECOT/,R package,devtools install,"Inference of population strucure, estimation of COI, estimation of allele frequencies",NA,NA,NA,NA,NA,package and website,https://bobverity.github.io/MALECOT/index.html,package and website,https://bobverity.github.io/MALECOT/index.html,,yes,yes,yes,yes,no,yes,no,no,,,,no,yes,C++ and R,R +SIMPLEGEN,"Bob Verity, Shazia Ruybal, Isobel Routledge, Sophie Berube, Daniel Larremore",Development,simulation,Transmission simulation,no,This tool is still under development,https://github.com/mrc-ide/SIMPLEGEN/tree/master,https://github.com/mrc-ide/SIMPLEGEN/tree/master,https://mrc-ide.github.io/SIMPLEGEN/,R package,devtools install,transmission simulation of malaria epidemiology and genotypes,NA,NA,NA,NA,NA,package and website,https://mrc-ide.github.io/SIMPLEGEN/index.html,package and website,https://mrc-ide.github.io/SIMPLEGEN/index.html,,,,,,,,,,,,,,,, +magenta,OJ Watson,Beta,simulation,Transmission simulation,no,This tool is a simulator and thus not within the scope of PGEforge genomic data analysis tools,https://github.com/OJWatson/magenta,https://github.com/OJWatson/magenta,https://ojwatson.github.io/magenta/index.html,R package,devtools install,transmission simulation of malaria epidemiology and genotypes,Implements interventions and a basic spatial model,NA,NA,https://doi.org/10.1093/molbev/msaa225,2020,website,https://ojwatson.github.io/magenta/articles/Introduction.html,website,https://ojwatson.github.io/magenta/articles/Introduction.html,,,,,,,,,,,,,,,, +DRpower,"Bob Verity, Shazia Ruybal",Release,study design,pfhrp2/3 study design,yes,,https://github.com/mrc-ide/DRpower,https://github.com/mrc-ide/DRpower,https://mrc-ide.github.io/DRpower/,R package,devtools install,power and sample size calculation for pfhrp2/3 studies,additional interactive web app,NA,NA,NA,NA,package and website,https://mrc-ide.github.io/DRpower/,package and website,https://mrc-ide.github.io/DRpower/,,yes,yes,yes,,no,yes,no,no,,,,no,yes,C++ and R ,R +pixelate,"Aimee Taylor, James Watson, Caroline Buckee",Release,visualization,Mapping,planned,,https://github.com/aimeertaylor/pixelate,https://github.com/aimeertaylor/pixelate,NA,R package,CRAN install,pixelates geographic maps according to levels of uncertainty,An R package,https://doi.org/10.48550/arXiv.2005.11993,2020,NA,NA,github repo,https://github.com/aimeertaylor/pixelate,vignettes folder of github repo,https://rdrr.io/github/artaylor85/pixelate/,,yes,yes,yes,yes,no,yes,no,no,,,,no,yes,R,R +estMOI,Samuel Assefa,Release,analysis,MOI estimation,yes,,https://sourceforge.net/projects/estmoi/,https://github.com/sammy-assefa/estMOI/tree/master,NA,perl script,download perl script,estimates multiplicity of infection,seems that it maybe used to be a website and is now a perl script,NA,NA,https://doi.org/10.1093/bioinformatics/btu005,2014,pdf in github,https://github.com/sammy-assefa/estMOI/blob/master/README.pdf,NA,NA,yes,?,yes,yes,yes,yes,no,no,yes,?,?,?,no,yes,Perl,Perl +forward-dream,"Jason Hendry, Gil McVean",Release,simulation,GenEpi Simulation,no,This tool is a simulator and thus not within the scope of genomic data analysis tools,https://github.com/JasonAHendry/fwd-dream,https://github.com/JasonAHendry/fwd-dream,NA,Python,conda,Simulates malaria transmission and evolution,NA,https://doi.org/10.1101/2020.08.27.269928,2020,https://doi.org/10.1371/journal.pcbi.1009287,2021,github,https://github.com/JasonAHendry/fwd-dream,NA,NA,,,,,,,,,,,,,,,, +moimix,Stuart Lee,Release,analysis,MOI estimation,no,"This tool was considered superseded by other MOI estimation tools as it does not estimate MOI, rather it only differentiates poly/monoclonal infections",https://github.com/bahlolab/moimix,https://github.com/bahlolab/moimix,NA,R package,BiocManager,"Estimate MOI, heterzyosity, call major calls",NA,NA,NA,NA,NA,github,https://github.com/bahlolab/moimix/blob/master/README.md,vignette within package,https://github.com/bahlolab/moimix/blob/master/vignettes/introduction.Rmd,,,,,,,,,,,,,,,, +hrp2malaRia,OJ Watson,Release,simulation,,no,This tool is a simulator and thus not within the scope of genomic data analysis tools,,https://github.com/OJWatson/hrp2malaRia,,,,,,,,https://doi.org/10.7554/eLife.25008,2017,,,,,,,,,,,,,,,,,,,, +hmmibdr,"OJ Watson, Steve Schaffner",Release,analysis,,no,"This tool is an R wrapper for hmmIBD, to install locally need C compiler and to run python scripts to produce input files from raw VCFs. ",,https://github.com/OJWatson/hmmibdr,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +MIPanalyzer,"Bob Verity, OJ Watson, Nick Brazeau",Release,analysis,Basic popgen analysis of MIP data,planned,,https://github.com/mrc-ide/MIPanalyzer,https://github.com/mrc-ide/MIPanalyzer,https://mrc-ide.github.io/MIPanalyzer/index.html,R package,devtools install,"Filtering of MIP data, PCA, pairwise genetic distances",NA,NA,NA,NA,NA,website,https://mrc-ide.github.io/MIPanalyzer/index.html,website,https://mrc-ide.github.io/MIPanalyzer/index.html,,yes,yes,yes,yes,no,yes,no,no,,,,no,yes,C++ and R,R +PlasmoSim,Bob Verity,Beta,simulation,Simulation of SNP data in demes,no,This tool is a simulator and thus not within the scope of genomic data analysis tools,https://github.com/mrc-ide/PlasmoSim,https://github.com/mrc-ide/PlasmoSim,https://mrc-ide.github.io/PlasmoSim/,R package,devtools install,"Simulation of genetic data (SNPs, haplotypes) or ancestry (IBD). Options for human movement between demes.",NA,NA,NA,NA,NA,website,https://mrc-ide.github.io/PlasmoSim/,website,https://mrc-ide.github.io/PlasmoSim/,,,,,,,,,,,,,,,, +polySimIBD,"Nicholas Brazeau, Bob Verity",Beta,analysis,Population genetic simulation,no,This tool is a simulator and thus not within the scope of PGEforge genomic data analysis tools,https://github.com/nickbrazeau/polySimIBD,https://github.com/nickbrazeau/polySimIBD,NA,R package,"remotes, github install",forwards in-time simulation of pop gen,under development,NA,NA,NA,NA,github,https://github.com/nickbrazeau/polySimIBD,vignette,https://github.com/nickbrazeau/polySimIBD/tree/master/vignettes,,,,,,,,,,,,,,,, +discent,"Nicholas Brazeau, Bob Verity",Development,analysis,"Estimate deme-level relatedness, accounting for migration",no,This tool is still under development,https://github.com/nickbrazeau/discent,https://github.com/nickbrazeau/discent,NA,R package,vignettes inside repos,Estimates deme inbreeding spatial coefficient (DISC),NA,NA,NA,NA,NA,github,https://github.com/nickbrazeau/discent,NA,NA,,,,,,,,,,,,,,,, +SNP-slice,"Nianqiao Ju, Jiawei Liu, Qixin He",Development,analysis,MOI estimation,no,This tool is still under development,NA,NA,NA,NA,NA,"Reconstruction of SNP haplotypes, estimation of COI",Reconstruction of SNP haplotypes allows for inference of haplotype/strain frequencies,https://doi.org/10.1101/2023.07.29.551098,2023,NA,NA,NA,NA,NA,NA,,,,,,,,,,,,,,,, +BRO,Dan Larremore,Release,analysis,Relatedness estimation (genetic similarity),no,This tool was not a packaged open-source tool so we were unable to install,https://github.com/dblarremore/BayesianRepertoireOverlap,https://github.com/dblarremore/BayesianRepertoireOverlap,https://bro.colorado.edu,Python scripts (also packaged as an online tool),Fork repo and run scripts locally,Relatedness estimation with uncertainty,Developed for var repertoires,NA,NA,https://doi.org/10.1371/journal.pcbi.1006898,2019,github repo,https://github.com/dblarremore/BayesianRepertoireOverlap,NA,NA,,,,,,,,,,,,,,,, +Pv3Rs,"Aimee Taylor, Yong See Foo",Development,analysis,Relatedness estimation,no,This tool is still under development,https://github.com/aimeertaylor/Pv3Rs,https://github.com/aimeertaylor/Pv3Rs,NA,R package,devtools installation from github repo,Relatedness estimation with uncertainty ,compute_posterior() function could also be used for Pf by setting prior probability of relapse=0,https://doi.org/10.1101/2022.11.23.22282669,2022,NA,NA,within package,NA,Vignettes within package,NA,,,,,,,,,,,,,,,, +Anti-malarial MCMC Bayesian Algorithm,Mateusz Plucinski,Development,analysis,TES outcome classification,no,This tool is still under development,https://github.com/GTJuniorDesign0100-2020/anti-malarial-MCMC-bayesian-algorithm,https://github.com/GTJuniorDesign0100-2020/anti-malarial-MCMC-bayesian-algorithm,NA,Python script,GitHub clone and run scripts,Estimate TES outcomes from genotyping data,This version is NOT designed for NGS data but length polymorphism data using capillary electrophoresis. There is a version with minor modifications adapted from this; Monica Golumbeanu @SwissTPH hopefully getting a clean version on a GitHub repo soon,NA,NA,https://doi.org/10.1128%2FAAC.00072-15,2015,github repo,https://github.com/GTJuniorDesign0100-2020/anti-malarial-MCMC-bayesian-algorithm/blob/master/README.md,Help in package and github readme,NA,,,,,,,,,,,,,,,, +AmpSeq,"Jorge Amaya, Ruchit Panchal, Phillip Schwabl, Pablo Manrique",Release,analysis,Amplicon Analysis ,no,This tool focuses on upstream bioinformatic data processing and is thus not within the scope of PGEforge genomic data analysis tools,https://github.com/broadinstitute/malaria-amplicon-pipeline/tree/main,https://github.com/broadinstitute/malaria-amplicon-pipeline/tree/main,https://github.com/broadinstitute/malaria-amplicon-pipeline/tree/main,Python scripts,GitHub Clone and run scripts,Denoising and amplicon assembly,NA,NA,NA,https://doi.org/10.1111/1755-0998.13622,2022,github repo,https://github.com/broadinstitute/malaria-amplicon-pipeline/tree/main,NA,NA,,,,,,,,,,,,,,,, +AmpSim,Nicholas Hathaway,Development,simulation,Amplicon Simulation,no,This tool is still under development,https://github.com/nickjhathaway/elucidator,https://github.com/nickjhathaway/elucidator,,C++,"GitHub Clone, docker, vagrant",Simulating PCR and sequencing noise ,,,,,,,,,,,,,,,,,,,,,,,,, +rehh,"Alexander Klassmann, Mathieu Gautier, Renaud Vitalis",Release,analysis,Selection (extended haplotype heterozygosity),no,"This tool focuses on population genetics, not specifically focused on Plasmodium and thus is not within the scope of PGEforge Plasmodium genomic data analysis tools",https://cran.r-project.org/web/packages/rehh/index.html,https://gitlab.com/oneoverx/rehh,NA,R package ,devtools installation ,Estmimating and plotting EHH/iHS,NA,NA,NA,"https://doi.org/10.1093/bioinformatics/bts115, https://doi.org/10.1111/1755-0998.12634","2012, 2017",gitlab repo,https://gitlab.com/oneoverx/rehh,Vignette,https://cran.r-project.org/web/packages/rehh/vignettes/rehh.html,,,,,,no,yes,no,no,,,,no,yes,C and R ,R +Hierfstat,"Jerome Goudet, Thibaut Jombart, Zhian N. Kamvar, Eric Archer, Olivier Hardy",Release,analysis,Estimation and Tests of Hierarchical F-Statistics,no,"This tool focuses on population genetics, not specifically focused on Plasmodium and thus is not within the scope of PGEforge Plasmodium genomic data analysis tools",https://github.com/jgx65/hierfstat,https://cran.r-project.org/web/packages/hierfstat/index.html,https://rdrr.io/cran/hierfstat/man/hierfstat.html,R package ,devtools installation ,Different types of F-statistics (per locus and pairwise),NA,NA,NA,https://doi.org/10.1111/j.1471-8286.2004.00828.x,2004,github repo,https://github.com/jgx65/hierfstat,Vignette,https://cran.r-project.org/web/packages/hierfstat/vignettes/hierfstat.html,no,yes,yes,yes,yes,yes,yes,no,no,?,?,?,no,yes,R,R +MicroHaploHet,Karamoko Niare,Development,analysis,Estimating microhaplotype heterozygosity,no,This tool is still under development,NA,NA,NA,Bash/Python,GitHub Clone,Microhaplotype heterozygosity and microhaplotype-based PCA,NA,NA,NA,NA,NA,github repo,NA,NA,NA,,,,,,,,,,,,,,,, \ No newline at end of file From dbed9661982fab960bb1a3903bb3605a1e4863bb Mon Sep 17 00:00:00 2001 From: shaziaruybal Date: Tue, 6 Aug 2024 14:35:15 +0100 Subject: [PATCH 2/8] make pages with tables full-width page layour for better viewing --- website_docs/tool_landscaping.qmd | 9 ++++++--- website_docs/tools_to_standards.qmd | 8 +++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/website_docs/tool_landscaping.qmd b/website_docs/tool_landscaping.qmd index dfe1a7e..748a58f 100644 --- a/website_docs/tool_landscaping.qmd +++ b/website_docs/tool_landscaping.qmd @@ -1,10 +1,13 @@ --- title: "Tool landscaping" -format: html +format: + html: + toc: false + page-layout: full --- ## Overview -In line with the scope of PGEforge, we focus our efforts on landscaping available tools that are commonly applied to *Plasmodium* genetic data and that focus on downstream analysis. Tools are considered within this scope if they: +In line with the scope of PGEforge, we focus our efforts on landscaping available tools that are commonly applied to *Plasmodium* genetic data and that focus on downstream analysis. Tools were initially considered within this scope if they: - Focus on downstream analysis tools. This includes tools whose primary goal is to extract signal from pre-processed data, but does not include tools that are primarily used within upstream bioinformatic steps, such as variant callers and quality filters. - Focus on *Plasmodium* genetics, including both *P. falciparum* and *P. vivax*. @@ -14,7 +17,7 @@ In our initial landscaping, we did not consider applications to mosquito genetic ## Landscaping matrix ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) -library(dplyr) +library(tidyverse) library(janitor) library(DT) ``` diff --git a/website_docs/tools_to_standards.qmd b/website_docs/tools_to_standards.qmd index 33e92fb..b5fb24a 100644 --- a/website_docs/tools_to_standards.qmd +++ b/website_docs/tools_to_standards.qmd @@ -1,12 +1,14 @@ --- title: "Overview of tools based on software standards" -format: html +format: + html: + toc: false + page-layout: full --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE) -library(dplyr) -library(stringr) +library(tidyverse) library(janitor) library(DT) ``` From 5ab7437a9e7fe043ff3dcb57df60f9dcbf336a8b Mon Sep 17 00:00:00 2001 From: shaziaruybal Date: Tue, 6 Aug 2024 14:35:55 +0100 Subject: [PATCH 3/8] remove inherent rownames and make an 'entry' column that is filterable --- website_docs/tools_to_standards.qmd | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/website_docs/tools_to_standards.qmd b/website_docs/tools_to_standards.qmd index b5fb24a..7fac66c 100644 --- a/website_docs/tools_to_standards.qmd +++ b/website_docs/tools_to_standards.qmd @@ -58,7 +58,8 @@ tool_std_summary <- tool_std_df %>% rename("Total end-user score" = "Total User Score", "Total development score" = "Total Dev Score", "User score (%)" = "Total User Percentage", - "Developer score (%)" = "Total Dev Percentage") + "Developer score (%)" = "Total Dev Percentage") %>% + rownames_to_column("Entry") ``` ---------- From bc0b3e59405f71aac4efdd9d6d4099a3ea79aab1 Mon Sep 17 00:00:00 2001 From: shaziaruybal Date: Tue, 6 Aug 2024 14:37:39 +0100 Subject: [PATCH 4/8] make table prettier - add download buttons and text and make font size smaller and auto-width columns --- website_docs/tool_landscaping.qmd | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/website_docs/tool_landscaping.qmd b/website_docs/tool_landscaping.qmd index 748a58f..ccddccc 100644 --- a/website_docs/tool_landscaping.qmd +++ b/website_docs/tool_landscaping.qmd @@ -30,21 +30,24 @@ matrix <- read.csv("tables/MMS_software_landscaping.csv") ```{r echo=F} matrix_dt <- matrix %>% clean_names(case = "title") %>% - rename("Tutorial on PGEforge" = "Tutorial on Pg Eforge") + rename("Tutorial on PGEforge" = "Tutorial on Pg Eforge")%>% + rownames_to_column("Entry") datatable(matrix_dt, - extensions = c('FixedColumns', 'FixedHeader'), + rownames = F, + extensions = c('FixedColumns', 'FixedHeader', 'Buttons'), options = list( pageLength = nrow(matrix_dt), fixedHeader = T, scrollY = "600px", scrollX = T, fixedColumns = list(leftColumns = 2), - dom = "ft", + dom = "ftB", + buttons = c('csv', 'excel'), autoWidth = T ), caption = htmltools::tags$caption(style = "caption-side: bottom; text-align: left; font-style: italic", - "Last updated: 2 August 2024"), + htmltools::HTML("Last updated: 2 August 2024

Download table:")), class = 'white-space: nowrap' ) %>% formatStyle( @@ -54,6 +57,13 @@ datatable(matrix_dt, ) %>% htmlwidgets::onRender(" function(el, x) { + // decrease font size and make table auto-width + $(el).css('font-size', '14px'); + $(el).find('table').css({ + 'table-layout': 'auto' + }); + + // custom styling to alternate row coloring (similar to kable) $(el).find('tbody td').css({ 'border-left': '0.1px solid #ddd', 'border-right': '0.1px solid #ddd' @@ -69,5 +79,4 @@ datatable(matrix_dt, }); } ") -``` - +``` \ No newline at end of file From a55cf6d0c0125ac18020078a34bf24e395dcd8f4 Mon Sep 17 00:00:00 2001 From: shaziaruybal Date: Tue, 6 Aug 2024 14:40:44 +0100 Subject: [PATCH 5/8] adding download buttons and decreasing font size --- website_docs/tools_to_standards.qmd | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/website_docs/tools_to_standards.qmd b/website_docs/tools_to_standards.qmd index 7fac66c..ac23e95 100644 --- a/website_docs/tools_to_standards.qmd +++ b/website_docs/tools_to_standards.qmd @@ -73,19 +73,21 @@ If you would like to contribute to this effort, please take a look at our [contr *Note: tools in grey have not yet been evaluated* ```{r table_summary, echo=F} -datatable(tool_std_summary, - extensions = c('FixedColumns', 'FixedHeader'), +datatable(tool_std_summary, + rownames = F, + extensions = c('FixedColumns', 'FixedHeader', 'Buttons'), options = list( pageLength = nrow(tool_std_df), fixedHeader = T, scrollY = "600px", scrollX = T, fixedColumns = list(leftColumns = 2), - dom = "ft", + dom = "ftB", + buttons = c('csv', 'excel'), autoWidth = T ), caption = htmltools::tags$caption(style = "caption-side: bottom; text-align: left; font-style: italic", - "Last updated: 2 August 2024"), + htmltools::HTML("Last updated: 2 August 2024

Download table:")), class = 'white-space: nowrap' ) %>% formatStyle( @@ -129,6 +131,13 @@ datatable(tool_std_summary, ) %>% htmlwidgets::onRender(" function(el, x) { + // decrease font size and make table auto-width + $(el).css('font-size', '14px'); + $(el).find('table').css({ + 'table-layout': 'auto' + }); + + // custom styling to make scores bold and alternate row coloring (similar to kable) $(el).find('tbody td').css({ 'border-left': '0.1px solid #ddd', 'border-right': '0.1px solid #ddd' From b3e64499733ba2dcf5eb9e90b94cf2fab3654841 Mon Sep 17 00:00:00 2001 From: shaziaruybal Date: Tue, 6 Aug 2024 14:42:19 +0100 Subject: [PATCH 6/8] tidying up future work and contribute pgs --- website_docs/future_work.qmd | 6 ------ website_docs/how_to_contribute.qmd | 3 --- 2 files changed, 9 deletions(-) diff --git a/website_docs/future_work.qmd b/website_docs/future_work.qmd index 64d0121..9303caf 100644 --- a/website_docs/future_work.qmd +++ b/website_docs/future_work.qmd @@ -21,7 +21,6 @@ By systematically benchmarking tools against known datasets, we can ensure that Ongoing work in this space includes **benchmarking COI estimation tools.** ::: - ## Adding and evaluating more tools Our initial efforts to [landscape available tools](tool_landscaping.qmd) were focused on tools for downstream *Plasmodium* genetic analysis and included 40 available tools. However, future work could include the following areas (not an exhaustive list!): @@ -29,10 +28,5 @@ Our initial efforts to [landscape available tools](tool_landscaping.qmd) were fo - Bioinformatic pre-processing tools/pipelines, such as variant calling and quality filters - Tools that are not specifically engineered for *Plasmodium* but can be applied to *Plasmodium*genetic data, such as more generic population genetics tools that estimate metrics such as F-statistics, extended haplotype homozygosity, etc -## Tool development -**Do we want to include some of the results from the tools to functionality evaluation? We could say here that tools that can phase are needed for all use cases!** - -Tools to functions -- we still can't phase! - ## Thank you! Thank you for your interest in contributing to PGEforge. Your efforts help us build a stronger, more inclusive research community making *Plasmodium* genomic analysis accessible to all! diff --git a/website_docs/how_to_contribute.qmd b/website_docs/how_to_contribute.qmd index 9ba9763..875a9a5 100644 --- a/website_docs/how_to_contribute.qmd +++ b/website_docs/how_to_contribute.qmd @@ -72,9 +72,6 @@ You can find the templates for all of these documents in our [Github repository] **Please make sure to follow our [GitHub contribution guidelines](#contributing-guidelines-for-github).** -## Developing analysis workflows -Coming soon! - ## Add yourself as a contributor Everyone who contributes to PGEforge is listed as a [contributor](contributors.qmd). From 7a9e64bd3b6c3947c24020ceca13eab3829aa3fa Mon Sep 17 00:00:00 2001 From: shaziaruybal Date: Tue, 6 Aug 2024 14:47:09 +0100 Subject: [PATCH 7/8] adding contact email --- website_docs/how_to_contribute.qmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website_docs/how_to_contribute.qmd b/website_docs/how_to_contribute.qmd index 875a9a5..716116a 100644 --- a/website_docs/how_to_contribute.qmd +++ b/website_docs/how_to_contribute.qmd @@ -8,12 +8,12 @@ format: html ::: ## The PGEforge vision -PGEforge is a **community-driven** platform created by and for malaria genomic epidemiology analysis tool developers and end-users. If you are interested in contributing to these efforts, please [get involved](how_to_contribute.qmd)! +PGEforge is a **community-driven** platform created by and for malaria genomic epidemiology analysis tool developers and end-users. If you are interested in contributing to these efforts, please get involved! ## How to contribute to PGEforge We are excited to have you join us and we welcome input from all areas of the research community to continuously improve and expand our platform. PGEforge aims to contribute to an inclusive and sustainable ecosystem of existing and new tools for *Plasmodium* genomic data analysis. From less to more involvement, there are several ways to get involved and join us in contributing to these aims. All contributors must adhere to our [community rules](#community-rules) and will be [recognized as a contributor](contributors.qmd). -Below are some ways to get involved with current workstreams, but we also have some ideas and plans in the works for the [future](future_work.qmd) beyond what is currently available in PGEforge! +Below are some ways to get involved with current workstreams, but we also have some ideas and plans in the works for the [future](future_work.qmd) beyond what is currently available in PGEforge! If you want to contribute in another way that is not currently listed, please [reach out to us directly](mailto:r.verity@imperial.ac.uk). ## Add tool to landscaping and software standards matrices Landscaping, documenting and benchmarking available *Plasmodium* genomic data analysis tools and any tools within the realm of *Plasmodium* genomic epidemiology (PGE) will require continuous updating and curation. As new tools become available, they need to be assessed and integrated into our existing framework. While we have made significant progress in identifying, documenting and evaluating tools commonly applied to *Plasmodium* genetic data, the [tool landscaping](tool_landscaping.qmd) and [evaluation against software standards](software_standards.qmd) is not exhaustive. For example, our initial efforts focused on tools for downstream *Plasmodium* genetic analysis, specifically targeting tools that extract signals from already processed data and focusing only on tools applicable *P. falciparum* and *P. vivax*. In terms of tool evaluation, we focused our efforts on evaluating the tools for which resources were developed in the [tutorials section](tutorials_overview.qmd). [Future work](future_work.qmd) could also involve other types of tools, however. From 765d99047b64ccedcddfcbf7b4f3d1c2ddfc7599 Mon Sep 17 00:00:00 2001 From: shaziaruybal Date: Tue, 6 Aug 2024 14:47:34 +0100 Subject: [PATCH 8/8] catch up _freeze/ --- _freeze/site_libs/jszip-1.13.6/jszip.min.js | 13 +++++++++++++ .../software_standards/execute-results/html.json | 4 +--- .../tool_landscaping/execute-results/html.json | 10 ++++------ .../tools_to_standards/execute-results/html.json | 10 ++++------ 4 files changed, 22 insertions(+), 15 deletions(-) create mode 100644 _freeze/site_libs/jszip-1.13.6/jszip.min.js diff --git a/_freeze/site_libs/jszip-1.13.6/jszip.min.js b/_freeze/site_libs/jszip-1.13.6/jszip.min.js new file mode 100644 index 0000000..ff4cfd5 --- /dev/null +++ b/_freeze/site_libs/jszip-1.13.6/jszip.min.js @@ -0,0 +1,13 @@ +/*! + +JSZip v3.10.1 - A JavaScript class for generating and reading zip files + + +(c) 2009-2016 Stuart Knightley +Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown. + +JSZip uses the library pako released under the MIT license : +https://github.com/nodeca/pako/blob/main/LICENSE +*/ + +!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t="function"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error("Cannot find module '"+r+"'");throw n.code="MODULE_NOT_FOUND",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l="function"==typeof require&&require,e=0;e>2,s=(3&t)<<4|r>>4,a=1>6:64,o=2>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{"./support":30,"./utils":32}],2:[function(e,t,r){"use strict";var n=e("./external"),i=e("./stream/DataWorker"),s=e("./stream/Crc32Probe"),a=e("./stream/DataLengthProbe");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")),t=this;return e.on("end",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a("uncompressedSize")).pipe(t.compressWorker(r)).pipe(new a("compressedSize")).withStreamInfo("compression",t)},t.exports=o},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,t,r){"use strict";var n=e("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(){return new n("STORE compression")},uncompressWorker:function(){return new n("STORE decompression")}},r.DEFLATE=e("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,t,r){"use strict";var n=e("./utils");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?"string"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{"./utils":32}],5:[function(e,t,r){"use strict";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){"use strict";var n=null;n="undefined"!=typeof Promise?Promise:e("lie"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){"use strict";var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,i=e("pako"),s=e("./utils"),a=e("./stream/GenericWorker"),o=n?"uint8array":"array";function h(e,t){a.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic="\b\0",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new h("Deflate",e)},r.uncompressWorker=function(){return new h("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,t,r){"use strict";function A(e,t){var r,n="";for(r=0;r>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo("string",s(h.name)),c=I.transformTo("string",O.utf8encode(h.name)),d=h.comment,p=I.transformTo("string",s(d)),m=I.transformTo("string",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b="",v="",y="",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),"UNIX"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+="up"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+="uc"+A(y.length,2)+y);var E="";return E+="\n\0",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+"\0\0\0\0"+A(z,4)+A(n,4)+f+b+p}}var I=e("../utils"),i=e("../stream/GenericWorker"),O=e("../utf8"),B=e("../crc32"),R=e("../signature");function s(e,t,r,n){i.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{"../utils":32}],19:[function(e,t,r){"use strict";var n=e("./Uint8ArrayReader");function i(e){n.call(this,e)}e("../utils").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,t,r){"use strict";var n=e("./DataReader");function i(e){n.call(this,e)}e("../utils").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./DataReader":18}],21:[function(e,t,r){"use strict";var n=e("./ArrayReader");function i(e){n.call(this,e)}e("../utils").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{"../utils":32,"./ArrayReader":17}],22:[function(e,t,r){"use strict";var n=e("../utils"),i=e("../support"),s=e("./ArrayReader"),a=e("./StringReader"),o=e("./NodeBufferReader"),h=e("./Uint8ArrayReader");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),"string"!==t||i.uint8array?"nodebuffer"===t?new o(e):i.uint8array?new h(n.transformTo("uint8array",e)):new s(n.transformTo("array",e)):new a(e)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,t,r){"use strict";r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\b"},{}],24:[function(e,t,r){"use strict";var n=e("./GenericWorker"),i=e("../utils");function s(e){n.call(this,"ConvertWorker to "+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(e,t,r){"use strict";var n=e("./GenericWorker"),i=e("../crc32");function s(){n.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}e("../utils").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,t,r){"use strict";var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(e,t,r){"use strict";var n=e("../utils"),i=e("./GenericWorker");function s(e){i.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":e=this.data.substring(this.index,t);break;case"uint8array":e=this.data.subarray(this.index,t);break;case"array":case"nodebuffer":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(e,t,r){"use strict";function n(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit("data",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit("error",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r "+e:e}},t.exports=n},{}],29:[function(e,t,r){"use strict";var h=e("../utils"),i=e("./ConvertWorker"),s=e("./GenericWorker"),u=e("../base64"),n=e("../support"),a=e("../external"),o=null;if(n.nodestream)try{o=e("../nodejs/NodejsStreamOutputAdapter")}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on("data",function(e,t){n.push(e),o&&o(t)}).on("error",function(e){n=[],r(e)}).on("end",function(){try{var e=function(e,t,r){switch(e){case"blob":return h.newBlob(h.transformTo("arraybuffer",t),r);case"base64":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo("nodebuffer",e).toString("utf-8"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?"uint8array":"array",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=l},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,t,a){"use strict";var o=e("./support"),h=e("./base64"),r=e("./nodejsUtils"),u=e("./external");function n(e){return e}function l(e,t){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r>10&1023,o[n++]=56320|1023&i)}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}},{"./common":41}],43:[function(e,t,r){"use strict";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){"use strict";var h,c=e("../utils/common"),u=e("./trees"),d=e("./adler32"),p=e("./crc32"),n=e("./messages"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return(e<<1)-(4e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm)}function U(e,t){e.pending_buf[e.pending++]=t}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<=x&&(e.ins_h=(e.ins_h<=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else{var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindexi&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<>>=y,p-=y),p<15&&(d+=z[n++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<>>=y,p-=y,(y=s-a)>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg="incorrect header check",r.mode=30;break}if(8!=(15&u)){e.msg="unknown compression method",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg="invalid window size",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg="invalid block type",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<>>16^65535)){e.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){e.msg="invalid bit length repeat",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3}else{for(z=_+7;l>>=_)),u>>>=7,l-=7}if(r.have+d>r.nlen+r.ndist){e.msg="invalid bit length repeat",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg="invalid literal/length code",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg="invalid distance code",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg="invalid distance too far back",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window}else m=i,p=a-r.offset,d=r.length;for(hd?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]]}if(k>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o))}}function W(e){var t;for(t=0;t>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u>=7;n>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{"../utils/common":41}],53:[function(e,t,r){"use strict";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(r,n){"use strict";if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i="[object process]"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e)})}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1},r.postMessage("","*"),r.onmessage=t,e}}()?(a="setImmediate$"+Math.random()+"$",r.addEventListener?r.addEventListener("message",d,!1):r.attachEvent("onmessage",d),function(e){r.postMessage(a+e,"*")}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data)},function(e){t.port2.postMessage(e)}):l&&"onreadystatechange"in l.createElement("script")?(s=l.documentElement,function(e){var t=l.createElement("script");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null},s.appendChild(t)}):function(e){setTimeout(c,0,e)},e.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r\n \n \n Criteria \n Type \n Notes \n \n \n\n User-facing\n\n Installation instructions exist \n binary \n \n \n \n Usage instructions exist \n binary \n \n \n \n Tutorials exist \n binary \n Must have explanation of inputs, outputs, and test data set in a worked example \n \n \n Test data sets and results available \n binary \n \n \n Developer-facing\n\n Open source \n binary \n \n \n \n Has software tests \n binary \n Eg, unit tests \n \n \n More than 90% code coverage reported \n binary \n \n \n \n Clear channels for software maintenance and issues \n binary \n Eg, GitHub issues, author contact information \n \n\n\n\n`````\n:::\n:::\n\n\n::: {.column-margin}\n
\n
\nEvery criteria is scored on the following scale: \n\n- 0: Criteria not fulfilled\n- 1: Criteria fulfilled but not entirely\n- 2: Criteria fulfilled \n\n
\nThis is then translated to an **end-user score** and **development score** for the tool. \n:::\n\n### Tool evaluation\nEvery *Plasmodium* genomic analysis tool can be evaluated against these objective software standards to provide these scores. The resulting evaluation matrix and overview of each tool can be found [here](tools_to_standards.qmd).\n\n", - "supporting": [ - "software_standards_files" - ], + "supporting": [], "filters": [ "rmarkdown/pagebreak.lua" ], diff --git a/_freeze/website_docs/tool_landscaping/execute-results/html.json b/_freeze/website_docs/tool_landscaping/execute-results/html.json index edbf80c..e9a7dd0 100644 --- a/_freeze/website_docs/tool_landscaping/execute-results/html.json +++ b/_freeze/website_docs/tool_landscaping/execute-results/html.json @@ -1,16 +1,14 @@ { - "hash": "ab73f3dc63bbdda4d7ac5d2413505da2", + "hash": "9bbe9eaa5002ac0428b84a25bc671c3b", "result": { - "markdown": "---\ntitle: \"Tool landscaping\"\nformat: html\n---\n\n\n## Overview\nIn line with the scope of PGEforge, we focus our efforts on landscaping available tools that are commonly applied to *Plasmodium* genetic data and that focus on downstream analysis. Tools are considered within this scope if they:\n\n- Focus on downstream analysis tools. This includes tools whose primary goal is to extract signal from pre-processed data, but does not include tools that are primarily used within upstream bioinformatic steps, such as variant callers and quality filters.\n- Focus on *Plasmodium* genetics, including both *P. falciparum* and *P. vivax*. \n\nIn our initial landscaping, we did not consider applications to mosquito genetics or many broader population genetics tools, despite some tools and techniques being applicable for these purposes. However, we encourage contributions to this and anything else within the scope of PGEforge (i.e. *Plasmodium* genomic epidemiology tools), please see our [contributor guidelines](how_to_contribute.qmd) and some of our planned areas of [future work](future_work.qmd).\n\n## Landscaping matrix\n\n\n\n\n\n::: {.cell}\n::: {.cell-output-display}\n```{=html}\n
\n\n```\n:::\n:::\n", - "supporting": [ - "tool_landscaping_files" - ], + "markdown": "---\ntitle: \"Tool landscaping\"\nformat: \n html:\n toc: false\n page-layout: full\n---\n\n\n## Overview\nIn line with the scope of PGEforge, we focus our efforts on landscaping available tools that are commonly applied to *Plasmodium* genetic data and that focus on downstream analysis. Tools were initially considered within this scope if they:\n\n- Focus on downstream analysis tools. This includes tools whose primary goal is to extract signal from pre-processed data, but does not include tools that are primarily used within upstream bioinformatic steps, such as variant callers and quality filters.\n- Focus on *Plasmodium* genetics, including both *P. falciparum* and *P. vivax*. \n\nIn our initial landscaping, we did not consider applications to mosquito genetics or many broader population genetics tools, despite some tools and techniques being applicable for these purposes. However, we encourage contributions to this and anything else within the scope of PGEforge (i.e. *Plasmodium* genomic epidemiology tools), please see our [contributor guidelines](how_to_contribute.qmd) and some of our planned areas of [future work](future_work.qmd).\n\n## Landscaping matrix\n\n\n\n\n\n::: {.cell}\n::: {.cell-output-display}\n```{=html}\n
\n\n```\n:::\n:::", + "supporting": [], "filters": [ "rmarkdown/pagebreak.lua" ], "includes": { "include-in-header": [ - "\n\n\n\n\n\n\n\n\n\n\n\n\n\n" + "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" ] }, "engineDependencies": {}, diff --git a/_freeze/website_docs/tools_to_standards/execute-results/html.json b/_freeze/website_docs/tools_to_standards/execute-results/html.json index 849753a..09a0d55 100644 --- a/_freeze/website_docs/tools_to_standards/execute-results/html.json +++ b/_freeze/website_docs/tools_to_standards/execute-results/html.json @@ -1,16 +1,14 @@ { - "hash": "f9f99446c068a5ecb2c2989043c7930a", + "hash": "09daef8b8d89b59d8c34c61530fb6fc7", "result": { - "markdown": "---\ntitle: \"Overview of tools based on software standards\"\nformat: html\n---\n\n\n\n\n\n\n\n::: {.cell}\n\n:::\n\n\n----------\n\nThe following *Plasmodium* genomic analysis tools were identified during [tool landscaping](tool_landscaping.qmd) and were evaluating using the [software standards criteria](software_standards.qmd) to determine an end-user and development score for each tool. \n\nIn line with the scope of PGEforge, we focus our efforts on evaluating available tools that are commonly applied to *Plasmodium* genetic data and that focus on downstream analysis. In other words tools with the primary goal of extracting signal from pre-processed data, not those focused on upstream bioinformatic data processing.\n\nIf you would like to contribute to this effort, please take a look at our [contributor guidelines](how_to_contribute.qmd)!\n\n\n*Note: tools in grey have not yet been evaluated* \n\n::: {.cell}\n::: {.cell-output-display}\n```{=html}\n
\n\n```\n:::\n:::\n", - "supporting": [ - "tools_to_standards_files" - ], + "markdown": "---\ntitle: \"Overview of tools based on software standards\"\nformat: \n html:\n toc: false\n page-layout: full\n---\n\n\n\n\n\n\n\n::: {.cell}\n\n:::\n\n\n----------\n\nThe following *Plasmodium* genomic analysis tools were identified during [tool landscaping](tool_landscaping.qmd) and were evaluating using the [software standards criteria](software_standards.qmd) to determine an end-user and development score for each tool. \n\nIn line with the scope of PGEforge, we focus our efforts on evaluating available tools that are commonly applied to *Plasmodium* genetic data and that focus on downstream analysis. In other words tools with the primary goal of extracting signal from pre-processed data, not those focused on upstream bioinformatic data processing.\n\nIf you would like to contribute to this effort, please take a look at our [contributor guidelines](how_to_contribute.qmd)!\n\n\n*Note: tools in grey have not yet been evaluated* \n\n::: {.cell}\n::: {.cell-output-display}\n```{=html}\n
\n\n```\n:::\n:::\n", + "supporting": [], "filters": [ "rmarkdown/pagebreak.lua" ], "includes": { "include-in-header": [ - "\n\n\n\n\n\n\n\n\n\n\n\n\n\n" + "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" ] }, "engineDependencies": {},