Using Node.js version 20.10.0
, run npm install
in the root directory of the repository to install dependencies.
The app can be run for development using npm run dev
, and accessed at http://localhost:3000
.
Run npm run build:local
to build. The built app can be run using npm start
, and accessed at http://localhost:3000
.
Using Python version 3.12.4 is recommended.
Create a Python virtual environment and install requirements:
python3 -m venv ./venv
source ./venv/bin/activate
pip install -r ./catalog/build/py/requirements.txt
Then run the script:
npm run build-files-from-ncbi
The environment can be deactivated by running deactivate
, and re-activated by running source ./venv/bin/activate
again.
To build catalog data for use by the app, run the script:
npm run build-brc-db
The list of assemblies is defined in the YAML file catalog/source/assemblies.yml
. Assemblies are labeled
with comments specifying the species name (as defined by NCBI), and sorted alphabetically by species.
To add a new assembly, add a new list item to the assemblies
entry in the YAML, labeled and sorted as appropriate,
consisting of a dictionary with a single entry, accession
, specifying the assembly's accession.
For instance, to add a new assembly for Anopheles gambiae with the accession XXX_000000000.0
, add this line below
the # Anopheles gambiae
comment:
- accession: XXX_000000000.0
Run
npm run iwc-manifest-to-workflows-yaml
npm run build-brc-db
to fetch a list of current workflows from https://iwc.galaxyproject.org/workflow_manifest.json.
Only workflows for currently enabled categories are fetched.
If necessary, update parameters that require a reference genome id, fasta or gtf file to include the variable slot, containing one of ASSEMBLY_ID
, ASSEMBLY_FASTA_URL
, or GENE_MODEL_URL
.
These values will be substituted with assembly-specific values at runtime.
If the LinkML schemas in catalog/schema
are edited, the derived JSON schemas and TypeScript definitions should be updated
as follows:
- Ensure that the Python virtual environment is activated, as described above.
- Run
npm run gen-schema
.
The run-checks
GitHub workflow performs checks to ensure that the catalog data and schemas are well-formed; this is done by:
- Linting the schemas via
linkml-lint
. - Converting the schemas to Python, to catch any errors that occur.
- Validating the catalog source files against their corresponding schemas.