You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+89-56Lines changed: 89 additions & 56 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,73 +46,106 @@ python3 -m unittest
46
46
47
47
## Usage
48
48
49
-
### Running QC and post-processing
49
+
We are working to make pcpostprocess a reusable tool for different types of data.
50
+
At the moment, it is geared towards the specific use case detailed below.
50
51
51
-
Quality control (QC) may be run using the criteria outlined in [Rapid Characterization of hERG Channel Kinetics I](https://doi.org/10.1016/j.bpj.2019.07.029) and [Evaluating the predictive accuracy of ion channel models using data from multiple experimental designs](https://doi.org/10.1101/2024.08.16.608289). These criteria assume the use of the `staircase` protocol for quality control, which should be the first and last protocol performed. We also assume the presence of repeats after the addition of an IKr blocker (such as dofetilide).
52
+
### Experimental data
52
53
53
-
Prior to performing QC and exporting, an `export_config.py` file should be added to the root of the data directory. This file (see `example_config.py`) contains a Python `dict` (`Q2S_DC`) specifying the filenames of the protocols used for QC, and names they should be outputted with, as well as a Python `dict` (`D2S`) listing the other protocols and names to be used for their output. Additionally, the `saveID` field specifies the name of the expeirment which appears in the output file names.
54
+
- Syncropatch 384 ("DataControl 384") data
55
+
- The full set of protocols is repeated after addition of a strong IKr blocker, e.g. E-4031
56
+
- Each set of protocols starts and ends with a "staircase" protocol, leading to a total of 4 staircases:
57
+
- Before and after all other protocols, before drug block
58
+
- Before and after all other protocols, after drug block
54
59
55
-
```sh
56
-
$ pcpostprocess run_herg_qc --help
60
+
So a full set of experiments would go "staircase, other1, other2, ... staircase, drug addition & wash in, staircase, other1, other2, ..., staircase".
61
+
62
+
Each protocol
63
+
- Starts with a leak estimation ramp
64
+
- Followed by a step to 40mV and then to -120mV
65
+
- Ends with a reversal potential step
66
+
- Provides an estimate of Rseal, Rseries, and Cm
67
+
68
+
### Leak correction
69
+
70
+
- Leak correction is applied by estimating linear leak from the leak step.
71
+
- Before and after drug traces are both corrected
72
+
- The final signal is leak-corrected-before minus leak-corrected-after
73
+
74
+
### Quality control
75
+
76
+
Quality control is based on [Lei et al. (2019) Rapid Characterization of hERG Channel Kinetics I](https://doi.org/10.1016/j.bpj.2019.07.029) and [Shuttleworth et al. (2025) Evaluating the predictive accuracy of ion channel models using data from multiple experimental designs](https://doi.org/10.1098/rsta.2024.0211).
77
+
78
+
First, all four staircase protocols are checked in all wells using the Lei et al. criteria, along with new measures described in Shuttleworth et al.
79
+
Any wells not rejected are then tested using a smaller set of (less protocol specific) criteria detailed in Shuttleworth et al.
80
+
Only wells passing all tests on all protocols are retained.
-`staircaseramp (2)_2kHz_15.17.19`, staircase run as final protocol
99
+
100
+
Here each directory name is a protocol name followed by a timestamp.
101
+
Corresponding dictionaries could be `Q2S_DC = {'staircaseramp (2)_2kHz': 'staircase'}` (indicating the staircase protocol) and `D2S = {'StaircaseInStaircaseramp (2)_2kHz': 'sis'}`.
102
+
The saveID could be any string, but in our example we use `saveID = '13112023_MW2'`
0 commit comments