This package can deploy a AACR GENIE like project on Synapse and perform validation and processing of files.
Dependencies:
- Python 3.7 or higher
- synapseclient (
pip install synapseclient
) - Python pandas (
pip install pandas
)
pip install synapsegenie
synapsegenie -v
Please view the example registry to learn how to utilize synapsegenie
. synapsegenie
allows a user to create a registry package with a list of file formats. Each of these file format classes should extend synapsegenie.example_filetype_format.FileTypeFormat
. Learn more about creating Python packages here. Once you have installed your registry package, you can now use the synapsegenie
command line client.
A synapsegenie
Synapse project must exist for you to fully utilize this package. There is now a command to create this infrastructure in Synapse. If you already have an existing Synapse Project you would like to use, please use the --project_id
parameter, otherwise please use the --project_name
parameter to create a new Synapse project.
synapsegenie bootstrap-infra --format_registry_packages example_registry \
--project_name "My Project Name"
--centers AAA BBB CCC
If you decide to add centers at a later date, you can re-run this command and the center will be added
synapsegenie bootstrap-infra --format_registry_packages example_registry \
--project_id syn12345
--centers AAA BBB CCC DDD
The synapsegenie
package also has a function to run the validator locally on all of your files. Please view the help to see how to run to validator.
synapsegenie validate-single-file -h
synapsegenie /path/to/file center_name \
--format_registry_packages example_registry \
--project_id syn12345 \ # Run bootstrap-infra to create a Synapse project
synapsegenie
will validate and process all the files uploaded by centers. Every valid file will be processed and uploaded into Synapse tables. syn22337078 is a test project.
synapsegenie process -h
# only validate
synapsegenie process --format_registry_packages example_registry \
--project_id syn22337078 \
--only_validate
# Don't download the files, only get the entity for validation
# Sometimes there may be large files in your project which you don't
# want to download
synapsegenie process --format_registry_packages example_registry \
--project_id syn22337078 \
--only_validate \
--only_get_entity
# validate + process
synapsegenie process --format_registry_packages example_registry \
--project_id syn22337078
To learn how to contribute, please read the contributing guide