Package: ga4gh.vrs
vrs-pythonvrs-python provides Python language support for theGA4GH Variation
Representation Specification
(VRS).This repository contains several related components:ga4gh.core packagePython language support for certain nascent standards
in GA4GH. Eventually, this package should be moved to a distinct repo.ga4gh.vrs packagePython language support for VRS.ga4gh.vrs.extras packagePython language support for additional
functionality, including translating from and to other variant formats and a
REST service to similar functionality.ga4gh.vrs.extrasrequires access to
supporting data, as described below.Jupyter notebooksDemonstrations of the functionality ofga4gh.vrsandga4gh.vrs.extrasin the form of easy-to-read notebooks.VRS-Python and VRS Version CorrespondenceThe ga4gh/vrs-python repo embeds the ga4gh/vrs repo as a git submodule, and
therefore each ga4gh.vrs package on PyPi embeds a particular version of VRS. The
correspondences between the packages may be summarized as:vrs-python branchvrs branchmainmain0.61.10.71.20.81.30.9metaschema-update⚠Developers: See the development section below for recommendations for using submodules
gracefully (and without causing problems for others!).InstallationInstalling with pippip install 'ga4gh.vrs[extras]'The[extras]argument tells pip to install packages to fulfill the dependencies of thega4gh.vrs.extraspackage.Installing dependencies for ga4gh.vrs.extrasThega4gh.vrs.extrasmodules are not part of the VR spec per se. They are
bundled with ga4gh.vrs for development and installation convenience. These
modules depend directly and indirectly on external data sources of sequences,
transcripts, and genome-transcript alignments. This section recommends one way
to install the biocommons tools that provide these data.docker volume create --name=uta_vol
docker volume create --name=seqrepo_vol
docker-compose upThis should start three containers:seqrepo: downloads seqrepo into a
docker volume and exitsseqrepo-rest-service: a
REST service on seqrepo (localhost:5000)uta: a database of transcripts and
alignments (localhost:5432)Check that the containers are running:$ docker ps
CONTAINER ID        IMAGE                                    //  NAMES
86e872ab0c69        biocommons/seqrepo-rest-service:latest   //  vrs-python_seqrepo-rest-service_1
a40576b8cf1f        biocommons/uta:uta_20180821              //  vrs-python_uta_1Depending on your network and host, thefirstrun is likely to take 5-15
minutes in order to download and install data. Subsequent startups should be
nearly instantaneous.You can test UTA and seqrepo installations like so:snafu$ psql -XAt postgres://anonymous@localhost/uta -c 'select count(*) from transcript'
249909It doesn't work!Here are some things to try.Bring up one service at a time. For example, if you haven't download seqrepo
yet, you might see this:snafu$ docker-compose up seqrepo-rest-service
Starting vrs-python_seqrepo-rest-service_1 ... done
Attaching to vrs-python_seqrepo-rest-service_1
seqrepo-rest-service_1  | 2022-07-26 15:59:59 snafu seqrepo_rest_service.__main__[1] INFO Using seqrepo_dir='/usr/local/share/seqrepo/2021-01-29' from command line
⋮
seqrepo-rest-service_1  | OSError: Unable to open SeqRepo directory /usr/local/share/seqrepo/2021-01-29
vrs-python_seqrepo-rest-service_1 exited with code 1Running the NotebooksOnce installed as described above, type$ source venv/3.7/bin/activate
$ jupyter notebook --notebook-dir notebooks/The following jupyter extensions are recommended but not required$ pip install jupyter_contrib_nbextensions
$ jupyter contrib nbextension install --user
$ jupyter nbextension enable toc2/mainRunning the Notebooks on the Terra platformTerrais a cloud platform for biomedical research developed by the Broad Institute, Microsoft and Verily. The platform includes preconfigured environments that provide user-friendly access to various applications commonly used in bioinformatics, including Jupyter Notebooks.We have created a publicVRS-demo-notebooksworkspace in Terra that contains the demo notebooks along with instructions for running them with minimal setup. To get started, see either theVRS-demo-notebooksworkspace or theTerra.ipynbnotebook in this repository.DevelopmentSubmodules!vrs-python embeds vrs as a submodule. When checking out vrs-python and switching
branches, it is important to make sure that the submodule tracks vrs-python
correctly. The recommended way to do this isgit config --global submodule.recurse true.If you don't set submodule.recurse, developers and
reviewers must be extremely careful to not accidentally upgrade or downgrade
schemas with respect to vrs-python.Alternatively, seemisc/githooks/.Installing for developmentFork the repo athttps://github.com/ga4gh/vrs-python/.$ git clone --recurse-submodules git@github.com:YOUR_GITHUB_ID/vrs-python.git
$ cd vrs-python
$ make devreadyPre-commitWe usepre-committo check code style.Before first commit, run:$ pre-commit installTestingThis package implements typical unit tests for ga4gh.core and ga4gh.vrs. This
package also implements the compliance tests from vrs (vrs/validation) in the
tests/validation/ directory.$ make testDeveloping VRS (the schema) tooIf you want to develop the VRS schema in conjunction with vrs-python, the
recommended approach for most users is to fork and clone thega4gh/vrsrepo,
then set theVRS_SCHEMA_DIRenvironment variable to use an alternative schema
location.Security Note (from the GA4GH Security Team)A stand-alone security review has been performed on the specification itself.
This implementation is offered as-is, and without any security guarantees. It
will need an independent security review before it can be considered ready for
use in security-critical applications. If you integrate this code into your
application it is AT YOUR OWN RISK AND RESPONSIBILITY to arrange for a security
audit.