annotate test-data/decontam_Rscript.Rmd @ 3:871214ac722e draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 8eca6c026e7bd7ab2e471485cb93b8dee1cd2c07
author iuc
date Sun, 09 Mar 2025 19:27:13 +0000
parents 86da5c894956
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
1 ---
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
2 title: "decontam_docs"
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
3 output: html_document
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
4 date: "2024-09-10"
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
5 ---
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
6
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
7 # This R markdown generates the test data for the wrapper and can be used to test the functions used in the configfile
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
8
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
9 ```{r setup, include=FALSE}
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
10 knitr::opts_chunk$set(echo = TRUE)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
11 ```
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
12
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
13 ## Install test env and run studio in this env
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
14
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
15 ```{bash install}
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
16 mamba create --name decontam bioconductor-decontam bioconductor-phyloseq r-tidyverse
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
17 mamba activate decontam
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
18 rstudio
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
19 ```
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
20
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
21 ### Check correct R home
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
22
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
23 ```{r home}
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
24 R.home()
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
25 ```
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
26
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
27 ## Get test data
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
28
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
29 Create test data for wrapper, it should be able to use a matrix and vector as well as phyloseq object as input.
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
30
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
31 ```{r store test data}
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
32 R.home()
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
33 library(phyloseq)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
34 packageVersion("phyloseq")
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
35 library(ggplot2)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
36 packageVersion("ggplot2")
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
37 library(decontam)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
38 packageVersion("decontam")
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
39
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
40 ps <- readRDS(system.file("extdata", "MUClite.rds", package = "decontam"))
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
41
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
42 # Sample from a physeq object with a sampling function.
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
43 # ps: physeq object to be sampled
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
44 # fun: function to use for sampling (default `sample`)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
45 # ...: parameters to be passed to fun,
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
46 # see `help(sample)` for default parameters
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
47 sample_ps <- function(ps, fun = sample, ...) {
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
48 ids <- sample_names(ps)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
49 sampled_ids <- fun(ids, ...)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
50 ps <- prune_samples(sampled_ids, ps)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
51 return(ps)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
52 }
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
53
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
54 # the initial object is to big for the test case so we subsample
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
55 ps <- sample_ps(ps, size = 200)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
56
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
57 ## ps
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
58 # get otu table
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
59 otu <- as(otu_table(ps), "matrix")
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
60 head(otu[, 1:10], 10)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
61
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
62 # add control column to sample data
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
63 sample_data(ps)$control <- sample_data(ps)$Sample_or_Control == "Control Sample"
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
64 # store as 0 and 1
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
65 sample_data(ps)$control <- as.integer(sample_data(ps)$control)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
66 head(sample_data(ps), 1000)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
67
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
68 metadata <- as(sample_data(ps), "matrix")
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
69 head(metadata, 1000)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
70
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
71 # store test data
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
72 # stores the row names as column,
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
73 # see https://stackoverflow.com/questions/2478352
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
74 # /write-table-writes-unwanted-leading-empty-column-to-header-when-has-rownames
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
75 write.table(data.frame("SampleID" = rownames(otu), otu),
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
76 file = file.path(getwd(), "otu_input.tsv"),
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
77 sep = "\t",
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
78 row.names = FALSE,
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
79 quote = FALSE
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
80 )
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
81 write.table(data.frame("SampleID" = rownames(metadata), metadata),
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
82 file = file.path(getwd(), "metadata_input.tsv"),
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
83 sep = "\t",
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
84 row.names = FALSE,
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
85 quote = FALSE
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
86 )
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
87
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
88 saveRDS(ps, file.path(getwd(), "phyloseq_input.rds"))
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
89 ```
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
90
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
91 ## Load test data
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
92
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
93 ```{r load test data}
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
94 library(tidyverse)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
95
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
96 # get OTU table (first column is the OTU/ASV ID)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
97 otu <- read_tsv(file.path(getwd(), "otu_input.tsv"))
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
98 # use first column as colname
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
99 otu2 <- otu %>% tibble::column_to_rownames(colnames(otu)[1])
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
100 otu <- otu_table(otu2, taxa_are_rows = FALSE)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
101
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
102 # get metadata table must have matching OTU/ASV ID in first column
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
103 meta <- read_tsv(file.path(getwd(), "metadata_input.tsv"))
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
104 # use first column as colname
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
105
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
106 meta2 <- meta %>% tibble::column_to_rownames(colnames(meta)[1])
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
107 control_column <- "control"
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
108
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
109 # convert 0/1 to bool for the control column and store in control column
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
110 meta2$control <- as.logical(meta2[[control_column]])
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
111 sampledata <- sample_data(meta2)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
112
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
113 # create dummy tax table (actually not needed,
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
114 # but nice to learn how to load phyloseq objects)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
115 taxmat <- as.data.frame(matrix(sample(letters, 10, replace = TRUE),
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
116 nrow = ncol(otu2), ncol = 7
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
117 ))
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
118 rownames(taxmat) <- colnames(otu2)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
119 tax <- tax_table(as.matrix(taxmat))
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
120
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
121 ps <- phyloseq(otu, tax, sampledata)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
122 ```
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
123
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
124 # plot 1
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
125
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
126 ```{r plot library size vs control}
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
127 # Put sample_data into a ggplot-friendly data.frame
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
128 df <- as.data.frame(sample_data(ps))
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
129 df$LibrarySize <- sample_sums(ps)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
130 df <- df[order(df$LibrarySize), ]
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
131 df$Index <- seq_len(nrow(df))
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
132 ggplot(data = df, aes(x = Index, y = LibrarySize, color = control)) +
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
133 geom_point()
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
134 ```
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
135
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
136 # plot 2
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
137
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
138 ```{r plot prevalence}
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
139 contamdf_prev <- isContaminant(ps,
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
140 method = "prevalence",
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
141 neg = "control",
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
142 threshold = 0.5
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
143 )
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
144 table(contamdf_prev$contaminant)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
145
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
146 ps_pa <- transform_sample_counts(ps, function(abund) 1 * (abund > 0))
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
147 ps_pa_neg <- prune_samples(sample_data(ps_pa)$control == TRUE, ps_pa)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
148 ps_pa_pos <- prune_samples(sample_data(ps_pa)$control == FALSE, ps_pa)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
149 # Make data_frame of prevalence in positive and negative samples
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
150 df_pa <- data.frame(
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
151 pa_pos = taxa_sums(ps_pa_pos), pa_neg = taxa_sums(ps_pa_neg),
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
152 contaminant = contamdf_prev$contaminant
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
153 )
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
154 ggplot(data = df_pa, aes(x = pa_neg, y = pa_pos, color = contaminant)) +
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
155 geom_point() +
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
156 xlab("Prevalence (Negative Controls)") +
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
157 ylab("Prevalence (True Samples)")
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
158 ```
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
159
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
160 # generate output
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
161
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
162 ```{r remove contams}
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
163 id_name <- colnames(otu)[1]
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
164
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
165 ps_noncontam <- prune_taxa(!contamdf_prev$contaminant, ps)
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
166
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
167 otu_table(ps_noncontam) %>%
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
168 as.data.frame() %>%
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
169 rownames_to_column(id_name) <- otu
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
170
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
171 write.table(otu,
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
172 file = file.path(getwd(), "otu_output.tsv"),
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
173 sep = "\t",
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
174 row.names = FALSE,
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
175 )
86da5c894956 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
176 ```