This is a little script I put together to do LASSO linear/logistic regression on plate reader data (mean fluorescence intensity) that includes positive and negative controls, such as when screening a library of compounds.
The data should be contained within a folder and can include multiple tab-separated (TSV) files- one file per plate. The plates should be named according to the following nomenclature Experiment_[#]_Plate_[#].tsv, and contain the following information:
name | Plate.ID | Well | MFI | Runtime |
---|---|---|---|---|
NOCPD | 1 | A1 | 38013 | 08/11/2025 11:00 |
CPD_12345 | 1 | A2 | 51029 | 08/11/2025 11:02 |
CPD_00000 | 1 | A3 | 63471 | 08/11/2025 11:04 |
Note: the negative controls should be labeled NOCPD, the positive controls should be CPD_00000, and all test compounds should be CPD_#####.
To run the regression and output results in the data folder, simply run the program like the following example:
$ python3 MFI-pos-hit-regression.py --dir ./test-data --name test_experiment --linear
Directory (--dir): the directory containing the MFI tab-separated files.
Name (--name, optional): a prefix to add to all results (will be autogenerated if not supplied).
Type of regression (--linear, optional): will default to using logistic regression, add this flag if you want to use linear regression instead.
This work is licensed under a GNU General Public License version 3.0.