Skip to main content

Thunor

Thunor (pronounced THOO-nor) is a free software platform to manage, visualise, and analyse high throughput screen (HTS) data, which measures the dose-dependent response of cells to one or more drugs.

This repository, Thunor Core, is a Python package which can be used for standalone analysis or integration into computational pipelines. There is also a web interface, Thunor Web, built around this package with added database, multi-user capabilities, drag-and-drop upload of cell count data, automatic calculation of dose response curves, and an interactive multi-panelled plot system (demo).

Overview

Thunor makes extensive use of pandas and plotly to manage HTS data at scale.

The data model centres around the thunor.io.HtsPandas container, which internally keeps three aligned tables:

  • doses: per-well experiment annotations (drug identity, cell line, dose)
  • assays: time-series measurements indexed by assay name, well, and timepoint
  • controls: untreated wells stored separately, available for normalisation

A typical analysis looks like this:

from thunor.io import read_hdf
from thunor.dip import dip_rates
from thunor.curve_fit import fit_params
from thunor.plots import plot_drc

dataset = read_hdf('my_data.h5')
ctrl_dip_data, expt_dip_data = dip_rates(dataset)
fp = fit_params(ctrl_dip_data, expt_dip_data)
plot_drc(fp).show()
  1. Load a dataset with read_hdf() or read_vanderbilt_hts().
  2. Derive response metrics with dip_rates() or viability().
  3. Fit dose-response curves with fit_params().
  4. Visualise the result with one of the plotting helpers in thunor.plots.

Input formats

Thunor reads two formats:

  • HDF5 (.h5): the native round-trip format, written by write_hdf().
  • Vanderbilt HTS (.txt/.tsv/.csv): a tab-separated text format where each row is one well at one timepoint.

A minimal Vanderbilt HTS file (columns are tab-separated):

upid    well  cell.line  drug1          drug1.conc  drug1.units  time  cell.count
Plate1  A1    MCF7       Staurosporine  1e-9        M            0     1000
Plate1  A1    MCF7       Staurosporine  1e-9        M            24    1250
Plate1  B1    MCF7                      0           M            0     1010
Plate1  B1    MCF7                      0           M            24    2020

Rows where drug1.conc is 0 are treated as control wells. See the format reference for full column details.

Installation

Thunor Core requires Python 3.11 or later. Install using pip:

pip install thunor

Examples and documentation

View the Thunor Core documentation online, or you can build it locally for offline use. To do so, clone this git repository, then run:

pip install -e '.[docs]'
cd doc
make html

After the build completes, open _build/html/index.html in your web browser.

The docs include:

  • a worked notebook tutorial using hts007, a bundled breast cancer DIP rate screen
  • a Vanderbilt HTS format reference with column definitions and an example
  • an implementation guide covering the internal data model and analysis pipeline
  • API reference pages for I/O, DIP rates, viability, curve fitting, plotting, and format converters

Tutorial

The tutorial walks through a complete DIP rate analysis using hts007, a bundled dataset of 27 drugs tested on 8 breast cancer cell lines with cell count measurements taken over approximately 5 days.

To work through it locally, install the package and open the notebook directly:

pip install thunor
jupyter notebook doc/tutorial.ipynb

Citation

Lubbock A.L.R., Harris L.A., Quaranta V., Tyson D.R., Lopez C.F. Thunor: visualization and analysis of high-throughput dose–response datasets Nucleic Acids Research (2021), gkab424.

Further help and resources

See the Thunor website for further links, documentation and related projects.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

thunor-1.0.2.tar.gz (455.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

thunor-1.0.2-py3-none-any.whl (259.3 kB view details)

Uploaded Python 3

File details

Details for the file thunor-1.0.2.tar.gz.

File metadata

  • Download URL: thunor-1.0.2.tar.gz
  • Upload date:
  • Size: 455.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for thunor-1.0.2.tar.gz
Algorithm Hash digest
SHA256 c616dd1d5df9cf277bd3396b177c5c5aaab86fc580502c335df354e17ae814cd
MD5 82619e43fa3bb9d668a3b7cfd3488f42
BLAKE2b-256 0e83c94d5bd3569dbbd3e819edfdcf2cbd260e51ba34906baa919ddde688b22e

See more details on using hashes here.

Provenance

The following attestation bundles were made for thunor-1.0.2.tar.gz:

Publisher: python-publish.yml on alubbock/thunor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file thunor-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: thunor-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 259.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for thunor-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b660b7641a708079a8b0196193ef03afbbb2460484068d51413281797953dfe8
MD5 aab5f9b458845769e2c96420ab4d937f
BLAKE2b-256 1035e1a7d38a9a39532dc7b5dc5627e3e442d62917c74bd776e746c503858186

See more details on using hashes here.

Provenance

The following attestation bundles were made for thunor-1.0.2-py3-none-any.whl:

Publisher: python-publish.yml on alubbock/thunor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page