Skip to content

Commit

Permalink
Merge pull request #5 from virtualcell/jim-hosted-site
Browse files Browse the repository at this point in the history
host ModelBricks in Kubernetes
  • Loading branch information
jcschaff authored May 31, 2024
2 parents 8e783b1 + 9bdf94b commit 112ee61
Show file tree
Hide file tree
Showing 7 changed files with 67 additions and 3 deletions.
33 changes: 33 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Build and Push Docker image

on:
push:
branches:
- master

workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ secrets.ACTION_USER }}
password: ${{ secrets.ACTION_TOKEN }}

- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ghcr.io/${{ github.repository }}/modelbricks:${{ github.sha.substring(0, 7) }}
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
node_modules
secrets.js

.idea/
20 changes: 20 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Use an official Node.js runtime as the base image
FROM node:20

# Set the working directory in the container to /app
WORKDIR /app

# Copy package.json and package-lock.json to the working directory
COPY package*.json ./

# Install the application dependencies
RUN npm install

# Copy the rest of the application code to the working directory
COPY . .

# Expose port 3000 for the application
EXPOSE 3000

# Define the command to run the application
CMD [ "npm", "start" ]
2 changes: 1 addition & 1 deletion app.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const path = require("path");
const xml2js = require("xml2js");
const fetch = require("node-fetch");
const aPrs = require("./helpers/annotation-parser.js");
const PORT = process.env.PORT || 4002;
const PORT = process.env.PORT || 3000;

var indexRouter = require("./routes/index");

Expand Down
9 changes: 9 additions & 0 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
version: '3'
services:
app:
build: .
ports:
- "3000:3000"
volumes:
- .:/app
command: npm start
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"description": "",
"main": "app.js",
"scripts": {
"start": "nodemon ./bin/www --ignore 'public/json/*.json'"
"start": "node app.js"
},
"author": "Saksham Raghuvanshi",
"license": "ISC",
Expand Down
2 changes: 1 addition & 1 deletion public/json/annotations.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"BioModel":{"$":{"name":"PLACEHOLDER"},"math":[],"text":[{"$":{"name":"ReactionStep(IP3R mediated Ca release Cell1)"},"_":"Positive regulation of cytosolic calcium ion concentration"},{"$":{"name":"Species(Ca_cell1)"},"_":"Michaelis-Menten selfactivation of Ca in the cell."},{"$":{"name":"ReactionStep(IP3R Inactive to Shut transtition cell1)"},"_":"inhibition of IP3 receptor activity"},{"$":{"name":"SpeciesContext(IP3R_cell1)"},"_":"IP3 receptor in the surface of ER localize in cell1"},{"$":{"name":"ReactionStep(IP3R independent Ca release Cell1)"},"_":"Release of sequestered calcium ion into cytosol"},{"$":{"name":"ReactionStep(IP3R Open_to_Inactivated_Cell1)"},"_":"negative regulation of IP3 receptor activity"},{"$":{"name":"ReactionStep(ATPase pump mediated Ca release Cell1)"},"_":"positive \n regulation of ATPase-coupled calcium transmembrane transporter activity"},{"$":{"name":"BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)"},"_":"This \n ModelBroick is based on the curated model which asumes that Ca2+ enters \n the cell either by mediation of IP3 receptor or as leaking, and Ca2+ \n solely leaves the cell by action of ATPase pumps. The \n ModelBrick represents the oscillatory behavior of Ca2+ concentration in \n an uncoupled cell.\n \n \n Bindschadler, \n M., & Sneyd, J. (2001). A bifurcation analysis of two coupled calcium \n oscillators. Chaos: An \n Interdisciplinary Journal Of Nonlinear Science, 11(1), \n 237."},{"$":{"name":"SpeciesContext(Ca_cell1)"},"_":"Ca2+ ion from cell_1"}],"url":{"$011MolecularType(IP3R_cell1)":{"$":{"name":"MolecularType(IP3R_cell1)"},"_":"urn:miriam:uniprot:Q14643","vcid":"MolecularType(IP3R_cell1)","qualifier":"(model) isDescribedBy","literalQualifier":"isDescribedBy"},"$011BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)":{"$":{"name":"BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)"},"_":"http://identifiers.org/go/GO:0019722","vcid":"BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)","qualifier":"(bio) hasPart","literalQualifier":"hasPart"},"$021BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)":{"$":{"name":"BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)"},"_":"http://identifiers.org/go/GO:0048016","vcid":"BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)","qualifier":"(bio) hasPart","literalQualifier":"hasPart"},"$012BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)":{"$":{"name":"BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)"},"_":"http://identifiers.org/taxonomy/10116","vcid":"BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)","qualifier":"(bio) hasTaxon","literalQualifier":"hasTaxon"},"$013BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)":{"$":{"name":"BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)"},"_":"http://identifiers.org/kegg.pathway/map04020","vcid":"BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)","qualifier":"(bio) is","literalQualifier":"is"},"$014BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)":{"$":{"name":"BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)"},"_":"http://identifiers.org/bto/BTO:0000028","vcid":"BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)","qualifier":"(bio) occursIn","literalQualifier":"occursIn"},"$015BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)":{"$":{"name":"BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)"},"_":"http://identifiers.org/biomodels.db/MODEL9107330008","vcid":"BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)","qualifier":"(model) is","literalQualifier":"is"},"$115BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)":{"$":{"name":"BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)"},"_":"http://identifiers.org/biomodels.db/BIOMD0000000058","vcid":"BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)","qualifier":"(model) is","literalQualifier":"is"},"$016BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)":{"$":{"name":"BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)"},"_":"http://identifiers.org/biomodels.db/MODEL9200487367","vcid":"BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)","qualifier":"(model) isDerivedFrom","literalQualifier":"isDerivedFrom"},"$017BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)":{"$":{"name":"BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)"},"_":"http://identifiers.org/pubmed/12779457","vcid":"BioModel(CM_PM12779457_MB1::Cell_Ca_oscillation)","qualifier":"(model) isDescribedBy","literalQualifier":"isDescribedBy"},"$011Structure(Cytosol)":{"$":{"name":"Structure(Cytosol)"},"_":"http://identifiers.org/go/GO:0005829","vcid":"Structure(Cytosol)","qualifier":"(bio) is","literalQualifier":"is"},"$011Species(Ca_cell1)":{"$":{"name":"Species(Ca_cell1)"},"_":"http://identifiers.org/chebi/CHEBI:29108","vcid":"Species(Ca_cell1)","qualifier":"(bio) is","literalQualifier":"is"},"$021Species(Ca_cell1)":{"$":{"name":"Species(Ca_cell1)"},"_":"http://identifiers.org/kegg.compound/C00076","vcid":"Species(Ca_cell1)","qualifier":"(bio) is","literalQualifier":"is"},"$011Species(IP3R_cell1)":{"$":{"name":"Species(IP3R_cell1)"},"_":"http://identifiers.org/interpro/IPR000493","vcid":"Species(IP3R_cell1)","qualifier":"(bio) isVersionOf","literalQualifier":"isVersionOf"},"$012Species(IP3R_cell1)":{"$":{"name":"Species(IP3R_cell1)"},"_":"urn:miriam:uniprot:Q14643","vcid":"Species(IP3R_cell1)","qualifier":"(model) isDescribedBy","literalQualifier":"isDescribedBy"},"$011ReactionStep(IP3R mediated Ca release Cell1)":{"$":{"name":"ReactionStep(IP3R mediated Ca release Cell1)"},"_":"http://identifiers.org/go/GO:0005220","vcid":"ReactionStep(IP3R mediated Ca release Cell1)","qualifier":"(bio) is","literalQualifier":"is"},"$012ReactionStep(IP3R mediated Ca release Cell1)":{"$":{"name":"ReactionStep(IP3R mediated Ca release Cell1)"},"_":"http://identifiers.org/go/GO:0007204","vcid":"ReactionStep(IP3R mediated Ca release Cell1)","qualifier":"(bio) isVersionOf","literalQualifier":"isVersionOf"},"$011ReactionStep(ATPase pump mediated Ca release Cell1)":{"$":{"name":"ReactionStep(ATPase pump mediated Ca release Cell1)"},"_":"http://identifiers.org/go/GO:0005388","vcid":"ReactionStep(ATPase pump mediated Ca release Cell1)","qualifier":"(bio) is","literalQualifier":"is"},"$012ReactionStep(ATPase pump mediated Ca release Cell1)":{"$":{"name":"ReactionStep(ATPase pump mediated Ca release Cell1)"},"_":"urn:miriam:reactome:R-HSA-427910","vcid":"ReactionStep(ATPase pump mediated Ca release Cell1)","qualifier":"(bio) isVersionOf","literalQualifier":"isVersionOf"},"$011ReactionStep(IP3R independent Ca release Cell1)":{"$":{"name":"ReactionStep(IP3R independent Ca release Cell1)"},"_":"http://identifiers.org/go/GO:0007204","vcid":"ReactionStep(IP3R independent Ca release Cell1)","qualifier":"(bio) isVersionOf","literalQualifier":"isVersionOf"},"$111ReactionStep(IP3R independent Ca release Cell1)":{"$":{"name":"ReactionStep(IP3R independent Ca release Cell1)"},"_":"http://identifiers.org/go/GO:0051209","vcid":"ReactionStep(IP3R independent Ca release Cell1)","qualifier":"(bio) isVersionOf","literalQualifier":"isVersionOf"},"$011ReactionStep(IP3R Inactive to Shut transtition cell1)":{"$":{"name":"ReactionStep(IP3R Inactive to Shut transtition cell1)"},"_":"http://identifiers.org/go/GO:0031586","vcid":"ReactionStep(IP3R Inactive to Shut transtition cell1)","qualifier":"(bio) isVersionOf","literalQualifier":"isVersionOf"},"$011ReactionStep(IP3R Open_to_Inactivated_Cell1)":{"$":{"name":"ReactionStep(IP3R Open_to_Inactivated_Cell1)"},"_":"http://identifiers.org/go/GO:0031586","vcid":"ReactionStep(IP3R Open_to_Inactivated_Cell1)","qualifier":"(bio) isVersionOf","literalQualifier":"isVersionOf"}},"qualifier":"","literalQualifier":""}}
{"BioModel":{"$":{"name":"PLACEHOLDER"},"math":[],"text":[{"$":{"name":"ReactionStep(activation of Rab7 by GEF7)"},"_":"Activation of RAB7_GDP by its own activated counterpart Rab7_GTP.\n\n \n\n \n\n Authors state that parameter values were sampled from reasonable ranges."},{"$":{"name":"ReactionStep(activation of Rab7 by GEF5)"},"_":"activation of Rab7_GDP catalyzed by activated Rab5_GTP.\n\n \n\n \n\n Authors state that parameter values were sampled from reasonable ranges."},{"$":{"name":"MolecularType(RAB5)"},"_":"Active Rab5 orchestrates the recruitment of a multi-effector protein \n machinery that performs various functions in endosome membrane tethering \n and fusion as well as microtubule- and actin-dependent motility"},{"$":{"name":"ReactionStep(Recruitment of Rab7_GDP)"},"_":"Rab7 is recruited for the proccess. \n\n \n\n \n\n Authors state that parameter values were sampled from reasonable ranges."},{"$":{"name":"Species(Rab7_GTP)"},"_":"GTP-bound Rab7 (active)"},{"$":{"name":"ReactionStep(Hydrolysis of Rab7_GTP)"},"_":"Hydrolysis of GTP to GDP on Rab7. \n\n\n\n \n\n Authors state that parameter values were sampled from reasonable ranges."},{"$":{"name":"BioModel(CM_PM18628746_MB2::Rab7_switch)"},"_":"This \n ModelBrick from the publication \"Membrane identity and GTPase cascades \n regulated by toggle and cut-out switches\" describes Rab activation and \n hydrolysis. According to this model, Rab5 activates Rab7 until Rab7 \n reaches a threshold upon which it inactivates Rab5 through a negative \n feedback loop."},{"$":{"name":"SimulationContext(Deterministic)"},"_":""},{"$":{"name":"MolecularType(GDP)"},"_":"GDP-bound Rab indicates the active form"},{"$":{"name":"Species(Rab5_GTP)"},"_":"Active Rab5 orchestrates the recruitment of a multi-effector protein \n machinery that performs various functions in endosome membrane tethering \n and fusion as well as microtubule- and actin-dependent motility"},{"$":{"name":"SpeciesContext(Rab7_GDP)"},"_":""},{"$":{"name":"MolecularType(GTP)"},"_":"GTP-bound Rab indicates the active form"},{"$":{"name":"ReactionStep(Extraction of Rab7_GDP)"},"_":"Degradation of Rab7_GDP. \n\n\n\n \n\n Authors state that parameter values were sampled from reasonable ranges."},{"$":{"name":"Species(Rab7_GDP)"},"_":"GDP-bound Rab7 (inactive)"}],"url":{"$011MolecularType(RAB5)":{"$":{"name":"MolecularType(RAB5)"},"_":"urn:miriam:uniprot:P20339","vcid":"MolecularType(RAB5)","qualifier":"(bio) is","literalQualifier":"is"},"$011MolecularType(Rab7)":{"$":{"name":"MolecularType(Rab7)"},"_":"urn:miriam:uniprot:P51149","vcid":"MolecularType(Rab7)","qualifier":"(bio) is","literalQualifier":"is"},"$011MolecularType(GTP)":{"$":{"name":"MolecularType(GTP)"},"_":"urn:miriam:chebi:CHEBI%3A15996","vcid":"MolecularType(GTP)","qualifier":"(bio) is","literalQualifier":"is"},"$011MolecularType(GDP)":{"$":{"name":"MolecularType(GDP)"},"_":"urn:miriam:chebi:CHEBI%3A17552","vcid":"MolecularType(GDP)","qualifier":"(bio) is","literalQualifier":"is"},"$011BioModel(CM_PM18628746_MB2::Rab7_switch)":{"$":{"name":"BioModel(CM_PM18628746_MB2::Rab7_switch)"},"_":"http://identifiers.org/mamo/MAMO_0000046","vcid":"BioModel(CM_PM18628746_MB2::Rab7_switch)","qualifier":"(bio) hasProperty","literalQualifier":"hasProperty"},"$012BioModel(CM_PM18628746_MB2::Rab7_switch)":{"$":{"name":"BioModel(CM_PM18628746_MB2::Rab7_switch)"},"_":"http://identifiers.org/taxonomy/9606","vcid":"BioModel(CM_PM18628746_MB2::Rab7_switch)","qualifier":"(bio) hasTaxon","literalQualifier":"hasTaxon"},"$013BioModel(CM_PM18628746_MB2::Rab7_switch)":{"$":{"name":"BioModel(CM_PM18628746_MB2::Rab7_switch)"},"_":"urn:miriam:obo.go:GO%3A0043087","vcid":"BioModel(CM_PM18628746_MB2::Rab7_switch)","qualifier":"(bio) isVersionOf","literalQualifier":"isVersionOf"},"$014BioModel(CM_PM18628746_MB2::Rab7_switch)":{"$":{"name":"BioModel(CM_PM18628746_MB2::Rab7_switch)"},"_":"http://identifiers.org/biomodels.db/BIOMD0000000174","vcid":"BioModel(CM_PM18628746_MB2::Rab7_switch)","qualifier":"(model) is","literalQualifier":"is"},"$114BioModel(CM_PM18628746_MB2::Rab7_switch)":{"$":{"name":"BioModel(CM_PM18628746_MB2::Rab7_switch)"},"_":"http://identifiers.org/biomodels.db/MODEL5937037510","vcid":"BioModel(CM_PM18628746_MB2::Rab7_switch)","qualifier":"(model) is","literalQualifier":"is"},"$015BioModel(CM_PM18628746_MB2::Rab7_switch)":{"$":{"name":"BioModel(CM_PM18628746_MB2::Rab7_switch)"},"_":"http://identifiers.org/pubmed/10591225","vcid":"BioModel(CM_PM18628746_MB2::Rab7_switch)","qualifier":"(model) isDerivedFrom","literalQualifier":"isDerivedFrom"},"$025BioModel(CM_PM18628746_MB2::Rab7_switch)":{"$":{"name":"BioModel(CM_PM18628746_MB2::Rab7_switch)"},"_":"http://identifiers.org/pubmed/16890441","vcid":"BioModel(CM_PM18628746_MB2::Rab7_switch)","qualifier":"(model) isDerivedFrom","literalQualifier":"isDerivedFrom"},"$016BioModel(CM_PM18628746_MB2::Rab7_switch)":{"$":{"name":"BioModel(CM_PM18628746_MB2::Rab7_switch)"},"_":"urn:miriam:doi:10.1038%2Fmsb.2008.45+","vcid":"BioModel(CM_PM18628746_MB2::Rab7_switch)","qualifier":"(model) isDescribedBy","literalQualifier":"isDescribedBy"},"$116BioModel(CM_PM18628746_MB2::Rab7_switch)":{"$":{"name":"BioModel(CM_PM18628746_MB2::Rab7_switch)"},"_":"http://identifiers.org/pubmed/18628746","vcid":"BioModel(CM_PM18628746_MB2::Rab7_switch)","qualifier":"(model) isDescribedBy","literalQualifier":"isDescribedBy"},"$011Structure(endosome)":{"$":{"name":"Structure(endosome)"},"_":"http://identifiers.org/go/GO:0010008","vcid":"Structure(endosome)","qualifier":"(bio) is","literalQualifier":"is"},"$011Species(Rab5_GTP)":{"$":{"name":"Species(Rab5_GTP)"},"_":"urn:miriam:chebi:CHEBI%3A15996","vcid":"Species(Rab5_GTP)","qualifier":"(bio) hasPart","literalQualifier":"hasPart"},"$111Species(Rab5_GTP)":{"$":{"name":"Species(Rab5_GTP)"},"_":"urn:miriam:uniprot:P20339","vcid":"Species(Rab5_GTP)","qualifier":"(bio) hasPart","literalQualifier":"hasPart"},"$012Species(Rab5_GTP)":{"$":{"name":"Species(Rab5_GTP)"},"_":"http://identifiers.org/go/GO:0031225","vcid":"Species(Rab5_GTP)","qualifier":"(bio) is","literalQualifier":"is"},"$011Species(Rab7_GDP)":{"$":{"name":"Species(Rab7_GDP)"},"_":"urn:miriam:uniprot:P51149","vcid":"Species(Rab7_GDP)","qualifier":"(bio) hasPart","literalQualifier":"hasPart"},"$012Species(Rab7_GDP)":{"$":{"name":"Species(Rab7_GDP)"},"_":"http://identifiers.org/go/GO:0031225","vcid":"Species(Rab7_GDP)","qualifier":"(bio) is","literalQualifier":"is"},"$013Species(Rab7_GDP)":{"$":{"name":"Species(Rab7_GDP)"},"_":"urn:miriam:chebi:CHEBI%3A17552","vcid":"Species(Rab7_GDP)","qualifier":"(bio) isVersionOf","literalQualifier":"isVersionOf"},"$011Species(Rab7_GTP)":{"$":{"name":"Species(Rab7_GTP)"},"_":"urn:miriam:uniprot:P51149","vcid":"Species(Rab7_GTP)","qualifier":"(bio) hasPart","literalQualifier":"hasPart"},"$111Species(Rab7_GTP)":{"$":{"name":"Species(Rab7_GTP)"},"_":"urn:miriam:chebi:CHEBI%3A15996","vcid":"Species(Rab7_GTP)","qualifier":"(bio) hasPart","literalQualifier":"hasPart"},"$012Species(Rab7_GTP)":{"$":{"name":"Species(Rab7_GTP)"},"_":"http://identifiers.org/go/GO:0031225","vcid":"Species(Rab7_GTP)","qualifier":"(bio) is","literalQualifier":"is"},"$011ReactionStep(Recruitment of Rab7_GDP)":{"$":{"name":"ReactionStep(Recruitment of Rab7_GDP)"},"_":"http://identifiers.org/go/GO:0045184","vcid":"ReactionStep(Recruitment of Rab7_GDP)","qualifier":"(bio) isVersionOf","literalQualifier":"isVersionOf"},"$011ReactionStep(activation of Rab7 by GEF7)":{"$":{"name":"ReactionStep(activation of Rab7 by GEF7)"},"_":"urn:miriam:reactome:R-HSA-8877451.2","vcid":"ReactionStep(activation of Rab7 by GEF7)","qualifier":"(bio) isPartOf","literalQualifier":"isPartOf"},"$012ReactionStep(activation of Rab7 by GEF7)":{"$":{"name":"ReactionStep(activation of Rab7 by GEF7)"},"_":"http://identifiers.org/go/GO:0017112","vcid":"ReactionStep(activation of Rab7 by GEF7)","qualifier":"(bio) isVersionOf","literalQualifier":"isVersionOf"},"$022ReactionStep(activation of Rab7 by GEF7)":{"$":{"name":"ReactionStep(activation of Rab7 by GEF7)"},"_":"http://identifiers.org/go/GO:0032858","vcid":"ReactionStep(activation of Rab7 by GEF7)","qualifier":"(bio) isVersionOf","literalQualifier":"isVersionOf"},"$011ReactionStep(activation of Rab7 by GEF5)":{"$":{"name":"ReactionStep(activation of Rab7 by GEF5)"},"_":"urn:miriam:reactome:R-HSA-8877451.2","vcid":"ReactionStep(activation of Rab7 by GEF5)","qualifier":"(bio) isPartOf","literalQualifier":"isPartOf"},"$012ReactionStep(activation of Rab7 by GEF5)":{"$":{"name":"ReactionStep(activation of Rab7 by GEF5)"},"_":"http://identifiers.org/go/GO:0032858","vcid":"ReactionStep(activation of Rab7 by GEF5)","qualifier":"(bio) isVersionOf","literalQualifier":"isVersionOf"},"$022ReactionStep(activation of Rab7 by GEF5)":{"$":{"name":"ReactionStep(activation of Rab7 by GEF5)"},"_":"http://identifiers.org/go/GO:0017112","vcid":"ReactionStep(activation of Rab7 by GEF5)","qualifier":"(bio) isVersionOf","literalQualifier":"isVersionOf"},"$011ReactionStep(Hydrolysis of Rab7_GTP)":{"$":{"name":"ReactionStep(Hydrolysis of Rab7_GTP)"},"_":"http://identifiers.org/go/GO:0003924","vcid":"ReactionStep(Hydrolysis of Rab7_GTP)","qualifier":"(bio) isVersionOf","literalQualifier":"isVersionOf"}},"qualifier":"","literalQualifier":""}}

0 comments on commit 112ee61

Please sign in to comment.