snystrom/cutNrun-pipeline

Allow sample-specific negative control

Opened this issue · 1 comments

Do something like:

control = lambda wildcards: sampleInfo[sampleInfo.sample == wildcards.sample].control

Maybe (pseudocode):

control_or_default(wildcards, default = CtrlPath):
    sampleInfo[sampleInfo.sample == wildcards.sample].control
    else CtrlPath
   

Consider something like 2 columns:
is_control_id = name or NA (if name, that name = control ID)
control_sample = name or NA (if name, must be name from is_control_id, that set of samples will be pooled & used as control set)

Then have conditional peak call rules to have discriminative calling step.

Also consider whether peak calls should be made with & without control for additional comparison. Each of these new files gets added to sampleSheet.tsv