tlnagy / Crispulator.jl

✂️ Pooled CRISPR screen optimization tool
Other
17 stars 6 forks source link

Add support for yaml encoded run parameters #36

Closed tlnagy closed 8 years ago

tlnagy commented 8 years ago

Currently, the only way to run a custom experiment is to write a full julia file and put it into the src/exps/ directory. Something like a yaml text file could be much more user friendly. See https://github.com/dcjones/YAML.jl

YAML is nice because unlike other structured text files (e.g. JSON) it is also easy to read and supports comments.

I'm collecting a list of interesting "knobs" that users might want to turn:

Library "knobs"

Screen "knobs"

@martinkampmann Thoughts?

martinkampmann commented 8 years ago

Sounds great! You could also add:

tlnagy commented 8 years ago

Those shouldn't be a problem! I updated the original post.

tlnagy commented 8 years ago

@martinkampmann Here's an example configuration file:

# This is an example configuration file. Whitespace is important.

# Settings pertaining to the library design
library: 
    genome:
        num_genes: 500
        num_guides_per_gene: 5
        frac-increasing-genes: 0.02
        frac-decreasing-genes: 0.1
    guides:
        crispr-type: CRISPRn # either CRISPRi or CRISPRn
        frac-high-quality: 0.9 # fraction of high quality guides
        mean-high-quality-kd: 0.85 # mean knockdown by a high quality guide (CRISPRi only)

screen:
    type: facs # either facs or growth
    representation: # integer value, how much larger are samples than the library
        - transfection: 10
        - selection: 10
        - sequencing: 10
    bin-size: 0.25 # size of tail to sample from, must be between 0 and 0.5 (FACS only)
    std-noise: 1
    num-bottlenecks: 10 # (Growth only)

Some of the descriptions can be improved still

martinkampmann commented 8 years ago

That looks great! I like the descriptions in comments, and we can always have a little more explanation in a separate document, or a supplemental table in the paper.

tlnagy commented 8 years ago

I agree. I definitely want at least an overview to make it into the README that is shown on the github page of the project.