Mercurial > repos > iuc > phyloseq_plot_bar
annotate phyloseq_from_dada2.R @ 0:ad81e112f4d9 draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
| author | iuc | 
|---|---|
| date | Tue, 03 Dec 2024 17:45:48 +0000 | 
| parents | |
| children | 
| rev | line source | 
|---|---|
| 
0
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
1 #!/usr/bin/env Rscript | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
2 | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
3 suppressPackageStartupMessages(library("optparse")) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
4 suppressPackageStartupMessages(library("phyloseq")) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
5 suppressPackageStartupMessages(library("tidyverse")) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
6 | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
7 option_list <- list( | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
8 make_option(c("--sequence_table"), action = "store", dest = "sequence_table", help = "Input sequence table"), | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
9 make_option(c("--taxonomy_table"), action = "store", dest = "taxonomy_table", help = "Input taxonomy table"), | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
10 make_option(c("--sample_table"), action = "store", default = NULL, dest = "sample_table", help = "Input sample table"), | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
11 make_option(c("--output"), action = "store", dest = "output", help = "RDS output") | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
12 ) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
13 | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
14 parser <- OptionParser(usage = "%prog [options] file", option_list = option_list) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
15 args <- parse_args(parser, positional_arguments = TRUE) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
16 opt <- args$options | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
17 # The input sequence_table is an integer matrix | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
18 # stored as tabular (rows = samples, columns = ASVs). | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
19 seq_table_numeric_matrix <- data.matrix(read.table(opt$sequence_table, header = T, sep = "\t", row.names = 1, check.names = FALSE)) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
20 # The input taxonomy_table is a table containing | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
21 # the assigned taxonomies exceeding the minBoot | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
22 # level of bootstrapping confidence. Rows correspond | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
23 # to sequences, columns to taxonomic levels. NA | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
24 # indicates that the sequence was not consistently | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
25 # classified at that level at the minBoot threshold. | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
26 tax_table_matrix <- as.matrix(read.table(opt$taxonomy_table, header = T, sep = "\t", row.names = 1, check.names = FALSE)) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
27 # Construct a tax_table object. The rownames of | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
28 # tax_tab must match the OTU names (taxa_names) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
29 # of the otu_table defined below. | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
30 tax_tab <- tax_table(tax_table_matrix) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
31 | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
32 # Construct an otu_table object. | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
33 otu_tab <- otu_table(seq_table_numeric_matrix, taxa_are_rows = TRUE) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
34 | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
35 # Construct a phyloseq object. | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
36 phyloseq_obj <- phyloseq(otu_tab, tax_tab) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
37 if (!is.null(opt$sample_table)) { | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
38 sample_tab <- sample_data( | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
39 read.table(opt$sample_table, header = T, sep = "\t", row.names = 1, check.names = FALSE) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
40 ) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
41 phyloseq_obj <- merge_phyloseq(phyloseq_obj, sample_tab) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
42 } | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
43 | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
44 # use short names for our ASVs and save the ASV sequences | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
45 # refseq slot of the phyloseq object as described in | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
46 # https://benjjneb.github.io/dada2/tutorial.html | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
47 dna <- Biostrings::DNAStringSet(taxa_names(phyloseq_obj)) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
48 names(dna) <- taxa_names(phyloseq_obj) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
49 phyloseq_obj <- merge_phyloseq(phyloseq_obj, dna) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
50 taxa_names(phyloseq_obj) <- paste0("ASV", seq(ntaxa(phyloseq_obj))) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
51 | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
52 print(phyloseq_obj) | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
53 | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
54 # save R object to file | 
| 
 
ad81e112f4d9
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/phyloseq commit 10dfb1308ff858c6623c7dd9215a3bdf518427f9
 
iuc 
parents:  
diff
changeset
 | 
55 saveRDS(phyloseq_obj, file = opt$output, compress = TRUE) | 
