I/O, file reading and writing, core formats (thunor.io)

class thunor.io.HtsPandas(doses, assays, controls)

High throughput screen dataset

Represented internally using pandas dataframes

Parameters:
  • doses (pd.DataFrame) – DataFrame of doses
  • assays (pd.DataFrame) – DataFrame of assays
  • controls (pd.DataFrame) – DataFrame of controls
cell_lines

List of cell lines in the dataset

Type:list
drugs

List of drugs in the dataset

Type:list
assay_names

List of assay names in the dataset

Type:list
dip_assay_name

The assay name used for DIP rate calculations, e.g. “Cell count”

Type:str
doses_unstacked()

Split multiple drugs/doses into separate columns

filter(cell_lines=None, drugs=None, plate=None)

Filter by cell lines and/or drugs

“None” means “no filter”

Parameters:
  • cell_lines (Iterable, optional) – List of cell lines to filter on
  • drugs (Iterable, optional) – List of drugs to filter on
  • plate (Iterable, optional) –
Returns:

A new dataset filtered using the supplied arguments

Return type:

HtsPandas

plate(plate_name, plate_size=384, include_dip_rates=False)

Return a single plate in PlateData format

Parameters:
  • plate_name (str) – The name of a plate in the dataset
  • plate_size (int) – The number of wells on the plate (default: 384)
  • include_dip_rates (bool) – Calculate and include DIP rates for each well if True
Returns:

The plate data for the requested plate name

Return type:

PlateData

class thunor.io.PlateData(width=24, height=16, dataset_name=None, plate_name=None, cell_lines=[], drugs=[], doses=[], dip_rates=[])

A High Throughput Screening Plate with Data

exception thunor.io.PlateFileParseException
class thunor.io.PlateMap(**kwargs)

Representation of a High Throughput Screening plate

Parameters:kwargs (dict, optional) – Optionally supply “width” and “height” values for the plate
col_iterator()

Iterate over the column numbers in the plate

Returns:Iterator over the column numbers (1, 2, 3, etc.)
Return type:Iterator of int
num_wells

Number of wells in the plate

classmethod plate_size_from_num_wells(num_wells)

Calculate plate size from number of wells, assuming 3x2 ratio

Parameters:num_wells (int) – Number of wells in a plate
Returns:Width and height of plate (numbers of wells)
Return type:tuple
row_iterator()

Iterate over the row letters in the plate

Returns:Iterator over the row letters (A, B, C, etc.)
Return type:Iterator of str
well_id_to_name(well_id)

Convert a Well ID into a well name

Well IDs use a numerical counter from left to right, top to bottom, and are zero based.

Parameters:well_id (int) – Well ID on this plate
Returns:Name for this well, e.g. A1
Return type:str
well_iterator()

Iterator over the plate’s wells

Returns:Iterator over the wells in the plate. Each well is given as a dict of ‘well’ (well ID), ‘row’ (row character) and ‘col’ (column number)
Return type:Iterator of dict
well_list()

List of the plate’s wells

Returns:The return value of well_iterator() as a list
Return type:list
well_name_to_id(well_name, raise_error=True)

Convert a well name to a Well ID

Parameters:
  • well_name (str) – A well name, e.g. A1
  • raise_error (bool) – Raise an error if the well name is invalid if True (default), otherwise return -1 for invalid well names
Returns:

Well ID for this well. See also well_id_to_name()

Return type:

int

thunor.io.read_hdf(filename_or_buffer)

Read a HtsPandas dataset from Thunor HDF5 format file

Parameters:filename_or_buffer (str or object) – Filename or buffer from which to read the data
Returns:Thunor HTS dataset
Return type:HtsPandas
thunor.io.read_vanderbilt_hts(file_or_source, plate_width=24, plate_height=16, sep=None, _unstacked=False)

Read a Vanderbilt HTS format file

See the wiki for a file format description

Parameters:
  • file_or_source (str or object) – Source for CSV data
  • plate_width (int) – Width of the microtiter plates (default: 24, for 384 well plate)
  • plate_height (int) – Width of the microtiter plates (default: 16, for 384 well plate)
  • sep (str) – Source file delimiter (default: detect from file extension)
Returns:

HTS Dataset containing the data read from the CSV

Return type:

HtsPandas

thunor.io.write_hdf(df_data, filename, dataset_format='fixed')

Save a dataset to Thunor HDF5 format

Parameters:
  • df_data (HtsPandas) – HTS dataset
  • filename (str) – Output filename
  • dataset_format (str) – One of ‘fixed’ or ‘table’. See pandas HDFStore docs for details
thunor.io.write_vanderbilt_hts(df_data, filename, plate_width=24, plate_height=16, sep=None)

Read a Vanderbilt HTS format file

See the wiki for a file format description

Parameters:
  • df_data (HtsPandas) – HtsPandas - HTS dataset
  • filename (str or object) – filename or buffer to write into
  • plate_width (int) – plate width (number of wells)
  • plate_height (int) – plate height (number of wells)
  • sep (str) – Source file delimiter (default: detect from file extension)