-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathbicseq.R
53 lines (41 loc) · 2.1 KB
/
bicseq.R
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
50
#!/usr/bin/env Rscript
# run bicseq on tumor normal samples
suppressPackageStartupMessages(library("optparse"));
suppressPackageStartupMessages(library("BICseq"));
options(error = quote(dump.frames("testdump", TRUE)))
optList <- list(
make_option("--genome", default = 'hg19', help = "genome build [default %default]"),
make_option("--includeY", default = F, action = 'store_true', help = "include Y chromosome [default %default]"),
make_option("--lambda", default = 10, help = "lambda [default %default]"),
make_option("--bin", default = 100, help = "bin size [default %default]"),
make_option("--winSize", default = 200, help = "window size [default %default]"),
make_option("--quant", default = 0.95, help = "probability of the read count quantile [default %default]"),
make_option("--mult", default = 1, help = "a genomic position s is considered as an outlier if it has more than mult*qunatile number of aligned reads, where quantile is the quant^th quantile of the read counts calculated from the genomic window of s [default %default]"),
make_option("--outFile", default = NULL, help = "output file [default %default]"))
parser <- OptionParser(usage = "%prog [tumor.bam] [normal.bam]", option_list = optList);
arguments <- parse_args(parser, positional_arguments = T);
opt <- arguments$options;
if (is.null(opt$outFile)) {
cat("Need output file\n");
print_help(parser);
stop();
} else if (length(arguments$args) < 1) {
cat("Need bam files\n");
print_help(parser);
stop();
}
tumorBam <- arguments$args[1]
normalBam <- arguments$args[2]
if (opt$genome == "hg19") {
seqnames <- c(1:22, "X")
} else if (opt$genome == "mm10") {
seqnames <- c(1:19, "X")
} else {
cat("unsupported genome\n");
stop();
}
if (opt$includeY) {
seqnames <- c(seqnames, "Y")
}
bicseq <- BICseq(sample = tumorBam, reference = normalBam, seqNames = seqnames)
segs <- getBICseg(object = bicseq, bin = opt$bin, lambda = opt$lambda, winSize = opt$winSize, quant = opt$quant, mult = opt$mult)