Commit 12984ab9 authored by Konrad Zych's avatar Konrad Zych

fixing BioC conflicts

parents 5748a3e2 b92a2513
......@@ -10,3 +10,7 @@ SIAMCAT.RProj
*.DS_Store*
inst/doc
*.pdf
<<<<<<< HEAD
=======
>>>>>>> upstream/master
......@@ -2,31 +2,32 @@ Package: SIAMCAT
Type: Package
Title: Statistical Inference of Associations between Microbial
Communities And host phenoTypes
Version: 1.0.1
Authors@R: c(person("Konrad", "Zych", role = c("aut", "cre"),
email = "konrad.zych@embl.de",
Version: 1.1.0
Authors@R: c(person("Georg", "Zeller", role = c("aut"),
email = "zeller@embl.de",
comment = c(ORCID = "0000-0003-1429-7485")),
person("Konrad", "Zych", role = c("aut", "cre"),
email = "konrad.zych@embl.de",
comment = c(ORCID = "0000-0001-7426-0516")),
person("Jakob", "Wirbel", role = c("aut"),
email = "jakob.wirbel@embl.de",
person("Jakob", "Wirbel", role = c("aut"),
email = "jakob.wirbel@embl.de",
comment = c(ORCID = "0000-0002-4073-3562")),
person("Georg", "Zeller", role = c("aut"),
email = "zeller@embl.de",
comment = c(ORCID = "0000-0003-1429-7485")),
person("Morgan", "Essex",
person("Morgan", "Essex",
email = "morgan.essex@embl.de", role = c("ctb")),
person("Nicolai", "Karcher", role = c("ctb")),
person("Kersten", "Breuer", role = c("ctb")))
Description: Pipeline for Statistical Inference of Associations between
Microbial Communities And host phenoTypes (SIAMCAT). A primary goal
of analyzing microbiome data is to determine changes in community
composition that are associated with environmental factors. In particular,
linking human microbiome composition to host phenotypes such as diseases
has become an area of intense research. For this, robust statistical
modeling and biomarker extraction toolkits are crucially needed. SIAMCAT
provides a full pipeline supporting data preprocessing, statistical
association testing, statistical modeling (LASSO logistic regression)
including tools for evaluation and interpretation of these models (such as
cross validation, parameter selection, ROC analysis and diagnostic
Description: Pipeline for Statistical Inference of Associations between
Microbial Communities And host phenoTypes (SIAMCAT). A primary goal
of analyzing microbiome data is to determine changes in community
composition that are associated with environmental factors. In particular,
linking human microbiome composition to host phenotypes such as diseases
has become an area of intense research. For this, robust statistical
modeling and biomarker extraction toolkits are crucially needed. SIAMCAT
provides a full pipeline supporting data preprocessing, statistical
association testing, statistical modeling (LASSO logistic regression)
including tools for evaluation and interpretation of these models (such as
cross validation, parameter selection, ROC analysis and diagnostic
model plots).
Depends:
R (>= 3.5.0),
......@@ -47,16 +48,12 @@ Imports:
pROC,
PRROC,
RColorBrewer,
scales,
stats,
stringr,
utils,
infotheo,
corrplot
utils
License: GPL-3
LazyData: true
RoxygenNote: 6.1.0
biocViews: Metagenomics, Classification, Microbiome, Sequencing, Preprocessing,
RoxygenNote: 6.0.1.9000
biocViews: Metagenomics, Classification, Microbiome, Sequencing, Preprocessing,
Clustering, FeatureExtraction, GeneticVariability, MultipleComparison,
Regression
Suggests:
......
# Generated by roxygen2: do not edit by hand
<<<<<<< HEAD
export("associations<-")
export("data_split<-")
export("eval_data<-")
......@@ -8,11 +9,21 @@ export("label<-")
export("meta<-")
export("model_list<-")
export("norm_feat<-")
=======
export("data_split<-")
export("eval_data<-")
export("features<-")
export("label<-")
export("meta<-")
export("model_list<-")
export("norm_param<-")
>>>>>>> upstream/master
export("orig_feat<-")
export("physeq<-")
export("pred_matrix<-")
export(accessSlot)
export(add.meta.pred)
<<<<<<< HEAD
export(assoc_param)
export(associations)
export(check.associations)
......@@ -30,6 +41,19 @@ export(filter.features)
export(filter.label)
export(get.filt_feat.matrix)
export(get.norm_feat.matrix)
=======
export(check.associations)
export(check.confounders)
export(create.data.split)
export(create.label.from.metadata)
export(data_split)
export(eval_data)
export(evaluate.predictions)
export(features)
export(filter.features)
export(filter.label)
export(get.features.matrix)
>>>>>>> upstream/master
export(get.orig_feat.matrix)
export(label)
export(make.predictions)
......@@ -39,12 +63,17 @@ export(model.interpretation.plot)
export(model_list)
export(model_type)
export(models)
<<<<<<< HEAD
export(norm_feat)
export(norm_params)
=======
export(norm_param)
>>>>>>> upstream/master
export(normalize.features)
export(orig_feat)
export(physeq)
export(pred_matrix)
<<<<<<< HEAD
export(read.label)
export(read.lefse)
export(select.samples)
......@@ -62,6 +91,20 @@ exportClasses(filt_feat)
exportClasses(label)
exportClasses(model_list)
exportClasses(norm_feat)
=======
export(read.features)
export(read.labels)
export(read.meta)
export(reset.features)
export(select.samples)
export(siamcat)
export(train.model)
export(validate.data)
exportClasses(data_split)
exportClasses(eval_data)
exportClasses(label)
exportClasses(model_list)
>>>>>>> upstream/master
exportClasses(pred_matrix)
exportClasses(siamcat)
import(LiblineaR)
......@@ -76,8 +119,11 @@ importFrom(ParamHelpers,makeParamSet)
importFrom(RColorBrewer,brewer.pal)
importFrom(RColorBrewer,brewer.pal.info)
importFrom(beanplot,beanplot)
<<<<<<< HEAD
importFrom(corrplot,colorlegend)
importFrom(corrplot,corrplot)
=======
>>>>>>> upstream/master
importFrom(grDevices,col2rgb)
importFrom(grDevices,colorRampPalette)
importFrom(grDevices,dev.off)
......@@ -115,14 +161,18 @@ importFrom(grid,pushViewport)
importFrom(gridBase,baseViewports)
importFrom(gridExtra,grid.table)
importFrom(gridExtra,ttheme_minimal)
<<<<<<< HEAD
importFrom(infotheo,condentropy)
importFrom(infotheo,discretize)
=======
>>>>>>> upstream/master
importFrom(matrixStats,colRanks)
importFrom(matrixStats,rowMaxs)
importFrom(matrixStats,rowMedians)
importFrom(matrixStats,rowQuantiles)
importFrom(matrixStats,rowSds)
importFrom(pROC,roc)
<<<<<<< HEAD
importFrom(scales,alpha)
importFrom(stats,addmargins)
importFrom(stats,binomial)
......@@ -132,23 +182,39 @@ importFrom(stats,confint)
importFrom(stats,cor)
importFrom(stats,fisher.test)
importFrom(stats,glm)
=======
importFrom(stats,addmargins)
importFrom(stats,coefficients)
importFrom(stats,cor)
importFrom(stats,fisher.test)
>>>>>>> upstream/master
importFrom(stats,median)
importFrom(stats,na.omit)
importFrom(stats,p.adjust)
importFrom(stats,predict)
<<<<<<< HEAD
importFrom(stats,profile)
=======
>>>>>>> upstream/master
importFrom(stats,qqplot)
importFrom(stats,quantile)
importFrom(stats,rnorm)
importFrom(stats,runif)
importFrom(stats,sd)
importFrom(stats,wilcox.test)
<<<<<<< HEAD
importFrom(stringr,str_extract_all)
importFrom(utils,askYesNo)
importFrom(utils,head)
importFrom(utils,read.csv)
=======
importFrom(utils,head)
>>>>>>> upstream/master
importFrom(utils,read.table)
importFrom(utils,setTxtProgressBar)
importFrom(utils,tail)
importFrom(utils,txtProgressBar)
<<<<<<< HEAD
importFrom(utils,write.table)
=======
>>>>>>> upstream/master
#!/usr/bin/Rscript
### SIAMCAT - Statistical Inference of Associations between
### Microbial Communities And host phenoTypes R flavor EMBL
### Heidelberg 2012-2018 GNU GPL 3.0
#' @title Perform unsupervised feature filtering.
#'
#' @description This function performs unsupervised feature filtering. Features
#' can be filtered based on abundance or prevalence. Additionally,
#' unmapped reads may be removed.
#'
#' @usage filter.features(siamcat, filter.method = "abundance",
#' cutoff = 0.001, recomp.prop = FALSE, rm.unmapped = TRUE, verbose = 1)
#'
#' @param siamcat an object of class \link{siamcat-class}
#'
#' @param filter.method method used for filtering the features, can be one of
#' these: \code{c('abundance', 'cum.abundance', 'prevalence')},
#' defaults to \code{'abundance'}
#'
#' @param cutoff float, abundace or prevalence cutoff, default to \code{0.001}
#'
#' @param recomp.prop boolean, should relative abundances be recomputed?,
#' defaults to \code{FALSE}
#'
#' @param rm.unmapped boolean, should unmapped reads be discarded?, defaults to
#' \code{TRUE}
#'
#' @param verbose control output: \code{0} for no output at all, \code{1}
#' for only information about progress and success, \code{2} for normal
#' level of information and \code{3} for full debug information,
#' defaults to \code{1}
#'
#' @keywords SIAMCAT filter.features
#'
#' @details This function filters the features in a \link{siamcat-class}
#' object in a unsupervised manner.
#'
#' The different filter methods work in the following way: \itemize{
#' \item \code{'abundace'} remove features whose abundance is never
#' above the threshold value in any of the samples
#' \item \code{'cum.abundance'} remove features with very low abundance
#' in all samples i.e. ones that are never among the most abundant
#' entities that collectively make up (1-cutoff) of the reads in
#' any sample
#' \item \code{'prevalence'} remove features with low prevalence across
#' samples i.e. ones that are 0 (undetected) in more than (1-cutoff)
#' proportion of samples.
#' }
#' @export
#'
#' @return siamcat an object of class \link{siamcat-class}
#'
#' @examples
#' # Example dataset
#' data(siamcat_example)
#' # since the whole pipeline has been run in the example data, the feature
#' # were filtered already.
#' siamcat_example <- reset.features(siamcat_example)
#'
#' # Simple examples
#' siamcat_filtered <- filter.features(siamcat_example,
#' filter.method='abundance',
#' cutoff=1e-03)
#'
filter.features <- function(siamcat,
filter.method = "abundance",
cutoff = 0.001,
recomp.prop = FALSE,
rm.unmapped = TRUE,
verbose = 1) {
### this statement does not have the purpose to calculate relative
### abundances on the fly and return them. Instead, it's purpose is to be
### able to calculate f.idx (specifying the indices of features which are
### to be kept) when feature list has already been transformed to relative
### abundances, but e.g. certain features have been removed manually.
if (verbose > 1)
message("+ starting filter.features")
s.time <- proc.time()[3]
if (!filter.method %in% c("abundance", "cum.abundace", "prevalence")) {
stop("! Unrecognized filter.method, exiting!\n")
}
if (verbose > 1)
message(paste(
"+++ before filtering, the data has",
nrow(features(siamcat)),
"features"
))
if (recomp.prop) {
# recompute relative abundance values (proportions)
ra.feat <- prop.table(features(siamcat), 2)
features(siamcat) <-
otu_table(ra.feat, taxa_are_rows = TRUE)
} else {
ra.feat <- get.features.matrix(siamcat)
}
### apply filters
if (verbose > 2)
message(paste("+++ applying", filter.method, "filter"))
if (filter.method == "abundance") {
# remove features whose abundance is never above the threshold value
# (e.g. 0.5%) in any of the samples
f.max <- rowMaxs(ra.feat)
f.idx <- which(f.max >= cutoff)
} else if (filter.method == "cum.abundance") {
# remove features with very low abundance in all samples i.e. ones that
# are never among the most abundant entities that collectively make up
# (1-cutoff) of the reads in any sample
f.idx <- vector("numeric", 0)
# sort features per sample and apply cumsum to identify how many
# collectively have weight K
for (s in seq_len(ncol(ra.feat))) {
srt <- sort(ra.feat[, s], index.return = TRUE)
cs <- cumsum(srt$x)
m <- max(which(cs < cutoff))
f.idx <- union(f.idx, srt$ix[-(seq_len(m))])
}
# an index of those features that collectively make up more than 1-K of
# the read mass in any sample
f.idx <- sort(f.idx)
} else if (filter.method == "prevalence") {
# remove features with low prevalence across samples i.e. ones that are
# 0 (undetected) in more than (1-cutoff)
# proportion of samples
f.idx <-
which(rowSums(ra.feat > 0) / ncol(ra.feat) > cutoff)
}
if (verbose > 2)
message("+++ checking for unmapped reads")
### postprocessing and output generation
if (rm.unmapped) {
# remove 'unmapped' feature
names.unmapped <- c(
"UNMAPPED",
"-1",
"X.1",
"unmapped",
"UNCLASSIFIED",
"unclassified",
"UNASSIGNED",
"unassigned"
)
unm.idx <- rownames(features(siamcat)) %in% names.unmapped
if (any(unm.idx)) {
f.idx <- f.idx[-which(f.idx %in% unm.idx)]
if (verbose > 2)
message(paste(
"+++ removing",
rownames(features(siamcat))[unm.idx],
"as unmapped reads"
))
if (verbose > 1)
message(paste(
"+++ removed",
sum(unm.idx),
"features corresponding to UNMAPPED reads"
))
} else {
if (verbose > 1)
message(
"+++ tried to remove unmapped reads, but could not find
them. Continue anyway."
)
}
}
if (verbose > 2)
message("+++ applying prune_taxa")
if (verbose > 1)
message(
paste0(
"+++ removed ",
nrow(features(siamcat)) - length(f.idx) - sum(unm.idx),
" features whose values did not exceed",
cutoff,
" in any sample (retaining ",
length(f.idx),
")"
)
)
f.names <- rownames(features(siamcat))[f.idx]
physeq(siamcat) <-
prune_taxa(x = physeq(siamcat), taxa = f.names)
e.time <- proc.time()[3]
if (verbose > 1)
message(paste(
"+ finished filter.features in",
formatC(e.time - s.time, digits = 3),
"s"
))
if (verbose == 1)
message("Features successfully filtered")
return(siamcat)
}
This diff is collapsed.
# SIAMCAT - Statistical Inference of Associations between Microbial Communities And host phenoType
## Overview
<<<<<<< HEAD
`SIAMCAT` is part of the suite of computational microbiome analysis tools
hosted at [EMBL](https://www.embl.org) by the groups of
[Peer Bork](https://www.embl.de/research/units/scb/bork/index.html) and
......@@ -44,3 +45,127 @@ Zeller G (2018). _SIAMCAT: Statistical Inference of Associations between Microbi
Communities And host phenoTypes_. doi: 10.18129/B9.bioc.SIAMCAT (URL:
http://doi.org/10.18129/B9.bioc.SIAMCAT), R package version 1.0.1, <URL:
https://bioconductor.org/packages/SIAMCAT/>.
=======
SIAMCAT is a pipeline for Statistical Inference of Associations between Microbial Communities And host phenoTypes.
A primary goal of analyzing microbiome data is to determine changes in community composition that are associated with
environmental factors. In particular, linking human microbiome composition to host phenotypes such as diseases has
become an area of intense research. For this, robust statistical modeling and biomarker extraction toolkits are crucially
needed.
SIAMCAT provides a full pipeline supporting data preprocessing, statistical association testing, statistical
modeling (LASSO logistic regression) including tools for evaluation and interpretation of these models (such as cross
validation, parameter selection, ROC analysis and diagnostic model plots).
SIAMCAT is available in three different flavors:
+ Galaxy web server
+ command line tool
+ R package
Please see the Support Section if you run into problems when using SIAMCAT.
## Input data format
The input data should be organized in the same way for every version of SIAMCAT. All files are in tab-separated column format
+ **Label data**: First row is expected to be `#BINARY:1=[label for cases];-1=[label for controls]`
Second row should contain the sample identifiers as tab-separated list (consistent with feature and metadata).
Third row is expected to contain the actual class labels (tab-separated), e.g. `1` for each case and `-1` for each
control.
Note: Labels can take other numeric values (but not characters or strings); importantly, the label for cases has to
be greater than the one for controls.
+ **Feature matrix**: _features_ (in rows) _x samples_ (in columns)
First row should contain sample labels (consistent with label data), while the first column should contain feature
labels (e.g. taxonomic identifiers). The remaining entries are expected to be real values >= 0 that quantify the
abundance of each feature in each sample.
+ **Metadata** (optional): _samples_ (in rows) _x metadata_ (in columns)
Metadata needs to be converted to numerical values by the user (This is necessary for heatmap displays)!
## Galaxy interface:
The Galaxy interface can be found here: http://siamcat.embl.de/
### Galaxy in brief
+ **Left panel**: `TOOLS` lists available analysis modules.
Click to choose which ones you'd like to run.
+ **Right panel**: `HISTORY` keeps track of every analysis step you have perfomed.
+ Click on the "eye" icon to view data, or click on the "floppy disk" icon to download results
+ If something goes wrong the "i" icon can provide useful details
+ the "circular arrows" icon allows to rerun a job
+ you can delete analysis steps from your history using the "x" icon
+ **Central panel**: `ANALYZE DATA` allows to specify input data sets and parameters for each analysis module
Additional info: https://usegalaxy.org/ (in particular the Help menu) and
https://wiki.galaxyproject.org/Learn
### Getting started with Galaxy
Start by uploading your data (see above for input data formats) using the `DATA IMPORT / Import Data module / Upload File`
Then procede by executing all SIAMCAT modules in order (from A to I).
See example history / Workflow as well as each module's description for specific information on input and output data
## Commandline version
The commandline version are a collection of modules implemented in R which are called via a bash script.
+ Stable version: https://github.com/gezel/siamcat/
+ Developmental version (only available inside the EMBL intranet): `beta:/g/bork4/zeller/dev/siamcat`
```
# type
git clone beta:/g/bork4/zeller/dev/siamcat
# in the folder in which you'd like to clone the siamcat repository
```
R packages required to run SIAMCAT:
```R
install.packages('optparse')
install.packages('LiblineaR')
install.packages('pROC')
install.packages('colorRamps')
install.packages('RColorBrewer')
install.packages('beanplot')
```
### Using the Commandline version
...COMING SOON...
## R package
The SIAMCAT R package ...COMING SOON...
### Using the R package
...COMING SOON...
## Support
Google user group for support:
https://groups.google.com/d/forum/siamcat-users
### Known issues
Examples are weighted differently between classes (a remnant of our colorectal cancer
microbiome study). Fixed in Galaxy, will be pushed to GitHub soon.
Class labels are somehow swapped in the LASSO module, so that prediction scores are 1 - p
instead of p (posterior probability), consequently precision-recall curves are incorrect,
but ROC-curves are unaffected. Appears to only occur in a recent version of R and/or the
LiblineaR package; will be fixed with high priority.
### Contact
Please let me know if you run into any issues (mailto: zeller@embl.de)
>>>>>>> upstream/master
#BINARY:1=cancer;-1=healthy
CCIS27304052ST-3-0 CCIS15794887ST-4-0 CCIS74726977ST-3-0 CCIS16561622ST-4-0 CCIS79210440ST-3-0 CCIS82507866ST-3-0 CCIS98482370ST-3-0 CCIS00281083ST-3-0 CCIS32452666ST-4-0 CCIS94417875ST-3-0 CCIS51667829ST-4-0 CCIS27927933ST-4-0 CCIS45571137ST-3-0 CCIS81139242ST-4-0 CCIS21126322ST-4-0 CCIS17669415ST-4-0 CCIS44676181ST-4-0 CCIS29210128ST-4-0 CCIS48725289ST-4-0 CCIS64785924ST-20-0 CCIS03473770ST-4-0 CCIS10706551ST-3-0 CCIS64773582ST-4-0 CCIS06260551ST-3-0 CCIS40244499ST-3-0 CCIS85214191ST-3-0 CCIS08668806ST-3-0 CCIS50369211ST-20-0 CCIS87167916ST-4-0 CCIS94496512ST-4-0 CCIS58234805ST-4-0 CCIS91228662ST-4-0 CCIS71301801ST-4-0 CCIS24898163ST-4-0 CCIS53355328ST-4-0 CCIS41222843ST-4-0 CCIS81887263ST-4-0 CCIS29688262ST-20-0 CCIS87116798ST-4-0 CCIS87605453ST-4-0 CCIS83870198ST-4-0 CCIS61287323ST-4-0 CCIS11362406ST-4-0 CCIS14449628ST-4-0 CCIS21278152ST-4-0 CCIS25399172ST-4-0 CCIS34055159ST-4-0 CCIS76845094ST-20-0 CCIS41548810ST-4-0 CCIS98512455ST-4-0 CCIS83445808ST-4-0 CCIS37250421ST-4-0 CCIS35092938ST-4-0 CCIS50148151ST-4-0 CCIS62605362ST-3-0 CCIS87252800ST-4-0 CCIS22958137ST-20-0 CCIS48507077ST-4-0 CCIS32105356ST-4-0 CCIS81710917ST-20-0 CCIS16326685ST-4-0 CCIS53043478ST-4-0 CCIS98832363ST-4-0 CCIS02124300ST-4-0 CCIS44743950ST-4-0 CCIS10793554ST-4-0 CCIS59132091ST-4-0 CCIS96387239ST-4-0 CCIS82146115ST-4-0 CCIS31434951ST-20-0 CCIS33816588ST-4-0 CCIS12656533ST-4-0 CCIS41806458ST-4-0 CCIS53557295ST-4-0 CCIS47284573ST-4-0 CCIS76563044ST-4-0 CCIS93040568ST-20-0 CCIS45793747ST-4-0 CCIS95097901ST-4-0 CCIS80834637ST-4-0 CCIS63910149ST-4-0 CCIS84543192ST-4-0 CCIS38765456ST-20-0 CCIS82944710ST-20-0 CCIS55230578ST-4-0 CCIS24254057ST-4-0 CCIS78318719ST-4-0 CCIS44757994ST-4-0 CCIS65479369ST-4-0 CCIS62794166ST-4-0 CCIS77252613ST-4-0 CCIS11015875ST-4-0 CCIS55531770ST-4-0 CCIS70398272ST-4-0 CCIS35100175ST-4-0 CCIS22416007ST-4-0 CCIS41288781ST-4-0 CCIS59903910ST-4-0 CCIS12370844ST-4-0 CCIS72607085ST-4-0 CCIS46047672ST-4-0 CCIS22906510ST-20-0 CCIS52370277ST-4-0 CCIS02379307ST-4-0 CCIS48579360ST-4-0 CCIS46467422ST-4-0 CCIS54027808ST-4-0 CCIS15704761ST-4-0 CCIS11558985ST-4-0 CCIS13047523ST-4-0 CCIS94603952ST-4-0 CCIS02856720ST-4-0 CCIS07648107ST-4-0 CCIS34604008ST-4-0 CCIS63468405ST-4-0 CCIS16383318ST-4-0 CCIS36699628ST-4-0 CCIS95409808ST-4-0 CCIS74239020ST-4-0 CCIS05314658ST-4-0 CCIS71578391ST-4-0 CCIS50003399ST-4-0 CCIS36797902ST-4-0 CCIS11354283ST-4-0 CCIS50471204ST-4-0 CCIS20795251ST-4-0 CCIS07277498ST-4-0 CCIS90164298ST-4-0 CCIS23164343ST-4-0 CCIS03857607ST-4-0 CCIS63448910ST-4-0 CCIS88007743ST-4-0 CCIS51595129ST-4-0 CCIS09568613ST-4-0 CCIS07539127ST-4-0 CCIS41692898ST-4-0 CCIS44093303ST-4-0 CCIS00146684ST-4-0 CCIS78100604ST-4-0 CCIS48174381ST-4-0 CCIS88317640ST-4-0
-1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 -1 1 -1 -1 -1 -1 1 1 1 -1 -1 1 -1 1 1 1 -1 1 1 1 -1 1 1 1 1 -1 1 1 -1 1 1 1 1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 -1 -1 -1 1 -1 1 -1 1 1 -1 -1 1 -1 -1 -1 -1 -1 -1 1 1 -1 1 1 1 1 1 1 1 1 -1 -1 1 1 1 -1 1 1 1 -1 1 1 -1 1 -1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
age gender bmi diagnosis localization crc_stage fobt wif_test
CCIS27304052ST-3-0 52 1 20 0 NA 0 0 0
CCIS15794887ST-4-0 37 1 18 0 NA 0 0 0
CCIS74726977ST-3-0 66 2 24 1 NA 0 0 NA
CCIS16561622ST-4-0 54 2 26 0 NA 0 0 0
CCIS79210440ST-3-0 65 2 30 0 NA 0 1 0
CCIS82507866ST-3-0 57 2 24 0 NA 0 0 0
CCIS98482370ST-3-0 53 1 30 0 NA 0 0 0
CCIS00281083ST-3-0 53 2 32 0 NA 0 0 0
CCIS32452666ST-4-0 68 2 26 0 NA 0 0 0
CCIS94417875ST-3-0 59 1 25 0 NA 0 0 0
CCIS51667829ST-4-0 63 2 26 1 2 0 0 0
CCIS27927933ST-4-0 72 2 24 0 NA 0 0 0
CCIS45571137ST-3-0 55 1 20 0 NA 0 0 0
CCIS81139242ST-4-0 64 1 20 0 NA 0 0 0
CCIS21126322ST-4-0 59 2 25 0 NA 0 0 0
CCIS17669415ST-4-0 72 1 37 5 1 1 0 1
CCIS44676181ST-4-0 48 1 21 1 4 0 0 0
CCIS29210128ST-4-0 64 2 27 0 NA 0 0 0
CCIS48725289ST-4-0 62 1 21 5 3 1 1 0
CCIS64785924ST-20-0 59 1 25 0 NA 0 0 0
CCIS03473770ST-4-0 29 2 24 0 NA 0 0 0
CCIS10706551ST-3-0 25 2 24 0 NA 0 0 0
CCIS64773582ST-4-0 63 1 23 0 NA 0 0 0
CCIS06260551ST-3-0 58 2 24 5 1 4 0 1
CCIS40244499ST-3-0 87 1 32 5 2 2 0 0
CCIS85214191ST-3-0 63 2 22 5 2 4 1 1
CCIS08668806ST-3-0 63 2 26 1 1 0 0 0
CCIS50369211ST-20-0 53 1 33 1 2 0 0 0
CCIS87167916ST-4-0 79 2 30 5 4 4 1 0
CCIS94496512ST-4-0 64 2 28 1 4 0 0 0
CCIS58234805ST-4-0 70 1 26 5 1 3 1 1
CCIS91228662ST-4-0 63 2 31 5 1 1 0 1
CCIS71301801ST-4-0 50 1 24 5 4 1 1 1
CCIS24898163ST-4-0 59 2 31 1 4 0 0 0
CCIS53355328ST-4-0 76 2 NA 5 1 1 1 1
CCIS41222843ST-4-0 73 1 24 5 1 3 0 0
CCIS81887263ST-4-0 59 2 27 5 4 1 1 1
CCIS29688262ST-20-0 50 2 25 0 NA 0 0 1
CCIS87116798ST-4-0 85 1 20 5 1 4 0 0
CCIS87605453ST-4-0 73 1 26 5 2 2 1 0
CCIS83870198ST-4-0 48 1 24 5 1 1 0 0
CCIS61287323ST-4-0 76 2 25 5 4 2 1 0
CCIS11362406ST-4-0 44 1 26 0 NA 0 0 0
CCIS14449628ST-4-0 59 1 20 5 2 3 0 1
CCIS21278152ST-4-0 63 2 25 5 3 2 1 0
CCIS25399172ST-4-0 60 2 27 1 1 0 0 0
CCIS34055159ST-4-0 80 2 29 5 1 1 1 1
CCIS76845094ST-20-0 44 2 20 5 2 4 1 0
CCIS41548810ST-4-0 78 2 19 5 1 4 1 0
CCIS98512455ST-4-0 63 2 29 5 2 4 0 0
CCIS83445808ST-4-0 66 2 29 1 3 0 0 0
CCIS37250421ST-4-0 59 1 21 1 4 0 1 0
CCIS35092938ST-4-0 62 1 21 1 2 0 0 0
CCIS50148151ST-4-0 87 1 15 5 2 3 0 0
CCIS62605362ST-3-0 56 1 23 5 2 2 1 0
CCIS87252800ST-4-0 73 2 17 5 3 1 0 1
CCIS22958137ST-20-0 60 2 26 5 2 4 1 0
CCIS48507077ST-4-0 72 1 32 1 3 0 0 0
CCIS32105356ST-4-0 53 2 30 1 NA 0 0 0
CCIS81710917ST-20-0 49 2 20 1 4 0 0 0
CCIS16326685ST-4-0 46 1 29 0 NA 0 0 0
CCIS53043478ST-4-0 72 2 22 5 1 4 1 1
CCIS98832363ST-4-0 55 1 25 5 1 3 1 0
CCIS02124300ST-4-0 35 2 23 0 NA 0 0 0
CCIS44743950ST-4-0 66 2 22 1 2 0 0 0
CCIS10793554ST-4-0 64 2 26 1 2 0 0 0
CCIS59132091ST-4-0 80 1 23 5 1 1 0 0
CCIS96387239ST-4-0 66 2 20 1 1 0 0 0
CCIS82146115ST-4-0 51 2 24 5 2 4 0 0
CCIS31434951ST-20-0 66 2 24 1 1 0 0 0
CCIS33816588ST-4-0 64 2 21 5 1 3 1 1
CCIS12656533ST-4-0 51 2 30 5 4 4 0 0
CCIS41806458ST-4-0 59 1 NA 1 1 0 1 0
CCIS53557295ST-4-0 45 2 24 1 3 0 0 0
CCIS47284573ST-4-0 67 2 25 5 4 3 1 0
CCIS76563044ST-4-0 68 2 36 1 2 0 0 0
CCIS93040568ST-20-0 65 2 30 0 NA 0 0 0
CCIS45793747ST-4-0 67 2 25 0 NA 0 0 0
CCIS95097901ST-4-0 52 2 24 0 NA 0 0 0
CCIS80834637ST-4-0 60 1 28 0 NA 0 0 0
CCIS63910149ST-4-0 49 1 23 0 NA 0 0 0
CCIS84543192ST-4-0 45 1 28 5 4 1 1 0
CCIS38765456ST-20-0 79 1 22 5 1 4 1 1
CCIS82944710ST-20-0 38 1 22 0 NA 0 0 0
CCIS55230578ST-4-0 64 2 30 5 2 4 0 0
CCIS24254057ST-4-0 69 1 24 5 2 4 0 0
CCIS78318719ST-4-0 69 1 30 5 2 2 0 0
CCIS44757994ST-4-0 75 2 37 5 1 3 0 1
CCIS65479369ST-4-0 69 1 25 5 2 4 1 1
CCIS62794166ST-4-0 68 2 23 5 1 4 0 NA
CCIS77252613ST-4-0 65 2 26 5 1 1 1 1
CCIS11015875ST-4-0 62 2 26 5 4 3 1 0
CCIS55531770ST-4-0 45 1 24 1 3 0 0 0
CCIS70398272ST-4-0 55 2 24 1 2 0 0 0
CCIS35100175ST-4-0 73 2 40 5 1 1 0 0
CCIS22416007ST-4-0 82 2 24 5 1 4 0 0
CCIS41288781ST-4-0 74 1 19 5 2 2 0 0
CCIS59903910ST-4-0 76 1 34 1 2 0 0 0
CCIS12370844ST-4-0 81 1 39 5 4 1 1 1
CCIS72607085ST-4-0 74 1 26 5 1 4 0 0
CCIS46047672ST-4-0 65 2 24 5 1 4 0 1
CCIS22906510ST-20-0 77 2 23 1 3 0 1 0
CCIS52370277ST-4-0 53 2 25 5 1 4 0 1
CCIS02379307ST-4-0 67 2 28 5 2 1 1 1
CCIS48579360ST-4-0 52 1 23 1 4 0 0 0
CCIS46467422ST-4-0 54 1 22 5 2 3 0 1
CCIS54027808ST-4-0 52 2 33 1 1 0 1 0
CCIS15704761ST-4-0 56 1 NA 5 3 4 0 NA
CCIS11558985ST-4-0 56 1 NA 0 NA 0 0 NA
CCIS13047523ST-4-0 70 2 22 0 NA 0 0 0
CCIS94603952ST-4-0 80 1 21 0 NA 0 0 0
CCIS02856720ST-4-0 74 2 27 0 NA 0 1 0
CCIS07648107ST-4-0 62 1 21 0 NA 0 0 0
CCIS34604008ST-4-0 63 1 27 0 NA 0 0 0
CCIS63468405ST-4-0 69 1 25 0 NA 0 0 0
CCIS16383318ST-4-0 61 1 24 0 NA 0 0 0
CCIS36699628ST-4-0 68 1 25 0 NA 0 0 0
CCIS95409808ST-4-0 63 1 21 0 NA 0 0 0
CCIS74239020ST-4-0 62 2 24 0 NA 0 0 0
CCIS05314658ST-4-0 65 1 24 0 NA 0 0 0
CCIS71578391ST-4-0 70 2 25 0 NA 0 0 0
CCIS50003399ST-4-0 66 1 28 0 NA 0 0 0
CCIS36797902ST-4-0 63 2 25 0 NA 0 0 1
CCIS11354283ST-4-0 67 2 27 0 NA 0 0 0
CCIS50471204ST-4-0 61 1 23 0 NA 0 0 0
CCIS20795251ST-4-0 71 1 23 0 NA 0 0 0
CCIS07277498ST-4-0 63 2 NA 0 NA 0 NA 0
CCIS90164298ST-4-0 84 2 23 0 NA 0 0 0
CCIS23164343ST-4-0 62 2 23 0 NA 0 0 0
CCIS03857607ST-4-0 61 2 23 0 NA 0 0 0
CCIS63448910ST-4-0 61 1 34 0 NA 0 0 0
CCIS88007743ST-4-0 67 1 23 0 NA 0 0 0
CCIS51595129ST-4-0 63 1 22 0 NA 0 0 0
CCIS09568613ST-4-0 67 2 21 0 NA 0 0 0
CCIS07539127ST-4-0 77 1 22 0 NA 0 0 0
CCIS41692898ST-4-0 67 1 28 0 NA 0 0 0
CCIS44093303ST-4-0 62 1 20 0 NA 0 1 0
CCIS00146684ST-4-0 72 1 25 0 NA 0 0 0
CCIS78100604ST-4-0 64 1 30 0 NA 0 0 0
CCIS48174381ST-4-0 66 2 25 0 NA 0 0 0
CCIS88317640ST-4-0 74 2 27 0 NA 0 0 0
% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/siamcat_class_assignment_methods.R
\docType{methods}
\name{features<-}
\alias{features<-}
\alias{assign-features}
\alias{features<-,siamcat,otu_table-method}
\title{Assign a new otu_table object to \code{x} features slot}
\usage{
features(x) <- value
\S4method{features}{siamcat,otu_table}(x) <- value
}
\arguments{
\item{x}{an object of class \link{siamcat-class}}
\item{value}{an object of class \link[phyloseq]{otu_table-class}}
}
\value{
none
}
\description{
Assign a new otu_table object to \code{x} features slot