Source code for plateo.exporters.plate_to_genesift_sequencing_order_spreadsheet

from copy import deepcopy

from .plate_to_tables import plate_to_pandas_dataframe
from ..tools import number_to_rowname


[docs]def plate_to_genesift_sequencing_order_spreadsheet(plate, output_file, sample_name_function, well_filter=None, direction='row'): """Generate an excel spreadsheet for ordering through Genesift Parameters ---------- plate output_file sample_name_function A function f(well) => Sample name well_filter A function f(well) => True/false Example: -------- >>> plate_to_genesift_sequencing_order_spreadsheet( plate, output_file="genesift.xls", sample_name_function= lambda well: data['part_name'] , well_filter=lambda well: data.get('part_name', False) direction='column') """ if well_filter is None: well_filter = lambda w: True new_plate = deepcopy(plate) def position_function(well): return number_to_rowname(well.row) + "%02d" % well.column def sample_function(well): return sample_name_function(well) if well_filter(well) else None new_plate.compute_data_field("Position", position_function) new_plate.compute_data_field("Sample", sample_function) dataframe = plate_to_pandas_dataframe(new_plate, direction=direction) dataframe = dataframe[["Position", "Sample"]] dataframe = dataframe[[(e is not None) for e in dataframe['Sample']]] dataframe.to_excel(output_file, index=False)