view phyloseq_plot_ordination.R @ 8:e2e61cbfc4c6 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/tools/phyloseq commit f4da777ab058fc6c39a26306849267c6933a883c
author iuc
date Mon, 02 Mar 2026 08:50:23 +0000
parents ad81e112f4d9
children
line wrap: on
line source

#!/usr/bin/env Rscript

suppressPackageStartupMessages(library("optparse"))
suppressPackageStartupMessages(library("phyloseq"))

option_list <- list(
    make_option(c("--input"), action = "store", dest = "input", help = "Input file containing a phyloseq object"),
    make_option(c("--method"), action = "store", dest = "method", help = "Ordination method"),
    make_option(c("--distance"), action = "store", dest = "distance", help = "Distance method"),
    make_option(c("--type"), action = "store", dest = "type", help = "Plot type"),
    make_option(c("--output"), action = "store", dest = "output", help = "Output")
)

parser <- OptionParser(usage = "%prog [options] file", option_list = option_list)
args <- parse_args(parser, positional_arguments = TRUE)
opt <- args$options
# Construct a phyloseq object.
phyloseq_obj <- readRDS(opt$input)
# Transform data to proportions as appropriate for
# Bray-Curtis distances.
proportions_obj <- transform_sample_counts(phyloseq_obj, function(otu) otu / sum(otu))
ordination_obj <- ordinate(proportions_obj, method = opt$method, distance = opt$distance)
# Start PDF device driver and generate the plot.
dev.new()
pdf(file = opt$output)
plot_ordination(proportions_obj, ordination_obj, type = opt$type)
dev.off()