Package: biomappings
BiomappingsBiomappings is a repository of community curated and predicted equivalences and
related mappings between named biological entities that are not available from
primary sources. It's also a place where anyone can contribute curations
of predicted mappings or their own novel mappings. Ultimately, we hope that
primary resources will integrate these mappings and distribute them themselves.Mappings are stored in a simple TSV file that looks like this:💾 DataThe data are available through the following four files on
thebiopragmatics/biomappingsGitHub repository.CuratedDescriptionLinkYesHuman-curated true mappingssrc/biomappings/resources/mappings.tsvYesHuman-curatednon-trivialfalse (i.e., incorrect) mappingssrc/biomappings/resources/incorrect.tsvYesMappings that have been checked but not yet decidedsrc/biomappings/resources/unsure.tsvNoAutomatically predicted mappingssrc/biomappings/resources/predictions.tsvThe primary and derived data in this repository are both available under
theCC0 1.0 Universal License.Predictions are generated by scripts in thescripts/folder. Each
uses the utilities from thebiomappings.resourcesmodule to programmatically
interact with the mappings files, e.g., to add predictions.🥒 DerivedThe mappings are distributed in theSimple Standard for Sharing Ontology Mappings
(SSSOM)format
(here)
and can be referenced by PURL such ashttps://w3id.org/biopragmatics/biomappings/sssom/biomappings.sssom.tsv.
The positive mappings are also available as a network throughNDEx.Equivalences and related mappings that are available from the OBO Foundry and other primary sources can be accessed
throughInspector Javert's Xref Databaseon Zenodo which was described inthis blog post.📊 SummarySummary statistics of the manually curated mappings and predicted mappings
are automatically generated nightly and deployed as a website with GitHub
Actions tohttps://biopragmatics.github.io/biomappings.🙏 ContributingWe welcome contributions in the form of curations to any of the four primary TSV
files in this repository via a pull request to the main Biomappings repository
athttps://github.com/biopragmatics/biomappings.Predicted mappings can be curated by moving a row in thepredictions.tsvfile
into either the positive mappings file (mappings.tsv), negative mappings file
(incorrect.tsv), or the unsure mappings file (unsure.tsv). Additionally,
theconfidencecolumn should be removed, atypecolumn should be added with
the valuemanually_reviewed, and thesourcecolumn should be changed from
the prediction script's URI to your ORCiD identifier written as a CURIE
(e.g.,orcid:0000-0003-1307-2508).Novel mappings can be curated by adding a full row to the positive mappings
file (mappings.tsv) following the format of the previous lines.While Biomappings is generally able to use any predicate written as acompact URI (CURIE),
it's preferred to use predicates from theSimple Knowledge Organization System (SKOS)to denote hierarchical relationships. The three most common predicates that are
useful for curating mappings are:PredicateDescriptionskos:exactMatchThe two terms can be used interchangeablyskos:broadMatchThe object term is a super-class of the subjectskos:narrowMatchThe object term is a sub-class of the subjectOnline via GitHub Web InterfaceGitHub has an interface for editing files directly in the browser. It will take care of creating a branch for you and
creating a pull request. After logging into GitHub, click one of the following links to be brought to the editing
interface:True MappingsFalse MappingsUnsure MappingsPredictionsThis has the caveat that you can only edit one file at a time. It's possible to navigate to your own forked version of
the repository after, to the correct branch (will not be the default one), then edit other files in the web interface as
well. However, if you would like to do this, then it's probably better to see the following instructions on contributing
locally.✍️ Local via a Text EditorFork the repository athttps://github.com/biopragmatics/biomappings, clone locally, and make a new branch (see below)Edit one or more of the resource files (mappings.tsv,incorrect.tsv,unsure.tsv,predictions.tsv)Commit to your branch, push, and create a pull request back to the upstream repository.🌐 Local via the Web Curation InterfaceRather than editing files locally, this repository also comes with a web-based curation interface. Install the code in
development mode with theweboption (which installsflaskandflask-bootstrap) using:$gitclonegit+https://github.com/biopragmatics/biomappings.git
$cdbiomappings
$gitcheckout-byour-branch-name
$pipinstall-e.[web]The web application can be run with:$biomappingswebIt can be accessed by navigating tohttp://localhost:5000/in your browser.
After you do some curations, the web application takes care of interacting with
the git repository from which you installedbiomappingsvia the "commit and
push" button.Noteif you've installedbiomappingsviaPyPI,
then running the web curation interface doesn't make much sense,
since it's non-trivial for most users to find the location of the resources within your Python installation'ssite-packagesfolder, and you won't be able to contribute them back.Curation AttributionThere are three places where curators of Biomappings are credited:ORCiD identifiers of curators are stored in each mappingThesummary websitegroups
and counts contributions curatorA curation leaderboard is automatically uploaded toAPICURON.⬇️ InstallationThe most recent release can be installed fromPyPIwith:$pipinstallbiomappingsThe most recent code and data can be installed directly from GitHub with:$pipinstallgit+https://github.com/biopragmatics/biomappings.gitTo install in development mode and create a new branch, use the following:$gitclonegit+https://github.com/biopragmatics/biomappings.git
$cdbiomappings
$pipinstall-e.💪 UsageThere are three main functions exposed frombiomappings. Each loads a list of dictionaries with the mappings in each.importbiomappingstrue_mappings=biomappings.load_mappings()false_mappings=biomappings.load_false_mappings()predictions=biomappings.load_predictions()Alternatively, you can use the above links to the TSVs on GitHub in with the library or programming language of your
choice.The data can also be loaded asnetworkxgraphs with the following functions:importbiomappingstrue_graph=biomappings.get_true_graph()false_graph=biomappings.get_false_graph()predictions_graph=biomappings.get_predictions_graph()Full documentation can be found onReadTheDocs.👋 Attribution⚖️ LicenseCode is licensed under the MIT License. Data are licensed under the CC0 License.📖 CitationPrediction and Curation of Missing Biomedical Identifier Mappings with BiomappingsHoyt, C. T., Hoyt, A. L., and Gyori, B. M. (2022)Bioinformatics, btad130.@article{Hoyt2022,title={{Prediction and Curation of Missing Biomedical Identifier Mappings with Biomappings}},author={Hoyt, Charles Tapley and Hoyt, Amelia L and Gyori, Benjamin M},journal={Bioinformatics},year={2023},month={03},issn={1367-4811},doi={10.1093/bioinformatics/btad130},url={https://doi.org/10.1093/bioinformatics/btad130},note={btad130},eprint={https://academic.oup.com/bioinformatics/advance-article-pdf/doi/10.1093/bioinformatics/btad130/49521613/btad130.pdf},}🎁 SupportBiomappings was developed by theINDRA Lab, a part of theLaboratory of Systems Pharmacologyand theHarvard Program in Therapeutic Science (HiTS)atHarvard Medical School.💰 FundingThe development of the Bioregistry is funded by the DARPA Young Faculty Award W911NF2010255 (PI:
Benjamin M. Gyori).🍪 CookiecutterThis package was created with@audreyfeldroy'scookiecutterpackage using@cthoyt'scookiecutter-snekpacktemplate.🛠️ For DevelopersSee developer instructionsThe final section of the README is for if you want to get involved by making a code contribution.Development InstallationTo install in development mode, use the following:$gitclonegit+https://github.com/biopragmatics/biomappings.git
$cdbiomappings
$pipinstall-e.🥼 TestingAfter cloning the repository and installingtoxwithpip install tox, the unit tests in thetests/folder can be
run reproducibly with:$toxAdditionally, these tests are automatically re-run with each commit in aGitHub Action.📖 Building the DocumentationThe documentation can be built locally using the following:$gitclonegit+https://github.com/biopragmatics/biomappings.git
$cdbiomappings
$tox-edocs
$opendocs/build/html/index.htmlThe documentation automatically installs the package as well as thedocsextra specified in thesetup.cfg.sphinxplugins
liketexextcan be added there. Additionally, they need to be added to theextensionslist indocs/source/conf.py.📦 Making a ReleaseAfter installing the package in development mode and installingtoxwithpip install tox, the commands for making a new release are contained within thefinishenvironment
intox.ini. Run the following from the shell:$tox-efinishThis script does the following:UsesBump2Versionto switch the version number in thesetup.cfg,src/biomappings/version.py, anddocs/source/conf.pyto not have the-devsuffixPackages the code in both a tar archive and a wheel usingbuildUploads to PyPI usingtwine. Be sure to have a.pypircfile configured to avoid the need for manual input at this
stepPush to GitHub. You'll need to make a release going with the commit where the version was bumped.Bump the version to the next patch. If you made big changes and want to bump the version by minor, you can
usetox -e bumpversion minorafter.