CNSistent is a Python tool for processing and analyzing copy number data. It is designed to work with data from a variety of sources. The tool is designed to be easy to use, and to provide a comprehensive set of analyses and visualizations.
READ THE DOCS HERE
CNSistent can be used as a Python package, or downloaded together with the respective data (PCAWG, TRACERx, TCGA, genomic locations):
Installation
Option 1: Full package with the data
git clone git@github.com:ICCB-Cologne/CNSistent.git
cd CNSistent
pip install -e ".[plot]"
wget -O out.tar.gz https://zenodo.org/records/14547456/files/out.tar.gz
mkdir -p out
tar -xzf out.tar.gz -C ./out
rm out.tar.gz
Note: the input data are part of the repository. The processed data can be downloaded and decompressed directly as shown above. Alternative is to generate the by running the
./scripts/data_process.shand./scripts/data_aggregate.sh.
Option 2: PIP package only
pip install CNSistent
The plotting API (cns.fig_*, cns.plot_*) needs matplotlib, which is not installed by
default, as none of the CLI commands require it. To use it, install the plot extra:
pip install "CNSistent[plot]"
Numba is installed by default and is used to compile the aggregation and clustering
kernels. It is not strictly required, pip install --no-deps environments without it
still work, at roughly half the aggregation speed.
Data
The input dataset is also availble on Zenodo:
The processed data is available on Zenodo:
Deep learning code is available on Zenodo:
Acessions
The contents of the data folder were obtained by processing the following sources, accessed in December 2023.
TCGA data obtained from ASCATv3 at: https://github.com/VanLoo-lab/ascat/tree/master/ReleasedData
Cite: https://www.pnas.org/doi/full/10.1073/pnas.1009843107
The results published here are in part based upon data generated by the TCGA Research Network: https://www.cancer.gov/tcga.
PCAWG data obtained from: https://dcc.icgc.org/releases/PCAWG/consensus_cnv Cite: https://www.nature.com/articles/s41587-019-0055-9
TRACERx data obtained from: https://zenodo.org/records/7649257
Cite: https://www.nature.com/articles/s41586-023-05729-x
COSMIC cancer set obtained from: https://cancer.sanger.ac.uk/census
Cite: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6450507
Human genome gene set obtained using PyENSEMBL (2023). Cite: https://academic.oup.com/nar/article/51/D1/D933/6786199
Cytoband, Gap data obtained from: https://genome.ucsc.edu Cite: https://www.nature.com/articles/35057062
Common fragile sites obtained from the HumCFS database: https://webs.iiitd.edu.in/raghava/humcfs/
Cite: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6394038
The HumCFS GRCh38/hg38 sites are cleaned and lifted over to hg19 (UCSC chain) by scripts/build_fragile_sites.py; see cns/utils/fragile_sites.py for the processing details.
Licenses
Cite Adam Streck, Roland F Schwarz, CNSistent integration and feature extraction from somatic copy number profiles, GigaScience, Volume 14, 2025, giaf104.
The code is available under the MIT License.
The data and text files in the data and docs folders are available under the CC BY-NC 4.0 license.
Metadata
Release files for CNSistent 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cnsistent-1.1.1.tar.gz | 80.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cnsistent-1.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 168.5 kB
Release files / cnsistent-1.1.1.tar.gz
| Download URL | cnsistent-1.1.1.tar.gz |
|---|---|
| Size | 80.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dcc20a2da8ac1a3bece961a80d89bbcf47a5595996ca2106fbeaa091a264d39b
|
|
BLAKE2b-256 checksum How to use checksums |
88929d793bb26467e1dbf75b3a5ad447eeb35a4c80185b4b3a549a778a43ca97
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.
Transparency logRelease files / cnsistent-1.1.1-py3-none-any.whl
| Download URL | cnsistent-1.1.1-py3-none-any.whl |
|---|---|
| Size | 87.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0847af353d9482d2ef6274ac926e7f9a5d2a9a63c829e61254c3a1a451b91da9
|
|
BLAKE2b-256 checksum How to use checksums |
64b517f634d4dca101840ab8b0038d13e741c9d1141cfa2534087dcd2b386e07
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 18, 2026.
Transparency log