SynBioHub is a Web-based repository for synthetic biology, enabling users to browse, upload, and share synthetic biology designs.
To learn more about the SynBioHub, including installation instructions and documentation, visit the SynBioHub wiki.
To access a sample instance of SynBioHub containing enriched Bacillus subtilis data, features from the Escherichia coli genome, and the complete iGEM Registry of Standard Biological Parts, visit synbiohub.org. To access a bleeding-edge version of SynBioHub, visit dev.synbiohub.org.
The recommended way to install SynBioHub is via the Docker image. See Installation for more information.
SynBioHub has both JavaScript (node.js) and Java components.
Linux (only tested with Ubuntu 18.04.01) or macOS
- If you're using macOS, first install homebrew
A JDK
OS | Command |
---|---|
Ubuntu | apt install default-jdk |
Mac | brew install openjdk |
OS | Command |
---|---|
Ubuntu | apt install maven |
Mac | brew install maven |
node.js >= 11.0.0
OS | Command/Link |
---|---|
Ubuntu | visit https://nodejs.org/en/ |
Mac | brew install node |
OpenLink Virtuoso 7.x.x
OS | Command/Link |
---|---|
Ubuntu | visit https://github.com/openlink/virtuoso-opensource |
Mac | brew install virtuoso |
OS | Command |
---|---|
Ubuntu | apt install raptor2-utils |
Mac | brew install raptor |
OS | Command |
---|---|
Ubuntu | apt install jq |
Mac | brew install jq |
- Install Virtuoso 7 from source at https://github.com/openlink/virtuoso-opensource
- Switch to the branch stable/7 before installing.
- Follow the README on installing virtuoso from source. This involves installing all the dependencies and running build commands.
- Currently, Virtuoso does not support versions of OpenSSL 1.1.0 and above, or versions of OpenSSL below 1.0.0. When installing the dependency, build from a binary between those versions from https://www.openssl.org/source/.
- Set up the Node.js repository
- Download the Node setup script
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
- Update your package repositories
apt update
- Download the Node setup script
- Install the necessary packages
apt install default-jdk maven raptor2-utils nodejs jq build-essential python
- Start virtuoso process
virtuoso-t +configfile /usr/local/virtuoso-opensource/var/lib/virtuoso/db/virtuoso.ini -f
- Install the necessary packages
brew install openjdk maven node virtuoso raptor jq python
- Start virtuoso process
cd /usr/local/Cellar/virtuoso/7.2.5.1_1/var/lib/virtuoso/db
- The command above is based on where the virtuoso.ini file is located. Your installation might be located
somewhere different than
/usr/local/Cellar/virtuoso/7.2.5.1_1/var/lib/virtuoso/db
, or the version might be different (7.2.5.1_1
might be7.3.6.1_1
or any other version number). - If you're having trouble finding the location of the virtuoso.ini file, run
sudo find / -name virtuoso.ini
. Press the control and c keys simultaneously to quit the search.
- The command above is based on where the virtuoso.ini file is located. Your installation might be located
somewhere different than
virtuoso-t -f
- Clone the SynBioHub repository
git clone https://github.com/SynBioHub/synbiohub
- Change to the SynBioHub directory
cd synbiohub
- Build the Java components with Maven
cd java && mvn package
- Return to the root directory and install the Node dependencies with yarn
cd ../ && yarn install
Make sure that yarn is being used, not 'cmdtest'. - Install nodemon and forever with
npm install nodemon -g && npm install forever -g
- Add SPARQL update rights to the dba user in virtuoso.
- Visit localhost:8890, click conductor on the left hand side, and login with user name dba and password dba.
- Visit system admin -> user accounts in the menu at the top.
- Find the accound labled dba and edit.
Add SPARQL_UPDATE to roles using the menu at the bottom. - If no dba account exists, add one, then add update rights.
- Start the SynBioHub process
npm start
ornpm run-script dev
The repository is set up to prohibit commits directly to the master branch.
Commits must be made in another branch, and then a GitHub PR used to merge them into master.
GitHub PRs must be approved by at least one other developer before they can be merged into master.
Additionally, they must pass Travis checks, which build a Docker image and run the SBOLTestSuite and SynBioHub integration tests against it.
Each time a PR is merged into master, the Travis checks are re-run on the master branch, and if they succeed the resulting image is pushed by Travis to DockerHub under the tag snapshot-standalone
.
Releases are published automatically using GitHub Actions. There is an action which fires on release publication. It publishes an image to Docker Hub under the $VERSION-standalone tag, and updates the synbiohub-docker master branch to point to this version. More information available here.