REACTOME is an open-source, open access, manually curated and peer-reviewed pathway database.
To setup a local environment
npm install --legacy-peer-deps
npm startReactome has a wide range of features, to explore more of Reactome or get more information visit the documentation page or see the /documentation folder in the root directory.
Four libraries live in this repo under projects/ and build to dist/. The apps consume them from there (via the dist/ entry in each project's stylePreprocessorOptions.includePaths, and the paths mappings in tsconfig.json), not from node_modules — so they must be built before the app will compile:
| project | contents |
|---|---|
reactome-cytoscape-style | diagram rendering styles + drawing helpers |
ngx-reactome-style | shared Angular Material theme (Sass only, no TypeScript) |
reactome-table | the editable data grid |
reactome-gsa-form | the ReactomeGSA analysis wizard (NgRx-backed) |
npm start builds them for you. To build them by hand:
npm run build:libs # ngx-reactome-style, reactome-table, reactome-gsa-form
ng build reactome-cytoscape-style # or `npm run dev:reactome-cytoscape-style` to watchThe last three were previously separate npm packages (reactome-gsa-form, reactome-table and reactome-table-wc from reactome/gsa-frontend; ngx-reactome-style published standalone). They were absorbed here so their Angular/NgRx peer dependencies stay in lockstep with the rest of the workspace instead of pinning it to an older major. They can still be published to npm from this repo — build, then npm publish dist/<name>.
The application configuration is centralized in TypeScript files under projects/website-angular/src/config/. Key configurations include:
config.ts: App-level settings like version, base URLs, and feature flags.environments.ts: Per-deploy-environment settings (development, production, local, github, remote) — currently only consumed byprojects/pathway-browser/src/environments/environment.*.ts, since the deployedreactomebuild resolves its host dynamically fromwindow.location.origininstead (see below).features.ts: Feature flags for toggling functionality.external-links.ts: External links, including dynamically constructed release notes.
To update configuration values, edit the respective TS files.
The single source of truth for backend URLs (CONTENT_SERVICE, ANALYSIS_SERVICE, DOWNLOAD, etc.) is projects/pathway-browser/src/environments/environment.ts — imported by both pathway-browser and website-angular code. Don't duplicate these constants elsewhere; if a page needs a backend URL, import it from here.
This app builds as one of two variants, controlled by projects/pathway-browser/src/environments/variant.ts (variant.curator.ts is swapped in via the curator Angular build configuration's fileReplacements):
- main (default) — the public reactome.org/beta.reactome.org site. Host resolves dynamically from
window.location.origin. - curator — a scaled-down build for
newcurator.reactome.org, pointing at the curation graph database (GraphContentServiceinstead ofContentService) rather than the released production graph. Host is fixed tohttps://newcurator.reactome.orgregardless of what domain the frontend bundle is served from, since it's always the same backend. Several UI elements (Analyze/Compare/Overlay/Feedback/the old-browser link) are hidden for this variant, and the homepage renders a different, curator-specific layout (curator-home-shortcutsinstead ofhome-shortcuts).
environment.ts exports IS_CURATOR (derived from variant.ts) for any code that needs to branch on the variant — gate curator-only UI with @if (!isCurator) / @if (isCurator) (see viewport.component.ts/.html for the pattern), don't check SITE_VARIANT directly outside environment.ts.
To build/serve the curator variant locally: ng build reactome --configuration development,curator or ng serve --configuration development,curator.