Tools and Features - AndersenLab/CAENDR GitHub Wiki
Unfortunately, for historical(?) reasons, there are approximately 3~4 different definitions of "tool" in this project. Fortunately, we have this guide to disambiguate! Isn't documentation great.
In practice, these definitions go from more broad to more specific; this is a good rule of thumb, although in principal, they don't have to.
- On the CaeNDR front-end, a "tool" is one of multiple interactive pages that allow front-end users to explore, operate on, and download data. These will be referred to as "front-end tools" or "tool pages".
- From an account <-> data standpoint, a "tool" is any feature of the CaeNDR site that allows front-end users to generate an output report that is stored to their account. These will be referred to as "report tools".
- From an infrastructure standpoint, a "tool" is any functionality of the CaeNDR site that runs containerized code in the background, updating the user once this computation is finished. These are often called "containerized tools".
- From a GitHub project standpoint, a "tool" is any runnable feature with a distinct codebase managed by the Andersen Lab.
Most of the time, the only distinctions that matter conceptually are "browser tools" vs. "report tools":
Term | Explanation |
---|---|
Tool | A front-facing feature of the site that lets users browse or operate on data. Presented as a "tool". Superset of "report tools" and "browser tools". |
Report Tool | A site tool that generates a user report. Each has a dedicated CaeNDR account page for all of a user's past reports, and the all share a lot of Python infrastructure through the use of subclassing. |
Browser Tool | A site tool that does NOT generate a user report. Each allows CaeNDR users to view & download sections of (filtered) genomic data, typically pulled from a SQL table; these were historically referred to as "browsers" within the codebase. These do NOT run any reports in the background. |
The other distinctions have more to do with quirks of the architecture, special cases in the shared Python classes, etc.
Tool Name | Has Tool Page? | Generates Report? | Is Containerized? | Has Separate GitHub? |
---|---|---|---|---|
Genome Browser | β | - | - | - |
Variant Annotation | β | - | - | - |
Genetic Mapping | β | β | β | β |
Pairwise Indel Finder | β | β | β | - |
Heritability Calculator | β | β | β | β |
Phenotype Database and Analysis | β | β | - | - |
Guide RNA Selectionβ | β | β | ?? | ?? |
β The gRNA Selection tool has not yet been implemented, but this is my best guess at how it will fit in.
Types of Tools:
Front-End Tools | |
Browser Tools | Report Tools |
For historical reasons, a number of tools have multiple names:
User-Facing Name | Preferred Internal Name | Historical Names | Notes |
---|---|---|---|
Genome Browser | genome_browser |
gbrowser |
As part of the site v2 rework, we expanded this out. |
Variant Annotation | variant_annotation |
vbrowser |
Debatably this is still a "browser" tool, but we expanded it out as well. |
Genetic Mapping | genetic_mapping |
nemascan , nemascan_nxf
|
The repo owned by Andersen Lab is called "NemaScan", and I believe the nxf suffix refers to NextFlow. (Also it gave it the same number of characters as indel primer & heritability - may or may not have been intentional.) |
Pairwise Indel Finder | pairwise_indel_finder |
indel_primer , indel_finder
|
I believe this tool is used to find primers, among other things, hence the different names. We use "Finder" on the front-end. |
Heritability Calculator | heritability_calculator |
heritability |
As part of the site-v2 rework, we expanded this out. |
Phenotype Database and Analysis | phenotype_database |
Newer tool, so no historical names. It's sort of a two-in-one tool (db & analysis), but we typically just use "database" internally. | |
Guide RNA Selection | grna_selection |
crispr |
Not yet implemented. The WIP name was "CRISPR", so this may appear in old docs / code, but should not be used going forward. |
Going forward, it's best to use the "preferred internal name" for any references in code, but you should also be aware of the historical names in case they pop up.
...