annotate test-data/decontam_Rscript.Rmd @ 3:4a72acf1cd75 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:23 +0000
parents 6621beb8bf3e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
1 ---
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
2 title: "decontam_docs"
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
3 output: html_document
6621beb8bf3e 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"
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
5 ---
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
6
6621beb8bf3e 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
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
8
6621beb8bf3e 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}
6621beb8bf3e 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)
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
11 ```
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
12
6621beb8bf3e 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
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
14
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
15 ```{bash install}
6621beb8bf3e 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
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
17 mamba activate decontam
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
18 rstudio
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
19 ```
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
20
6621beb8bf3e 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
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
22
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
23 ```{r home}
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
24 R.home()
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
25 ```
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
26
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
27 ## Get test data
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
28
6621beb8bf3e 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.
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
30
6621beb8bf3e 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}
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
32 R.home()
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
33 library(phyloseq)
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
34 packageVersion("phyloseq")
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
35 library(ggplot2)
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
36 packageVersion("ggplot2")
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
37 library(decontam)
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
38 packageVersion("decontam")
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
39
6621beb8bf3e 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"))
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
41
6621beb8bf3e 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.
6621beb8bf3e 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
6621beb8bf3e 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`)
6621beb8bf3e 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,
6621beb8bf3e 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
6621beb8bf3e 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, ...) {
6621beb8bf3e 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)
6621beb8bf3e 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, ...)
6621beb8bf3e 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)
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
51 return(ps)
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
52 }
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
53
6621beb8bf3e 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
6621beb8bf3e 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)
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
56
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
57 ## ps
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
58 # get otu table
6621beb8bf3e 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")
6621beb8bf3e 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)
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
61
6621beb8bf3e 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
6621beb8bf3e 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"
6621beb8bf3e 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
6621beb8bf3e 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)
6621beb8bf3e 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)
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
67
6621beb8bf3e 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")
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
69 head(metadata, 1000)
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
70
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
71 # store test data
6621beb8bf3e 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,
6621beb8bf3e 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
6621beb8bf3e 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
6621beb8bf3e 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),
6621beb8bf3e 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"),
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
77 sep = "\t",
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
78 row.names = FALSE,
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
79 quote = FALSE
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
80 )
6621beb8bf3e 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),
6621beb8bf3e 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"),
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
83 sep = "\t",
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
84 row.names = FALSE,
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
85 quote = FALSE
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
86 )
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
87
6621beb8bf3e 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"))
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
89 ```
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
90
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
91 ## Load test data
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
92
6621beb8bf3e 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}
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
94 library(tidyverse)
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
95
6621beb8bf3e 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)
6621beb8bf3e 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"))
6621beb8bf3e 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
6621beb8bf3e 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])
6621beb8bf3e 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)
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
101
6621beb8bf3e 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
6621beb8bf3e 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"))
6621beb8bf3e 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
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
105
6621beb8bf3e 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])
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
107 control_column <- "control"
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
108
6621beb8bf3e 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
6621beb8bf3e 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]])
6621beb8bf3e 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)
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
112
6621beb8bf3e 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,
6621beb8bf3e 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)
6621beb8bf3e 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),
6621beb8bf3e 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
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
117 ))
6621beb8bf3e 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)
6621beb8bf3e 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))
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
120
6621beb8bf3e 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)
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
122 ```
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
123
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
124 # plot 1
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
125
6621beb8bf3e 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}
6621beb8bf3e 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
6621beb8bf3e 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))
6621beb8bf3e 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)
6621beb8bf3e 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), ]
6621beb8bf3e 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))
6621beb8bf3e 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)) +
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
133 geom_point()
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
134 ```
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
135
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
136 # plot 2
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
137
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
138 ```{r plot prevalence}
6621beb8bf3e 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,
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
140 method = "prevalence",
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
141 neg = "control",
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
142 threshold = 0.5
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
143 )
6621beb8bf3e 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)
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
145
6621beb8bf3e 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))
6621beb8bf3e 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)
6621beb8bf3e 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)
6621beb8bf3e 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
6621beb8bf3e 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(
6621beb8bf3e 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),
6621beb8bf3e 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
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
153 )
6621beb8bf3e 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)) +
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
155 geom_point() +
6621beb8bf3e 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)") +
6621beb8bf3e 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)")
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
158 ```
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
159
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
160 # generate output
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
161
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
162 ```{r remove contams}
6621beb8bf3e 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]
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
164
6621beb8bf3e 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)
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
166
6621beb8bf3e 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) %>%
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
168 as.data.frame() %>%
6621beb8bf3e 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
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
170
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
171 write.table(otu,
6621beb8bf3e 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"),
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
173 sep = "\t",
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
174 row.names = FALSE,
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
175 )
6621beb8bf3e planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/decontam commit 9e0ce6d02ee71d5b974ef615b1c5286bc45d8e6b
iuc
parents:
diff changeset
176 ```