Observed since 20 Oct, 16:51 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
AACR Project GENIE ETL

This repository documents code used to gather, QC, standardize, and analyze data uploaded by institutes participating in AACR's Project GENIE (Genomics, Evidence, Neoplasia, Information, Exchange).
For more information about the AACR genie repository, visit the GitHub Pages site.
This package contains both R, Python and cli tools. These are tools or packages you will need, to be able to reproduce these results:
pip install -r requirements.txtrenv::install()brew install javabrew install wgetPlease see the local file validation tutorial for more information on this and how to use it.
Please view contributing guide to learn how to contribute to the GENIE package.
These are instructions on how you would setup your environment and run the pipeline locally.
docker) Be sure to clone the cbioportal repo: https://github.com/cBioPortal/cbioportal and git checkout the version of the repo pinned to the Dockerfiledocker) Be sure to clone the annotation-tools repo: https://github.com/Sage-Bionetworks/annotation-tools and git checkout the version of the repo pinned to the Dockerfile. (Not needed if developing with docker)condaFollow instructions to install conda on your computer:
Install conda-forge and mamba
conda install -n base -c conda-forge mamba
Install Python and R versions via mamba
mamba create -n genie_dev -c conda-forge python=3.10 r-base=4.3
pipenvInstalling via pipenv
Specify a python version that is supported by this repo:
pipenv --python <python_version>
Activate your pipenv:
pipenv shell
docker (HIGHLY Recommended)This is the most reproducible method even though it will be the most tedious to develop with. See CONTRIBUTING docs for how to locally develop with docker.. This will setup the docker image in your environment.
Pull pre-existing docker image or build from Dockerfile: Pull pre-existing docker image. You can find the list of images from here.
docker pull <some_docker_image_name>
Build from Dockerfile.
docker build -f Dockerfile -t <some_docker_image_name> .
Run docker image:
docker run --rm -it -e SYNAPSE_AUTH_TOKEN=$YOUR_SYNAPSE_TOKEN <some_docker_image_name>
Clone this repo and install the package locally.
Install Python packages. This is the more traditional way of installing dependencies. Follow instructions here to learn how to install pip.
pip install -e .
pip install -r requirements.txt
pip install -r requirements-dev.txt
Install R packages. Note that the R package setup of this is the most unpredictable so it's likely you have to manually install specific packages first before the rest of it will install.
Rscript R/install_packages.R
Configure the Synapse client to authenticate to Synapse.
~/.synapseConfig file
[authentication]
authtoken = <PAT here>
export SYNAPSE_AUTH_TOKEN=<PAT here>
synapse login
Run the different steps of the pipeline on the test project. The --project_id syn7208886 points to the test project. You should always be using the test project when developing, testing and running locally.
Validate all the files excluding vcf files:
python3 bin/input_to_database.py main --project_id syn7208886 --onlyValidate
Validate all the files:
python3 bin/input_to_database.py mutation --project_id syn7208886 --onlyValidate --genie_annotation_pkg ../annotation-tools
Process all the files aside from the mutation (maf, vcf) files. The mutation processing was split because it takes at least 2 days to process all the production mutation data. Ideally, there is a parameter to exclude or include file types to process/validate, but that is not implemented.
python3 bin/input_to_database.py main --project_id syn7208886 --deleteOld
Process the mutation data. This command uses the annotation-tools repo that you cloned previously which houses the code that standardizes/merges the mutation (both maf and vcf) files and re-annotates the mutation data with genome nexus. The --createNewMafDatabase will create a new mutation tables in the test project. This flag is necessary for production data for two main reasons:
Tables in the test synapse project and try again.python3 bin/input_to_database.py mutation --project_id syn7208886 --deleteOld --genie_annotation_pkg ../annotation-tools --createNewMafDatabase
Create a consortium release. Be sure to add the --test parameter. For consistency, the processingDate specified here should match the one used in the consortium_map for the TEST key nf-genie.
python3 bin/database_to_staging.py <processingDate> ../cbioportal TEST --test
Create a public release. Be sure to add the --test parameter. For consistency, the processingDate specified here should match the one used in the public_map for the TEST key nf-genie.
python3 bin/consortium_to_public.py <processingDate> ../cbioportal TEST --test
Navigate to your cloned repository on your computer/server.
Make sure your develop branch is up to date with the Sage-Bionetworks/Genie develop branch.
cd Genie
git checkout develop
git pull
Create a feature branch which off the develop branch. If there is a GitHub/JIRA issue that you are addressing, name the branch after the issue with some more detail (like {GH|GEN}-123-add-some-new-feature).
git checkout -b GEN-123-new-feature
At this point, you have only created the branch locally, you need to push this remotely to Github.
git push -u origin GEN-123-new-feature
Add your code changes and push them via useful commit message
git add
git commit changed_file.txt -m "Remove X parameter because it was unused"
git push
Once you have completed all the steps above, in Github, create a pull request (PR) from your feature branch to the develop branch of Sage-Bionetworks/Genie.
See using docker for setting up the initial docker environment.
A docker build will be created for your feature branch every time you have an open PR on github and add the label run_integration_tests to it.
It is recommended to develop with docker. You can either write the code changes locally, push it to your remote and wait for docker to rebuild OR do the following:
Make any code changes. These cannot be dependency changes - those would require a docker rebuild.
Create a running docker container with the image that you pulled down or created earlier
docker run -d <docker_image_name> /bin/bash -c "while true; do sleep 1; done"
Copy your code changes to the docker image:
docker cp <folder or name of file> <docker_image_name>:/root/Genie/<folder or name of files>
Run your image in interactive mode:
docker exec -it -e SYNAPSE_AUTH_TOKEN=$YOUR_SYNAPSE_TOKEN <docker_image_name> /bin/bash
Do any commands or tests you need to do
Follow this section when modifying the Dockerfile:
docker build -f Dockerfile -t <some_docker_image_name> .docker run --rm -it -e SYNAPSE_AUTH_TOKEN=$YOUR_SYNAPSE_TOKEN <some_docker_image_name>Currently our Github Actions will run unit tests from our test suite /tests and run integration tests - each of the pipeline steps here on the test pipeline.
These are all triggered by adding the Github label run_integration_tests on your open PR.
To trigger run_integration_tests:
run_integration_tests for the first time when you just open your PRrun_integration_tests label and re-add itIf you are developing with docker, docker images for your feature branch also gets build via the run_integration_tests trigger so check that your docker image got successfully deployedhere.
Unit tests in Python are also run automatically by Github Actions on any PR and are required to pass before merging.
Otherwise, if you want to add tests and run tests outside of the CI/CD, see how to run tests and general test development
See running pipeline steps here if you want to run the integration tests locally.
You can also run them in nextflow via nf-genie
The production pipeline is run on Nextflow Tower and the Nextflow workflow is captured in nf-genie. It is wise to create an ec2 via the Sage Bionetworks service catalog to work with the production data, because there is limited PHI in GENIE.
For technical details about our CI/CD, please see the github workflows README
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 17.1.0 | 19 Feb 2026 | 15 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 16:51 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:eb0a7156d1fe9ed4ef67c9351f1b0ce60aa068608eb7be63a78ab2450816f1fa