A web application for exploring population scale genomic studies.
More info: https://sgc.garvan.org.au
Built with latest angular.
We use angular-cli for development. It handles scaffolding, configuration, development hosting and more.
- Node 6.9.0 or higher
- NPM 3 or higher.
npm install -g @angular/cli
npm install
ng serve
The general structure is scaffolded by angular-cli.
The app src code structure:
-- app
-- components
-- pages // a component that can be directly navigated to by the router
-- parts // all the components that make up the pages
-- mocks // simple mocks for tests
-- model // classes that encapsulate the domain
-- services // injectable services that facilitate communication between components
-- shared // some shared code
-- assets // all the assets for the website (copied to dist on build)
-- environments // the different environents for build targets
To run tests
ng test
There are a minimum set of functional tests that check that critical features work
To run tests
ng e2e
The application connects to a number of external services, all of which are defined in src/environments.
A minimum variantstore backed by MySQL
A service for searching for gene information.
Used for genomic reference information.
Used for querying variants across different datasets and organizations.
Our identity service. Provides identity and authentication.
Tracks any unhandled errors
A variant store backed by an in-memory GPU Database MapD that supports cross dimensional charts.
Travis handles our build, testing and deployment.
We have a CI pipeline set up that hosts on firebase. See .travis.yml and deploy for more info.
The final production build which is hosted at https://sgc.garvan.org.au is still manually deployed.
Special thanks to Miguel Pignatelli for his help with the tnt genome browser.