Web-based graphical user interface of Datanator, a toolkit for discovering the data needed for modeling the biochemistry of cells.
A central goal of synthetic biology is to rationally design organisms. Similarly, a central goal of precision medicine is to tailor therapy to each patient based on their unique genome. Many engineering fields use computer-aided design (CAD) tools driven by mechanistic models to efficiently design complex systems such as planes. Analogously, more comprehensive and more predictive models of biological systems, such as whole-cell models, are needed to help bioengineers and physicians design biomachines and medical therapy.
One of the biggest bottlenecks to achieving such models is collecting and aggregating the large amount of data needed for model construction and verification. Due to advances in genomics and increased emphasis on data sharing, there is now extensive data about a wide range of biochemical entities and processes such as data about metabolite concentrations, RNA and protein abundances, and reaction rates. However, it remains difficult to utilize this information for modeling because the data scattered across numerous databases and publications; the data is described using different formats, identifiers, and units; and there are inadequate tools for finding relevant data for modeling a specific biological system in a specific environment.
The Datanator toolkit seeks to address these problems for biochemical modeling by providing investigators an integrated database of molecular data and tools for discovering relevant data for modeling projects and other meta analyses. Please see the About page for more information about the goals and features of Datanator.
The Datanator toolkit is composed of the following packages:
This package provides a web-based graphical user interface to Datanator-db. A public, hosted version of the package is freely available at https://datanator.info. The package provides investigators tools for browsing and searching Datanator-db to find data about biochemical entities of interest (e.g., metabolites, proteins, reactions). This includes tools for finding experimental observations from chemically and genetically similar entities (according to structural and sequence similarity) in phylogenetically similar organism (according to the NCBI Taxonomy tree) under similar enviromental conditions (e.g., temperature, pH). The package is implemented using React.
We recommend that users use the public, hosted version of Datanator-frontend at https://datanator.info.
Please see the Help page for a tutorial and FAQs.
We recommend that developers install and run Datanator-frontend locally. Below are instructions for installing and running Datanator-frontend locally.
Install git
apt-get install git
Install npm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash
~/.nvm/nvm.sh install v8.17.0
Clone this repository
git clone https://github.com/karrlab/datanator_frontend
Install this package
cd /path/to/datanator_frontend
npm install .
Launch a server. This will compile the application. As you make changes to the source code, the server will automatically incrementally compile the application and refresh your browser.
npm start
Navigate your browser to http://localhost:3000.
Run the unit tests
npm run test-unit-coverage
Run the integration tests
npm run test-integration-run
Lint CSS
npm run lint-style
Lint JavaScript
npm run lint-js
Lint JSON
npm run lint-json
Lint SVG
npm run lint-svg
NODE_ENV=production npm run build
Datanator-frontend is implemented as a Single Page Application (SPA) using the following packages:
The following tools were used to test Datanator-frontend:
This repository is organized as follows:
config
/: React configurationintegration-tests/
:
fixtures/
: fixtures for the integration testsplugins/
: cypress configurationsupport/
: cypress configurationtests/
: integration tests implemented using cypress and organized parallel to the source codepublic/
: static files such as the favicon and sitemapscripts/
: scripts for managing the application such as starting and stopping a test serversrc/
components/
- common components used by multiple pagesErrorDialog/
- dialog for displaying errorsFeedbackForm/
- form to collected feedback from usersFooter/
- footer on the bottom of each webpageHeader/
- header on the top of each webpageSearchForm/
- search form on homepage and in the headerscenes/
- code to render the individual webpagesHome/
- the home pageSearchResults/
- page which display the results of a searchBiochemicalEntityDetails/
- the pages which display metadata and experimental observations about a biochemical entityAbout/
- page with general information about Datanator such as the motivation for the application and the team which implemented itHelp/
- page with a tutorial and FAQsStats/
- page which summarizes the contents of Datanator's databaseError404/
- page which is displayed when a user requests and undefined routeservices/
__tests__/
- unit tests implemented using Jestutils/
- miscellaneous helper functions (e.g. removing duplicates, formatting numbers in scientific notation, etc.)colors.scss
: common colors for the applicationindex.js
: entrypoint for the application which handles all routesindex.scss
: commmon styles for the applicationindex.mobile.scss
: styles for mobile devicesreact-app-env.d.ts
: React configurationsetupTests.js
: Jest configuration.env
: default environment variablesCODE_OF_CONDUCT
: code of conductcypress.json
: cypress configurationLICENSE
: licenseLICENSE-THIRD-PARTY
: summary of the licenses of the dependenciespackage.json
: package configurationREADME
: overview of the applicationsrc/index.scss
.src/scenes/Home/Home.scss
). The styles for the individual components and scenes are isolated from each other through the use of unique CSS classes for each component/scene.Datanator-frontend uses the following naming conventions:
UpperCamelCase
lowerCamelCase
lower-hyphen-case
We welcome contributions to Datanator via Git pull requests. Please contact the developers to coordinate potential contributions, and please see above for information about how to submit pull requests.
This package is released under the MIT license. The licenses of the third party dependencies are summarized in LICENSE-THIRD-PARTY.
Roth YD, Lian Z, Pochiraju S, Shaikh B & Karr JR. Datanator: an integrated database of molecular data for quantitatively modeling cellular behavior. bioRxiv, 2020.08.06.240051 (2020). DOI: 10.1101/2020.08.06.240051.
This package was developed by the Karr Lab at the Icahn School of Medicine at Mount Sinai in New York by the following individuals:
Please submit an issue, or contact the Karr Lab with any questions or comments.
Datanator was developed with support from the Center for Reproducible Biomedical Modeling from the National Institute of Bioimaging and Bioengineering and the National Institute of General Medical Sciences of the National Institutes of Health and the National Science Foundation (awards P41EB023912 and R35GM119771).