Configuration API

Configuration Manager

class cgr_gwas_qc.config.ConfigMgr(root: pathlib.Path, user_config: pathlib.Path, sample_sheet_file: pathlib.Path)[source]

Manage all things config.

Example

>>> from cgr_gwas_qc import load_config
>>> cfg = load_config()  # must have ``config.yml`` and ``cgr_sample_sheet.csv`` in current directory.
CONDA_DIR: pathlib.Path = PosixPath('/home/runner/work/GwasQcPipeline/GwasQcPipeline/src/cgr_gwas_qc/workflow/conda')

The absolute path to the workflow/conda.

DD_DIR: pathlib.Path = PosixPath('/home/runner/work/GwasQcPipeline/GwasQcPipeline/src/cgr_gwas_qc/reporting/QC_Report_Data_Dictionary.xlsx')

The absolute path to the reporting/QC_Report_Data_Dictionary.xlsx.

MODULE_DIR: pathlib.Path = PosixPath('/home/runner/work/GwasQcPipeline/GwasQcPipeline/src/cgr_gwas_qc/workflow/modules')

The absolute path to the workflow/modules.

SCRIPTS_DIR: pathlib.Path = PosixPath('/home/runner/work/GwasQcPipeline/GwasQcPipeline/src/cgr_gwas_qc/workflow/scripts')

The absolute path to the workflow/scripts.

SNAKEFILE: pathlib.Path = PosixPath('/home/runner/work/GwasQcPipeline/GwasQcPipeline/src/cgr_gwas_qc/workflow/Snakefile')

The absolute path to the workflow/Snakefile.

SRC_DIR: pathlib.Path = PosixPath('/home/runner/work/GwasQcPipeline/GwasQcPipeline/src/cgr_gwas_qc')

The absolute path to cgr_gwas_qc source code.

SUBWORKFLOW_DIR: pathlib.Path = PosixPath('/home/runner/work/GwasQcPipeline/GwasQcPipeline/src/cgr_gwas_qc/workflow/sub_workflows')

The absolute path to the workflow/sub_workflows.

TEMPLATE_DIR: pathlib.Path = PosixPath('/home/runner/work/GwasQcPipeline/GwasQcPipeline/src/cgr_gwas_qc/reporting/templates')

The absolute path to the reporting/templates.

WORKFLOW_DIR: pathlib.Path = PosixPath('/home/runner/work/GwasQcPipeline/GwasQcPipeline/src/cgr_gwas_qc/workflow')

The absolute path to the workflow source code.

property cluster_groups

List of the cluster group names from cgr_sample_sheet.csv.

Example

>>> cfg = load_config()
>>> cfg.cluster_groups
["cgroup1", "cgroup2"]
classmethod conda(filename: str) → str[source]

Return path to a conda env file.

Given a conda env file_name, prepends the full path to that file.

property config

The user’s config settings from config.yml.

Example

>>> from cgr_gwas_qc import load_config
>>> cfg = load_config()
>>> cfg.config.software_params.maf_for_ibd
0.2
property data_dictionary

Return the path to the qc report data dictioanry.

property docx_template

Return the path to the docx template.

expand(file_pattern: str, combination: Callable = <class 'zip'>, query: Optional[str] = None) → List[str][source]

Use sample sheet columns to fill in file pattern

Parameters:
  • file_pattern – A snakemake compatible file name pattern.

  • combination – The combinatorial method to use (see snakemake.rules.expand). Defaults to zip.

  • query – A pandas.DataFrame.query to use to filter before expansion. Defaults to None.

Returns:

A list of expanded file names.

Example

>>> cfg = load_config()  # assuming ``cgr_sample_sheet.csv`` contains 3 samples SP00{1,2,3}
>>> cfg.expand("{Sample_ID}.txt")
["SP001.txt", "SP002.txt", "SP003.txt"]
>>> cfg.expand("{Sample_ID}.txt", query="Sample_ID == 'SP002'")
[SP002.txt"]
classmethod instance(pytest=False)[source]

Returns the active ConfigMgr instance.

This ensures that only 1 ConfigMgr is created per python session.

classmethod modules(filename: str) → str[source]

Return the path to a module file.

Given a rule file_name, prepends the full path to that module.

root: Path

The current working directory.

sample_sheet_file: Path

The cgr_sample_sheet.csv` in the current working directory.

classmethod scripts(filename: str) → str[source]

Return the path to an internal script.

Given a script file_name, prepends the full path to that script.

property ss

The user’s sample sheet data.

Example

>>> cfg = load_config()
>>> cfg.ss.head(2)
Sample_ID   Subject_ID    ...
    SP001        SB001    ...
    SP002        SB002    ...
classmethod subworkflow(workflow: str) → str[source]

Return the path to a sub-workflow.

Given a sub-workflow name, give the full path to the snakefile.

user_config: Path

The config.yml` in the current working directory.