A command-line interface for interacting with the CIDC.
Project description
Branch | Status | License |
---|---|---|
Master |
CIDC-CLI
Command line tool for interfacing with the CIDC API.
Setup
Install the CIDC-CLI
pip3 install cidc-cli
Run the CIDC-CLI
To display the help message for the CLI, run:
cidc
To authenticate with the CIDC API, run:
cidc login [token]
Development
For local development, first install the development dependencies:
pip install -r requirements.dev.txt
Then, install and configure the pre-commit hooks:
pre-commit install
JIRA Integration
To set-up the git hook for JIRA integration, run:
ln -s ../../.githooks/commit-msg .git/hooks/commit-msg
chmod +x .git/hooks/commit-msg
rm .git/hooks/commit-msg.sample
This symbolic link is necessary to correctly link files in .githooks
to .git/hooks
. Note that setting the core.hooksPath
configuration variable would lead to pre-commit failing. The commit-msg
hook runs after the pre-commit
hook, hence the two are de-coupled in this workflow.
To associate a commit with an issue, you will need to reference the JIRA Issue key (For eg 'CIDC-1111') in the corresponding commit message.
Admin functions
Under the (hidden) admin
are several functions meant for CIDC administators / engineers.
CSMS
cidc admin test-csms
A simple API hit for a test of CSMS connection. Hits API endpoint /admin/test_csms
which in turn gets CSMS's /docs
.
This tests that the API is able to successfully make connection with the CSMS, as the /docs
endpoint requires authorization.
As the API endpoint is protected, only users with role cidc-admin
can make this request.
dbedit suite
A set of commands to list / remove data from the database, including shipments, clinical data, and assay/analysis data.
It directly uses Google's cloud SDK to make a direct connection to the postgres cloud sql database, so it requires the user has cloudsql.instances.connect
IAM permission.
Authentication
Authentication uses Application Default Credentials (ADC). Log-in is done via:
gcloud auth application-default login
Configuration
Configuration of the environment ie staging versus production is done as above using:
cidc config get-env
cidc config set-env ENV
Configuration of the database username is done via a pair of functions:
cidc admin get-username
cidc admin set-username USERNAME
The password is requested every time you issue a command so as to not store it.
Listing data
Under the list
subcommand of cidc admin
, you can get descriptions of the data available in the database.
-
cidc admin list clinical TRIAL_ID
- prints a table describing all shipments for the given trial
- with the following columns:
object_url
,filename
,num_participants
,created
,comment
-
cidc admin list misc-data TRIAL_ID
- prints a table describing all misc_data files for the given trial
- with the following columns:
batch_id
,object_url
,filename
,created
,description
-
cidc admin list shipments TRIAL_ID
- prints a table describing all shipments for the given trial
- with the following columns:
upload_type
,manifest_id
,num_samples
,created
-
cidc admin list assay TRIAL_ID ASSAY_OR_ANALYSIS
- prints a table listing all samples for the given assay/analysis and trial
- any of the following values are allowed:
clinical_data
, same ascidc admin list clinical TRIAL_ID
misc_data
, same ascidc admin list misc-data TRIAL_ID
- analyses:
atacseq_analysis
,ctdna_analysis
,cytof_analysis
,microbiome_analysis
,rna_level1_analysis
,tcr_analysis
,wes_analysis
,wes_analysis_old
,wes_tumor_only_analysis
,wes_tumor_only_analysis_old
- assays:
atacseq
,ctdna
,cytof
,hande
,ihc
,elisa
,microbiome
,mif
,nanostring
,olink
,rna
,tcr
,wes
Removing data
Under the remove
subcommand of cidc admin
, you can remove a wide variety of data from the JSON blobs.
-
cidc admin remove clinical TRIAL_ID TARGET_ID
- removes a given clinical data file from a given trial's metadata as well as the file itself from the portal
TARGET_ID
is thefilename
of the clinical data to remove, as fromcidc admin list clinical TRIAL_ID
- special value
'*'
for all files for this trial
- special value
-
cidc admin remove shipment TRIAL_ID TARGET_ID
- removes a given shipment from a given trial's metadata
TARGET_ID
is themanifest_id
of the shipment to remove, as fromcidc admin list shipments TRIAL_ID
-
cidc admin remove assay TRIAL_ID ASSAY_OR_ANALYSIS TARGET_ID
- removes a given clinical data file from a given trial's metadata as well as the associated files themselves from the portal
- for
ASSAY_OR_ANALYSIS=clinical_data
, same ascidc admin remove clinical TRIAL_ID TARGET_ID
TARGET_ID
is a tuple of the ids to find the data to remove, as fromcidc admin list assay TRIAL_ID ASSAY_OR_ANALYSIS
.- It cannot go past where is divisible in the data, but can end early to remove the whole section.
- Namely:
elisa
: requires onlyassay_run_id
misc_data
,olink
: requirebatch_id
with an optionalfilename
nanostring
: requiresbatch_id
and optionalrun_id
rna_level1_analysis
,wes_tumor_only_analysis
,wes_tumor_only_analysis_old
: requires onlycimac_id
wes_analysis
,wes_analysis_old
: requires onlyrun_id
- otherwise: requires
batch_id
and optionalcimac_id
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for cidc_cli-0.10.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b14d139e793b9456d4b7ee31d9bf8d4795530f8b68bacf86a044cecc65ca1ad |
|
MD5 | 2796035d133afcb0bb590613d6a89ea0 |
|
BLAKE2b-256 | 0cb541d58196633c7cc65ced9d37c8a80f43bdda4301c4a100209282cb0c4582 |