Skip to content
Snippets Groups Projects
Commit c6ab4003 authored by Sascha Meiers's avatar Sascha Meiers
Browse files

Include log-likelihood-ratio filter and normalization

parent e8bcaae9
No related branches found
No related tags found
No related merge requests found
...@@ -19,10 +19,9 @@ ...@@ -19,10 +19,9 @@
"R_reference" : "BSgenome.Hsapiens.UCSC.hg38", "R_reference" : "BSgenome.Hsapiens.UCSC.hg38",
"bp_density" : { "bp_density" : {
"few" : 0.1, "few" : 0.2,
"medium" : 0.25, "medium" : 0.4,
"more" : 0.33, "many" : 0.6
"many" : 0.5
}, },
"paired_end" : true, "paired_end" : true,
......
...@@ -18,7 +18,7 @@ import os.path ...@@ -18,7 +18,7 @@ import os.path
# * calculate a segmentation into potential SVs using Mosaicatcher # * calculate a segmentation into potential SVs using Mosaicatcher
METHODS = ["simpleCalls", "biAllelic"] METHODS = ["simpleCalls_llr1", "simpleCalls_llr4", "biAllelic_llr1", "biAllelic_llr4"]
rule all: rule all:
input: input:
...@@ -27,7 +27,7 @@ rule all: ...@@ -27,7 +27,7 @@ rule all:
sample = SAMPLE, sample = SAMPLE,
chrom = config["chromosomes"], chrom = config["chromosomes"],
window = [50000, 100000], window = [50000, 100000],
bpdens = ["few","medium","more","many"], bpdens = ["few","medium","many"],
method = METHODS) method = METHODS)
...@@ -349,9 +349,9 @@ rule mosaiClassifier_make_call: ...@@ -349,9 +349,9 @@ rule mosaiClassifier_make_call:
input: input:
probs = "sv_probabilities/{sample}/{windows}.{bpdens}/probabilities.Rdata" probs = "sv_probabilities/{sample}/{windows}.{bpdens}/probabilities.Rdata"
output: output:
"sv_calls/{sample}/{windows}.{bpdens}/simpleCalls.txt" "sv_calls/{sample}/{windows}.{bpdens}/simpleCalls_llr{llr}.txt"
log: log:
"log/{sample}/mosaiClassifier_make_call.{windows}.{bpdens}.txt" "log/{sample}/mosaiClassifier_make_call.{windows}.{bpdens}.{llr}.txt"
script: script:
"utils/mosaiClassifier_call.snakemake.R" "utils/mosaiClassifier_call.snakemake.R"
...@@ -379,9 +379,9 @@ rule mosaiClassifier_make_call_biallelic: ...@@ -379,9 +379,9 @@ rule mosaiClassifier_make_call_biallelic:
input: input:
probs = "sv_probabilities/{sample}/{windows}.{bpdens}/probabilities.Rdata" probs = "sv_probabilities/{sample}/{windows}.{bpdens}/probabilities.Rdata"
output: output:
"sv_calls/{sample}/{windows}.{bpdens}/biAllelic.txt" "sv_calls/{sample}/{windows}.{bpdens}/biAllelic_llr{llr}.txt"
log: log:
"log/{sample}/mosaiClassifier_make_call_biallelic.{windows}.{bpdens}.txt" "log/{sample}/mosaiClassifier_make_call_biallelic.{windows}.{bpdens}.{llr}.txt"
script: script:
"utils/mosaiClassifier_call_biallelic.snakemake.R" "utils/mosaiClassifier_call_biallelic.snakemake.R"
......
...@@ -12,7 +12,8 @@ segs = fread(snakemake@input[["bp"]]) ...@@ -12,7 +12,8 @@ segs = fread(snakemake@input[["bp"]])
# is there a normalization file given? # is there a normalization file given?
if ("norm" %in% snakemake@input) { if ("norm" %in% names(snakemake@input)) {
message("[MosaiClassifier] Read normalization from ", snakemake@input[["norm"]])
normalization = fread(snakemake@input[["norm"]]) normalization = fread(snakemake@input[["norm"]])
} else { } else {
normalization = NULL normalization = NULL
......
...@@ -127,6 +127,7 @@ mosaiClassifierPrepare <- function(counts, info, strand, segs, normVector = NULL ...@@ -127,6 +127,7 @@ mosaiClassifierPrepare <- function(counts, info, strand, segs, normVector = NULL
# Add normalization factors to the expected counts ("scalar") # Add normalization factors to the expected counts ("scalar")
if (!is.null(normVector)) { if (!is.null(normVector)) {
message("[MosaiClassifier] Normalize coverage expectation")
addNormalizationScalar(probs, counts, normVector) addNormalizationScalar(probs, counts, normVector)
} else { } else {
probs[, scalar := 1.0] probs[, scalar := 1.0]
......
...@@ -3,9 +3,9 @@ library(data.table) ...@@ -3,9 +3,9 @@ library(data.table)
source("utils/mosaiClassifier/makeSVcalls.R") source("utils/mosaiClassifier/makeSVcalls.R")
probs = readRDS(snakemake@input[["probs"]]) probs = readRDS(snakemake@input[["probs"]])
llr = as.numeric(snakemake@params[["llr"]]) llr = as.numeric(snakemake@wildcards[["llr"]])
probs <- mosaiClassifierPostProcessing(probs) probs <- mosaiClassifierPostProcessing(probs)
tab <- makeSVCallSimple(probs) tab <- makeSVCallSimple(probs, llr_thr = llr)
write.table(tab, file = snakemake@output[[1]], sep = "\t", quote=F, row.names = F, col.names = T) write.table(tab, file = snakemake@output[[1]], sep = "\t", quote=F, row.names = F, col.names = T)
...@@ -3,10 +3,10 @@ library(data.table) ...@@ -3,10 +3,10 @@ library(data.table)
source("utils/mosaiClassifier/makeSVcalls.R") source("utils/mosaiClassifier/makeSVcalls.R")
probs = readRDS(snakemake@input[["probs"]]) probs = readRDS(snakemake@input[["probs"]])
llr = as.numeric(snakemake@params[["llr"]]) llr = as.numeric(snakemake@wildcards[["llr"]])
probs <- mosaiClassifierPostProcessing(probs) probs <- mosaiClassifierPostProcessing(probs)
probs <- forceBiallelic(probs) probs <- forceBiallelic(probs)
tab <- makeSVCallSimple(probs) tab <- makeSVCallSimple(probs, llr_thr = llr)
write.table(tab, file = snakemake@output[[1]], sep = "\t", quote=F, row.names = F, col.names = T) write.table(tab, file = snakemake@output[[1]], sep = "\t", quote=F, row.names = F, col.names = T)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment