DOI: 10.5281/zenodo.7017749
title: Code and Data for "Real-time dynamic single-molecule protein sequencing on an integrated semiconductor device"

description: <strong>Code and Data for "Real-time dynamic single-molecule protein sequencing on an integrated semiconductor device".</strong> <pre>Code to analyze data produced by the Quantum-Si benchtop device and semiconductor chip is provided in a Python library <strong>qsi_algo</strong> under several submodules: - <strong>rs_caller.py</strong>: Algorithm for calling RS segments (also called ROI segments throughout code). - <strong>rs_caller_controller.py</strong>: Code framework for executing RS calling and property computation in a distributed manner - <strong>rs_properties</strong>: Code for computing properties of identified RS - <strong>rs_classifier</strong>: Algorithms for identifying peptide states (i.e. residue calls) associated with an RS - <strong>utils.py</strong>: shared helper code - <strong>pulse_reader</strong>: reader for binary pulse file - <strong>filters</strong>: ROI and pulse filtering utilities - <strong>plotting</strong>: functions for visualization of data relevant to the analyses presented Jupyter notebooks (<strong>.ipynb</strong>) files are named according to the manuscript figure they are associated with. Analysis code inside uses provided RS (recognition segment) data to demonstrate filtering and residue-calling techniques required to replicate analyses shown in manuscript figures. Please note: several methods rely on randomization for model initialization and/or data sampling which can cause small deviations from equivalent analyses in published figures. The raw data produced from the Quantum-Si benchtop device and semiconductor chip for the assays presented in the accompanying study is presented in a pulse-called binary file format. Pulses can be used as input for RS identification and peptide state identification. Pre-segmented (RS-identified) files are included for convenience. The data contained in the files include: <strong>{run_id}.bin</strong>: Binary format for storing pulse info. The reader provided in <strong>qsi_algo.pulse_reader</strong> produces the following columns: - <strong>aperture_index</strong>: unique aperture index on chip - <strong>start_f</strong>: index of first frame in pulse, counted from the beginning of the run - <strong>end_f</strong>: index of last frame in pulse, counted from the beginning of the run - <strong>dur_f</strong>: duration of pulse in frames - <strong>dur_s</strong>: duration of pulse in seconds - <strong>ipd_f</strong>: interpulse duration in frames (number of frames since end of preceding pulse) - <strong>ipd_s</strong>: interpulse duration in seconds (time in seconds elapsed since end of preceding pulse) - <strong>snr</strong>: signal-to-noise ratio (bin1_intensity / bin1_bg_std) - <strong>intensity</strong>: intensity of pulse (counts above baseline in bin1) - <strong>bin0_intensity</strong>: counts above baseline in bin0 - <strong>intensity_display</strong>: bin1_intensity + bin1_bg_mean - <strong>binratio</strong>: bin0_intensity / bin1_intensity - <strong>bg_mean</strong>: bin1 background mean in region of pulse - <strong>bg_std</strong>: bin1 background standard deviation in region pulse - <strong>bin0_bg_mean</strong>: bin0 background mean in region of pulse - <strong>bin0_bg_std</strong>: bin0 background standard deviation in region pulse <strong>{run_id}.csv.gz</strong>: Compressed comma-separated value file containing RS/ROI properties computed from raw pulses.bin file by included RS caller (example in <strong>rs_caller.py</strong>). - <strong>ap</strong>: unique aperture index on chip - <strong>ROI</strong>: ordinal ROI number in the aperture, 0-indexed - <strong>start_p</strong>: index (.loc) of first pulse in the ROI (inclusive) in pulse dataframe - <strong>end_p</strong>: index (.loc) of last pulse in the ROI (inclusive) in pulse dataframe - <strong>start_f</strong>: first frame of the first pulse in the ROI (inclusive) - <strong>end_f</strong>: Last frame of the last pulse in the ROI (exclusive) - <strong>start_s</strong>: Time (in seconds elapsed from beginning of run) of the start of the ROI - <strong>end_s</strong>: Time (in seconds elapsed from beginning of run) of the end of the ROI - <strong>dur_f</strong>: Duration in frames of the ROI - <strong>dur_s</strong>: Duration in seconds of the ROI - <strong>num_pulses</strong>: Number of pulses in the ROI (that also passed filtering during ROI-calling) - <strong>pw_mean</strong>: Mean pulse duration (in seconds) of pulses in the ROI - <strong>ipd_mean</strong>: Mean inter-pulse duration (in seconds) of pulses in the ROI - <strong>snr_mean</strong>: Mean signal-to-noise ratio of pulses in the ROI - <strong>intensity_mean</strong>: Mean intensity above baseline of pulses in the ROI - <strong>binratio_norm</strong>: Estimated pulse bin ratio of pulses in the ROI, according to the following equation: sum(bin0_intensity*dur_f) / np.sum(bin1_intensity*dur_f) - <strong>ROI_score</strong>: ROI quality score (0-1 from least to most likely to contain recognizer-peptide recognition pulsing) - <strong>binratio_skew</strong>: bin ratio correction factor accounting for binning signal timing differences across the chip. This factor has already been applied to the binratio_norm column</pre>