Description Usage Arguments Details Value Author(s) References Examples
Implementation of a method based on fold change rank ordering statistics for detecting differentially expressed genes in a dataset. This function should be used with two biological conditions dataset (microarray or RNAseq, ...). Using pairwise combinations of samples from the two biological conditions, fold changes (FC) are calculated. For each combination, the FC obtained are sorted in increasing order and corresponding rank values are associated with genes. Then, a statistic is assigned to the robust average ordered rank values for each gene/probe.
1  fcros(xdata, cont, test, log2.opt = 0, trim.opt = 0.25)

xdata 
A matrix or a table containing two biological conditions dataset to process for detecting differentially expressed genes. The rownames of xdata are used for the output idnames. 
cont 
A vector containing the label names of the control samples:

test 
A vector containing the label names of the test samples:

log2.opt 
A scalar equals to 0 or 1. The value 0 (default) means that
data in the matrix "xdata" are expressed in a log2 scale:

trim.opt 
A scalar between 0 and 0.5. The value 0.25 (default) means
that 25% of the lower and the upper rank values of each gene are not
used for computing its statistics "ri", i.e. the interquartile range
rank values are averaged: 
Label names appearing in the parameters "cont" and "test" should match with some label names in the columns of the data matrix "xdata". It is not necessary to use all label names appearing in the columns of the dataset matrix.
This function returns a data frame containing 9 components
idnames 
A vector containing the list of IDs or symbols associated with genes 
ri 
The average of rank values associated with genes. These values are rank values statistics leading to fvalues and pvalues. 
FC 
The fold changes for genes in the dataset. These fold changes are calculated as a ratio of averages from the test and the control samples. Non log scale values are used in the calculation. 
FC2 
The robust fold changes for genes. These fold changes are calculated as a trimmed mean of the fold changes or ratios obtained from the dataset samples. Non log scale values are used in the calculation. 
f.value 
The fvalues are probabilities associated with genes using the "mean" and the "standard deviation" ("sd") of the statistics "ri". The "mean" and "sd" are used as a normal distribution parameters. 
p.value 
The pvalues associated with genes. These values are obtained from the fold change rank values and one sample ttest. 
bounds 
Two values, which are the lower and the upper bounds or the minimum and the maximum values of the non standardized "ri". 
params 
Three values, which are the estimates for the parameters "delta" (average difference between consecutive ordered average of rank values) "mean" (mean value of "ri") and the standard deviation ("sd") of "ri". 
params_t 
Three values which are theoretical levels for parameters "delta", "mean" and "sd". 
Doulaye Dembele doulaye@igbmc.fr
Dembele D and Kastner P, Fold change rank ordering statistics:
a new method for detecting differentially expressed
genes, BMC Bioinformatics, 2014, 15:14
Dembele D and Kastner P, Comment on: Fold change rank ordering statistics: a new method for detecting differentially expressed genes, BMC Bioinformatics, 2016, 17:462
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49  data(fdata);
rownames(fdata) < fdata[,1];
cont < c("cont01", "cont07", "cont03", "cont04", "cont08");
test < c("test01", "test02", "test08", "test09", "test05");
log2.opt < 0;
trim.opt < 0.25;
# perform fcros()
af < fcros(fdata, cont, test, log2.opt, trim.opt);
# now select top 20 down and/or up regulated genes
top20 < fcrosTopN(af, 20);
alpha1 < top20$alpha[1];
alpha2 < top20$alpha[2];
id.down < matrix(0, 1);
id.up < matrix(0, 1);
n < length(af$FC);
f.value < af$f.value;
idown < 1;
iup < 1;
for (i in 1:n) {
if (f.value[i] <= alpha1) { id.down[idown] < i; idown < idown + 1; }
if (f.value[i] >= alpha2) { id.up[iup] < i; iup < iup + 1; }
}
data.down < fdata[id.down[1:(idown1)], ];
ndown < nrow(data.down);
data.up < fdata[id.up[1:(iup1)], ];
nup < nrow(data.up);
# now plot down regulated genes
t < 1:20;
op = par(mfrow = c(2,1));
plot(t, data.down[1,2:21], type = "l", col = "blue", xlim = c(1,20),
ylim = c(0,18), main = "Top downregulated genes");
for (i in 2:ndown) {
lines(t,data.down[i,2:21], type = "l", col = "blue")
}
# now plot down and up regulated genes
plot(t, data.up[1,2:21], type = "l", col = "red", xlim = c(1,20),
ylim = c(0,18), main = "Top upregulated genes");
for (i in 2:nup) {
lines(t, data.up[i,2:21], type = "l", col = "red")
}
par(op)

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.