cdot provides transcripts for the 2 most popular Python HGVS libraries.
It works by:
- Converting RefSeq/Ensembl GTFs to JSON
- Providing loaders for the HGVS libraries, via JSON.gz files, or REST API via cdot_rest)
We currently support ~893k transcripts (vs ~141k in UTA v.20210129)
pip install cdot
Biocommons HGVS example:
from cdot.hgvs.dataproviders import JSONDataProvider, RESTDataProvider
hdp = RESTDataProvider() # Uses API server at cdot.cc
# hdp = JSONDataProvider(["./cdot-0.2.6.refseq.grch38.json.gz"]) # Uses local JSON file
am = AssemblyMapper(hdp,
assembly_name='GRCh37',
alt_aln_method='splign', replace_reference=True)
hp = hgvs.parser.Parser()
var_c = hp.parse_hgvs_variant('NM_001637.3:c.1582G>A')
am.c_to_g(var_c)
PyHGVS example:
from cdot.pyhgvs.pyhgvs_transcript import JSONPyHGVSTranscriptFactory, RESTPyHGVSTranscriptFactory
factory = RESTPyHGVSTranscriptFactory()
# factory = JSONPyHGVSTranscriptFactory(["./cdot-0.2.6.refseq.grch38.json.gz"]) # Uses local JSON file
pyhgvs.parse_hgvs_name(hgvs_c, genome, get_transcript=factory.get_transcript_grch37)
- UTA public DB: 1-1.5 seconds / transcript
- cdot REST service: 10/second
- cdot JSON.gz: 500-1k/second
RefSeq 37+38 - 70Mb Ensembl 37+38 - 53Mb
See also Download JSON.gz files if you only want individual builds.
Both projects have similar goals of providing transcripts for loading HGVS, but they approach it from different ways
- UTA aligns sequences, then stores coordinates in an SQL database.
- cdot convert existing Ensembl/RefSeq GTFs into JSON
See wiki page for the format.
We think a standard for JSON gene/transcript information would be a great thing, and am keen to collaborate to make it happen!
cdot, pronounced "see dot" stands for Complete Dict of Transcripts
This was developed for the Australian Genomics Shariant project, due to the need to load historical HGVS from lab archives.