Colin A. Gross
2021-09-13
“Spin up and instance with your VCFs!”
HUGO names, Ensembl Id mapping, OMIM mapping, Gencode gene list, loftee ancestor.fa, loftee conservation files, reference sequence
Consolidated and coherent
workflows/
├── coverage
│ ├── Coverage.nf
│ └── nextflow.config
├── prepare_vcf
│ ├── PrepareVCF.nf
│ └── nextflow.config
└── sequences
├── Sequences.nf
└── nextflow.config
// Use wildcard like chr11.*.bcf for list of bcf files.
chromosome = "chr11"
// Required input data
vcfs = "data/chr11.subset.bcf"
// Use *.tsv.gz for list of cadd files.
cadd_tsvs = "data/chr11.sites.cadd.tsv.gz"
// Optional input data
// Use NO_FILE to indicate the optional samples list is not being used.
samples = "NO_FILE"
// Executeable paths.
// Use name of exec if in PATH or is symlinked in bin/ of this pipeline
vep = "vep"
counts_exec = "ComputeAlleleCountsAndHistograms"
// Scripts use full path or path to symlink in local bin/
add_cadd_script = "bin/add_cadd_scores.py"
## BamUtil
Clone and install from [bamUtil repo](https://github.com/statgen/bamUtil)
## VEP
Installation [instructions](https://useast.ensembl.org/info/docs/tools/vep/script/vep_download.html) on ensembl.org.
## Loftee
Master branch of [LoF plugin](https://github.com/konradjk/loftee) doesn't work for GRCh38
per this [issue](https://github.com/konradjk/loftee/issues/73#issuecomment-733109901)
```
git clone --depth 1 --branch grch38 --single-branch git@github.com:konradjk/loftee.git
```
#### Genenames: HUGO Gene Nomenclature Commitee (HGNC)
Can be obtained from [genenames custom downloads](https://www.genenames.org/download/custom/)
The genenames set from all the chromosomes with the above columns can be obtained using curl.
```
curl 'https://www.genenames.org/cgi-bin/...
```
and idiosyncracies
Headers need to be rewritten to match expected column names and the results gzipped
```
echo -e "symbol\tname\talias_symbol\tprev_symbol\tensembl_gene_id" > hgcn_genenames.txt
tail -n +2 hgcn_custom_result.txt >> hgcn_genenames.txt
gzip hgcn_genenames.txt
```
Up to date & operational
Explicit calls to web arg parsing
@bp.route('/coverage', methods = ['GET'])
def get_coverage():
arguments = {
'chrom': fields.Str(required = True, validate ... ),
'start': fields.Int(required = True, validate ...), }
args = parser.parse(arguments,
validate = partial(validate_coverage_http_request_args ...```
Framework decorator
Allows for editable install to avoid local ENV complications.
Actual test tooling to separate integration & unit tests.
Mongo fixtures tests/fixtures/genes.json
Endpoint expectations defined tests.
Moving to Vue
Previously:
Currently:
TODO: Migrate all .vue components under single application.
TODO: Verify expected appearance & behavior
it("Horizontal rule gets centered", () => {
expect(cmp.find(Message).attributes().style).toBe("padding-top: 10px;");
});
it('centers horizontal rule', () => {
const wrapper = shallowMount(SearchBox, { props: { autofocus: true } })
const hrStyle = wrapper.find('hr').attributes().style
expect(hrStyle).to.include('margin-right: auto')
expect(hrStyle).to.include('margin-left: auto')
})