diff --git a/R/helper_functions.R b/R/helper_functions.R index dd7a7d9614eec6b4f56865011904515ff5a77438..d15e5a14e9f732ea083f19b07668f16c161932cd 100644 --- a/R/helper_functions.R +++ b/R/helper_functions.R @@ -86,5 +86,32 @@ getInstallToolPackageBioContainer <- function(tool, containerType) { } +getInstallToolEnvBioContainer <- function(tool, containerType) { + + data <- allBIOCONTAINER + + size <- length(data) + + intalls <- "" + + for (tools in data) { + splitB <- strsplit(tool, "%") + name <- splitB[[1]][1] + version <- splitB[[1]][2] + + if(tools$name == name) { + if(tools$version == version) { + if(is.null(tools$env)) { + return (FALSE) + } else { + return(tools$env) + } + } + } + } + + return (FALSE) +} + diff --git a/container.yaml b/container.yaml index 809bed33a0562b29267488f157ab678c34bcc3d4..7d5536b04bb857b14a5f1fe1d80dd1d5b890d664 100755 --- a/container.yaml +++ b/container.yaml @@ -15,7 +15,7 @@ containers: [ ,{ name: "cava", version: "1.1.1", description: "lightweight, fast and flexible NGS variant annotation tool", documentation: "http://www.well.ox.ac.uk/cava", install: [] } ,{ name: "clustal-omega", version: "1.2.1-1", description: "general purpose multiple sequence alignment program for proteins", documentation: "http://www.clustal.org/omega/#Documentation", install: ["apt-get install clustalo"] } ,{ name: "comet", version: "1.1.0", description: "an open source tandem mass spectrometry sequence database search tool", documentation: "http://comet-ms.sourceforge.net/parameters/parameters_2016010/", install: ["conda install -c auto comet=1.1.0"] } -,{ name: "cross-species-scaffolding", version: "0.1", description: "Generate in silico mate-pair reads from single-/paired-end reads of your organism of interest", documentation: "https://github.com/thackl/cross-species-scaffolding", install: ["cd /opt/biotools; rm -rf cross-species-scaffolding; git clone https://github.com/thackl/cross-species-scaffolding.git ; apt-get -y install samtools; cd cross-species-scaffolding; mkdir samples; make dependencies;"], env: "export PATH='/opt/biotools/cross-species-scaffolding/bin':$PATH" } +,{ name: "cross-species-scaffolding", version: "0.1", description: "Generate in silico mate-pair reads from single-/paired-end reads of your organism of interest", documentation: "https://github.com/thackl/cross-species-scaffolding", install: ["cd /opt/biotools; rm -rf cross-species-scaffolding; git clone https://github.com/thackl/cross-species-scaffolding.git ; apt-get -y install samtools; cd cross-species-scaffolding; mkdir samples; make dependencies;"], env: "export PATH=/opt/biotools/cross-species-scaffolding/bin:$PATH" } ,{ name: "crux", version: "2.1", description: "a software toolkit for tandem mass spectrometry analysis", documentation: "http://cruxtoolkit.sourceforge.net/", install: [] } ,{ name: "denovogui", version: "1.10.4", description: "graphical user interface for de novo sequencing of tandem mass spectra", documentation: "https://github.com/compomics/denovogui", install: [] } ,{ name: "denovogui", version: "1.5.2", description: "graphical user interface for de novo sequencing of tandem mass spectra", documentation: "https://github.com/compomics/denovogui", install: [] } @@ -30,7 +30,7 @@ containers: [ ,{ name: "frc_align", version: "20150723", description: "Computes FRC from SAM/BAM file and not from afg files", documentation: "https://github.com/jts/frc_courve", install: [] } ,{ name: "gapcloser", version: "1.12", description: "A novel short-read assembly method that can build a de novo draft assembly for the human-sized genomes", documentation: "http://soap.genomics.org.cn/gapcloser.html", install: ["conda install soapdenovo2-gapcloser=1.12"] } ,{ name: "gatk", version: "3.8", description: "The full Genome Analysis Toolkit (GATK) framework, license restricted.", documentation: "", install: ["conda install gatk=3.8"] } -,{ name: "gatk4", version: "4.0", description: "The full Genome Analysis Toolkit (GATK) framework, license restricted.", documentation: "", install: ["cd /opt/biotools; apt-get install -y openjdk-8-jdk; wget https://github.com/broadinstitute/gatk/releases/download/4.0.5.1/gatk-4.0.5.1.zip;unzip gatk-4.0.5.1.zip;Rscript -e ' dependencies = c("getopt", "optparse","data.table","ggplot2","gplots","gsalib"); install.packages(dependencies)';"], env: "export PATH='$PATH':$PWD/gatk-4.0.5.1" } +,{ name: "gatk4", version: "4.0", description: "The full Genome Analysis Toolkit (GATK) framework, license restricted.", documentation: "", install: ["conda install -c bioconda gatk4"] } ,{ name: "gcta", version: "1.24.7", description: "", documentation: "", install: ["conda install -c biobuilds gcta=1.26.0"] } ,{ name: "htslib", version: "1.8", description: "", documentation: "", install: ["conda install htslib=1.8"] } ,{ name: "jbrowse", version: "1.12.1", description: "", documentation: "", install: ["conda install jbrowse=1.12.1"] } @@ -63,7 +63,7 @@ containers: [ ,{ name: "soapec", version: "2.03", description: "A correction tool for SOAPdenovo", documentation: "http://soap.genomics.org.cn/soapdenovo.html", install: ["conda install soapec=2.03"] } ,{ name: "spades", version: "3.11.1", description: "Tools (written in C using htslib) for manipulating next-generation sequencing data", documentation: "http://bioinf.spbau.ru/spades", install: ["conda install spades=3.11.1"] } ,{ name: "spectra-cluster-cli", version: "1.0.1", description: "PRIDE Cluster algorithm to cluster heterogeneous mass spectra", documentation: "https://github.com/spectra-cluster/spectra-cluster-cli", install: ["conda install spectra-cluster-cli=1.0.1"] } -,{ name: "sra-tools", version: "latest", description: "", documentation: "", installation: ["cd /opt/biotools; wget --output-document sratoolkit.tar.gz http://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-ubuntu64.tar.gz; tar -vxzf sratoolkit.tar.gz; rm sratoolkit.tar.gz; mv sratoolkit.*-ubuntu64 sratoolkit"], env: "export PATH='$PATH':$PWD/sratoolkit/bin"] } +,{ name: "sra-tools", version: "latest", description: "", documentation: "", installation: ["cd /opt/biotools; wget --output-document sratoolkit.tar.gz http://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-ubuntu64.tar.gz; tar -vxzf sratoolkit.tar.gz; rm sratoolkit.tar.gz; mv sratoolkit.*-ubuntu64 sratoolkit"], env: "export PATH=$PATH:$PWD/sratoolkit/bin" } ,{ name: "stacks", version: "1.44", description: "Stacks was developed to work with restriction enzyme-based data, such as RAD-seq, for the purpose of building genetic maps and conducting population", documentation: "http://catchenlab.life.illinois.edu/stacks/", install: ["conda install stacks=1.44"] } ,{ name: "stacks", version: "2.0", description: "Stacks was developed to work with restriction enzyme-based data, such as RAD-seq, for the purpose of building genetic maps and conducting population", documentation: "http://catchenlab.life.illinois.edu/stacks/", install: ["wget http://catchenlab.life.illinois.edu/stacks/source/stacks-2.0.tar.gz \\", "&& tar -zxvf stacks-2.0.tar.gz -C /opt/biotools/bin/ \\", "&& cd /opt/biotools/bin/stacks-2.0/ \\", "&& ./configure \\", "&& make \\", "&& make install"]} ,{ name: "tandem", version: "10-12-01-1", description: "software that can match tandem mass spectra with peptide sequences", documentation: "http://www.thegpm.org/tandem/", install: [] } diff --git a/server/opt_home.R b/server/opt_home.R index c9861044a0768f1f015eb18e382882af01cb9a5f..7aaf18adf96806879775f42cd5fafd4d4bf6195f 100755 --- a/server/opt_home.R +++ b/server/opt_home.R @@ -79,7 +79,11 @@ createEnv <- function(result) { if(!is.null(input$dtbiocontainer_rows_all)) { result <- paste(result, "\texport PATH=/opt/conda/bin:$PATH", sep = "\n") result <- paste(result, "\texport PATH=/opt/biotools/bin:$PATH", sep = "\n") + + result <- createPathBiocontainer(result) } + + } else { if(input$rtemplate == "none" || input$fromTemplate == "r-base") { @@ -99,6 +103,7 @@ createEnv <- function(result) { if(!is.null(input$dtbiocontainer_rows_all)) { result <- paste(result, "RUN export PATH=/opt/conda/bin:$PATH", sep = "\n") result <- paste(result, "RUN export PATH=/opt/biotools/bin:$PATH", sep = "\n") + result <- createPathBiocontainer(result) } } @@ -345,6 +350,47 @@ createBioconductorPackage <- function(result) { return(result) } +createPathBiocontainer <- function(result) { + + + print("PATH") + + if(input$containerType == "singularity") { + selectBioTool <- input$selectedBiocontainer + for (tool in selectBioTool){ + + print(tool) + + to <- getInstallToolEnvBioContainer(tool, input$containerType) + + print(to) + + if(is.character(to)) { + result <- paste0(result, "\n\t", to) + } + + } + + } else { + selectBioTool <- input$selectedBiocontainer + for (tool in selectBioTool){ + + to <- getInstallToolEnvBioContainer(tool, input$containerType) + + if(is.character(to)) { + result <- paste0(result, "\nRUN ", to) + } + + } + + } + + print(result) + + return(result) + +} + #' Use for create Biocontainer content createBiocontainer <- function(result, haveR) {