# multiple.down: ~~function to do ... ~~ In mcp.project: Applies different False Discovery Rate controlling procedures

## Description

~~ A concise (1-5 lines) description of what the function does. ~~

## Usage

 `1` ```multiple.down(sorted, q, m) ```

## Arguments

 `sorted` ~~Describe `sorted` here~~ `q` ~~Describe `q` here~~ `m` ~~Describe `m` here~~

## Details

~~ If necessary, more details than the description above ~~

## Value

~Describe the value returned If it is a LIST, use

 `comp1 ` Description of 'comp1' `comp2 ` Description of 'comp2'

...

## Note

~~further notes~~

~Make other sections like Warning with Warning .... ~

~~who you are~~

## References

~put references to the literature/web site here ~

~~objects to See Also as `help`, ~~~
 ``` 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``` ```##---- Should be DIRECTLY executable !! ---- ##-- ==> Define data, use random, ##-- or do help(data=index) for the standard data sets. ## The function is currently defined as function (sorted, q, m) { cat("Calling multiple step down \n") flush.console if (q > 0.5) warning("q values over 0.5 are not recommended") criticals = sapply(1:m, function(i) q * i/(m - i * (1 - q) + 1)) indicators = sorted < criticals if (!indicators[1]) cutoff = list(cutoff = 0, cut.index = 0) else if (all(indicators)) cutoff = list(cutoff = sorted[m], cut.index = m) else { cut.index = min((1:m)[!indicators]) - 1 cutoff = list(cutoff = sorted[cut.index], cut.index = cut.index) } rejected = sorted <= cutoff\$cutoff adjusted = multiple.down.adjust(sorted, m) multiple.pvals = data.frame(original.pvals = sorted, criticals = NA, rejected = rejected, adjusted.pvals = adjusted) output = list(Cutoff = cutoff, Pvals = multiple.pvals) flush.console return(output) } ```