Module read5.AbstractFileReader
Expand source code
#!/usr/bin/env python
# author: Jannes Spangenberg
# e-mail: jannes.spangenberg@uni-jena.de
# github: https://github.com/JannesSP
# website: https://jannessp.github.io
from abc import abstractmethod
import numpy as np
from read5.Exceptions import UnknownNormalizationMode
class AbstractFileReader():
'''
Abstract file reader class
Attributes
----------
filepath : str
Path to the ONT raw data file
Raises
------
FileNotFoundError
If the given file does not exist.
'''
### abstract methods
@abstractmethod
def open(self) -> None:
'''
Opens and loads the reads of the raw ONT file.
'''
pass
@abstractmethod
def __getitem__(self, readid : str):
'''
Parameter
---------
readid : str
Returns
-------
read
read dataset
'''
pass
@abstractmethod
def getAsicID(self, readid : str) -> str:
'''
Application Specific Integrated Circuit identifier (ASIC) of the flow cell (unique chip ID, enables tracking of batches of chips).
Parameter
---------
readid : str
Returns
-------
asic_id : str
'''
pass
@abstractmethod
def getAsicIDEeprom(self, readid : str) -> str:
'''
ID of the ASIC's electrically erasable programmable read-only memory (EEPROM) of the flow cell
Parameter
---------
readid : str
Returns
-------
asic_id_eeprom : str
'''
pass
@abstractmethod
def getAsicTemp(self, readid : str) -> float:
'''
ASIC chip temperature in degrees celsius at start of sequencing
Parameter
---------
readid : str
Returns
-------
asic_temp : float
'''
pass
@abstractmethod
def getAsicVersion(self, readid : str) -> str:
'''
ASIC version
Parameter
---------
readid : str
Returns
-------
asic_version : str
'''
pass
@abstractmethod
def isAutoUpdated(self, readid : str) -> bool:
'''
Auto update in MinKNOW
Parameter
---------
readid : str
Returns
-------
status : bool
'''
pass
@abstractmethod
def getAutoUpdateSource(self, readid : str) -> str:
'''
URL to MinKNOW update source
Parameter
---------
readid : str
Returns
-------
url : str
'''
pass
@abstractmethod
def isBarcodingEnabled(self, readid : str) -> bool:
'''
Whether barcoding is enabled or not
Parameter
---------
readid : str
Returns
-------
status : bool
'''
pass
@abstractmethod
def isBreamStandard(self, readid : str) -> bool:
'''
Bream is a sequencing controlling software
Parameter
---------
readid : str
Returns
-------
status : bool
'''
pass
@abstractmethod
def getCalibrationScale(self, readid : str) -> float:
'''
Parameter
---------
readid : str
Returns
-------
scale : float
scale = range / digitisation
'''
pass
@abstractmethod
def getChannelNumber(self, readid : str) -> int:
'''
Parameter
---------
readid : str
Returns
-------
channel : int
Number of the channel where the read was sequenced
'''
pass
@abstractmethod
def getConfigurationVersion(self, readid : str) -> str:
'''
MinKNOW configuration version including the experiment scripts
Parameter
---------
readid : str
Returns
-------
configuration_version : str
'''
pass
@abstractmethod
def getDeviceID(self, readid : str) -> str:
'''
MinION ID or GridION/PromethION device position ID
Parameter
---------
readid : str
Returns
-------
device_id : str
'''
pass
@abstractmethod
def getDeviceType(self, readid : str) -> str:
'''
Device type: MinION, PromethION or GridION
Parameter
---------
readid : str
Returns
-------
device_type : str
'''
pass
@abstractmethod
def getDigitisation(self, readid : str) -> int:
'''
Returns read calibration digitisation
Parameter
---------
readid : str
Returns
-------
digitisation : float
'''
pass
@abstractmethod
def getDistributionStatus(self, readid : str) -> str:
'''
stable, dev, alpha or beta
Parameter
---------
readid : str
Returns
-------
distribution_status : str
'''
pass
@abstractmethod
def getDistributionVersion(self, readid : str) -> str:
'''
MinKNOW version
Parameter
---------
readid : str
Returns
-------
distribution_version : str
'''
pass
@abstractmethod
def getDuration(self, readid : str) -> int:
'''
Returns
-------
duration : int
length of raw signal, number of signal samples
'''
pass
@abstractmethod
def getEndReason(self, readid : str) -> int:
'''
Available since FAST5 v2.2
ATTENTION: End Reason encoding differs: fast5/slow5/blow5 vs pod5!
Returns
-------
end_reason : int
0 : unknown
1 : partial
2 : mux_change
3 : unblock_mux_change
4 : data_service_unblock_mux_change
5 : signal_positive
6 : signal_negative
'''
pass
@abstractmethod
def getExpScriptName(self, readid : str) -> str:
'''
Experiment name with selected kits and parameters in MinKNOW.
Also called protocol name in pod5.
Parameter
---------
readid : str
Returns
-------
exp_script_name : str
'''
pass
@abstractmethod
def getExpScriptPurpose(self, readid : str) -> str:
'''
The purpose of the run: sequencing run or simulation playback
Parameter
---------
readid : str
Returns
-------
exp_script_purpose : str
'''
pass
@abstractmethod
def getExpStartTime(self, readid : str) -> str:
'''
Start time of the sequencing run in ISO 8601 standard
Parameter
---------
readid : str
Returns
-------
exp_start_time : str
'''
pass
@abstractmethod
def getExperimentDurationSet(self, readid : str) -> int:
'''
Experiment duration set when starting the sequencing run in minutes
Parameter
---------
readid : str
Returns
-------
duration : int
'''
pass
@abstractmethod
def getExperimentType(self, readid : str) -> str:
'''
Type of experiment, like DNA or RNA sequencing
Parameter
---------
readid : str
Returns
-------
experiment_type : str
'''
pass
@abstractmethod
def getFileVersion(self) -> str:
'''
Returns
-------
file_version : str
'''
pass
@abstractmethod
def getFlowCellID(self, readid : str) -> str:
'''
Unique flow cell ID
Parameter
---------
readid : str
Returns
-------
flow_cell_id : str
'''
pass
@abstractmethod
def getFlowCellProductCode(self, readid : str) -> str:
'''
Product code of the flowcell and pore type
Parameter
---------
readid : str
Returns
-------
production_code : str
'''
pass
@abstractmethod
def getGuppyVersion(self, readid : str) -> str:
'''
Guppy version used by MinKNOW
Parameter
---------
readid : str
Returns
-------
version : str
'''
pass
@abstractmethod
def getHeatSinkTemp(self, readid : str) -> float:
'''
Start temperature in degress celsius of the ASIC heat sink
Parameter
---------
readid : str
Returns
-------
temperature : float
'''
pass
@abstractmethod
def getHostProductCode(self, readid : str) -> str:
'''
Product code of the host computer
Parameter
---------
readid : str
Returns
-------
code : str
'''
pass
@abstractmethod
def getHostProductSerialNumber(self, readid : str) -> str:
'''
Serial number of the host computer
Parameter
---------
readid : str
Returns
-------
serial_number : str
'''
pass
@abstractmethod
def getHostname(self, readid : str) -> str:
'''
Computer on which the sequencing run is performed
Parameter
---------
readid : str
Returns
-------
hostname : str
'''
pass
@abstractmethod
def getInstallationType(self, readid : str) -> str:
'''
MinKNOW installation type
Parameter
---------
readid : str
Returns
-------
installation_type : str
'''
pass
@abstractmethod
def isLocalBasecalled(self, readid : str) -> bool:
'''
Type of experiment, like DNA or RNA sequencing
Parameter
---------
readid : str
Returns
-------
status : bool
'''
pass
@abstractmethod
def getLocalFirmwareFile(self, readid : str) -> int:
'''
Parameter
---------
readid : str
Returns
-------
firmware_file : int
'''
pass
@abstractmethod
def getMedianBefore(self, readid : str) -> float:
'''
Estimated current median preceding the read, can be used as an estimate of the open pore current (no strand inside the pore)
Returns
-------
median_before : float
'''
pass
@abstractmethod
def getOffset(self, readid : str) -> float:
'''
Parameter
---------
readid : str
Returns
-------
offset : float
'''
pass
@abstractmethod
def getOperatingSystem(self, readid : str) -> str:
'''
Operating system of the host computer
Parameter
---------
readid : str
Returns
-------
os : str
'''
pass
@abstractmethod
def getPackage(self, readid : str) -> str:
'''
Bream package used during sequencing
Parameter
---------
readid : str
Returns
-------
package : str
'''
pass
@abstractmethod
def getPackageVersion(self, readid : str) -> str:
'''
Bream package version
Parameter
---------
readid : str
Returns
-------
package_version : str
'''
pass
@abstractmethod
def getpASignal(self, readid :str) -> np.ndarray:
'''
Parameter
---------
readid : str
Returns
-------
pASignal : np.ndarray
'''
pass
@abstractmethod
def getPoreType(self, readid : str) -> str:
'''
Parameter
---------
readid : str
Returns
-------
pore_type : str
can be 'not_set'
'''
pass
@abstractmethod
def getProtocolGroupID(self, readid : str) -> str:
'''
Unique acquisition period ID set by the user, also called 'group id'
Parameter
---------
readid : str
Returns
-------
protocol_id : str
'''
pass
@abstractmethod
def getProtocolRunID(self, readid : str) -> str:
'''
Experiment run ID
Parameter
---------
readid : str
Returns
-------
prot_run_id : str
'''
pass
@abstractmethod
def getProtocolStartTime(self, readid : str) -> str:
'''
Data acquisition period start time
Parameter
---------
readid : str
Returns
-------
prot_start_time : str
'''
pass
@abstractmethod
def getProtocolVersion(self, readid : str) -> str:
'''
Protocol version (barcoding, kits, etc)
Parameter
---------
readid : str
Returns
-------
prot_version : str
'''
pass
@abstractmethod
def getRange(self, readid : str) -> np.ndarray:
'''
Returns read calibration range
Parameter
---------
readid : str
Returns
-------
range : float
'''
pass
@abstractmethod
def getReadNumber(self, readid : str) -> int:
'''
Parameter
---------
readid : str
Returns
-------
read_number : int
'''
pass
@abstractmethod
def getRunID(self, readid : str) -> str:
'''
Parameter
---------
readid : str
Returns
-------
run_id : str
'''
pass
@abstractmethod
def getSamplingRate(self, readid) -> int:
'''
Measuring rate of the sensor during sequencing in Hz
Parameter
---------
readid : str
Returns
-------
samplingRate : int
sampling rate of the sequencing sensor used to sequence the given read
'''
pass
@abstractmethod
def getSampleID(self, readid : str) -> str:
'''
Custom user given sample ID
Parameter
---------
readid : str
Returns
-------
sample_id : str
'''
pass
@abstractmethod
def getSequencingKit(self, readid : str) -> str:
'''
Sequencing kit selected by the user
Parameter
---------
readid : str
Returns
-------
kit : str
'''
pass
@abstractmethod
def getSignal(self, readid : str) -> np.ndarray:
'''
Parameter
---------
readid : str
Returns
-------
signal : np.ndarray
Raw integer signal of readid
'''
pass
@abstractmethod
def getStartTime(self, readid : str) -> int:
'''
Sample number of the sequencing start of the provided read.
0 = start of sequencing
Parameter
---------
readid : str
Returns
-------
startTime : int
start of sequencing unconverted
'''
pass
# @abstractmethod
# def getStartMux(self, readid : str) -> int:
# '''
# Returns
# -------
# start_mux : int
# '''
# pass
@abstractmethod
def getUSBConfig(self, readid : str) -> str:
'''
Flow cell and host computer connection information
Parameter
---------
readid : str
Returns
-------
config : str
'''
pass
@abstractmethod
def getVersion(self, readid : str) -> str:
'''
MinKNOW version
Parameter
---------
readid : str
Returns
-------
version : str
'''
pass
### explicit functions
def __init__(self, filepath : str):
self._file = None
self._filepath : str = filepath
self._index : int = -1
self._nreads : int
self._reads : list
self.open()
def __iter__(self):
return self
def __len__(self) -> int:
'''
Returns
-------
length : int
number of reads in the file
'''
return self._nreads
def __next__(self):
self._index += 1
if self._index >= self._nreads:
raise StopIteration
else:
return self._reads[self._index]
def close(self) -> None:
'''
Close the raw ONT file
'''
if self._open:
self._file.close()
self._open = False
def isOpen(self) -> bool:
'''
Returns
-------
flag : bool
open status of file
'''
return self._open
def getReads(self) -> list:
'''
Returns
-------
reads : list
list of read IDs within the file
'''
return self._reads
def getShift(self, readid : str, mode : str = 'median') -> float:
'''
Parameter
---------
readid : str
mode : str
- 'median': using the median and mad for normalization
- 'mean': using the mean and std for normalization
Returns
-------
shift : float
'''
if mode == 'median':
return np.median(self.getpASignal(readid))
elif mode == 'mean':
return np.mean(self.getpASignal(readid))
else:
raise UnknownNormalizationMode
def getScale(self, readid : str, mode : str = 'median') -> float:
'''
Parameter
---------
readid : str
mode : str
- 'median': using the median and mad for normalization
- 'mean': using the mean and std for normalization
Returns
-------
scale : float
'''
if mode == 'median':
return 1.4826 * np.median(np.abs(self.getpASignal(readid) - self.getShift(readid, mode)))
elif mode == 'mean':
return np.std(self.getpASignal(readid))
else:
raise UnknownNormalizationMode
def getZNormSignal(self, readid : str, mode : str = 'median') -> np.ndarray:
'''
Normalize the read signal of the provided read
Parameter
---------
readid : str
mode : str
- 'median': using the median and mad for normalization
- 'mean': using the mean and std for normalization
Returns
-------
normSignal : np.ndarray
Z normalized read signal
'''
return (self.getpASignal(readid) - self.getShift(readid, mode)) / self.getScale(readid, mode)
def getPolyAStandardizedSignal(self, readid : str, polyAstart : int, polyAend : int) -> np.ndarray:
'''
Standardize the read signal of the provided read with the polyA.
This function uses the median and mad to standardize the read with the polyA signal.
After standardization the polyA signal will have a mean of 108.901413 and a stdev of 2.676522.
Parameter
---------
readid : str
polyAstart : int
included starting index of the polyA signal in the read
polyAend : int
excluded ending index of the polyA signal in the read
Returns
-------
standardizedSignal : np.ndarray
polyA standardized read signal
'''
stdPolyAMean = 108.901413
stdPolyAStdev = 2.676522
polyAsignal = self.getpASignal(readid)[polyAstart : polyAend]
polyAmedian = np.median(polyAsignal)
polyAmad = 1.4826 * np.median(np.abs(polyAsignal - polyAmedian))
return ((self.getpASignal(readid) - polyAmedian) / polyAmad) * stdPolyAStdev + stdPolyAMean
def getStartTimeInMinutes(self, readid) -> float:
'''
Parameter
---------
readid : str
Returns
-------
startTime : int
start of sequencing converted to minutes after sequencing start
'''
return self.getStartTime(readid) / self.getSamplingRate(readid) / 60
def getFilePath(self) -> str:
'''
Returns
-------
filepath : str
'''
return self._filepath
Classes
class AbstractFileReader (filepath: str)-
Abstract file reader class
Attributes
filepath:str- Path to the ONT raw data file
Raises
FileNotFoundError- If the given file does not exist.
Expand source code
class AbstractFileReader(): ''' Abstract file reader class Attributes ---------- filepath : str Path to the ONT raw data file Raises ------ FileNotFoundError If the given file does not exist. ''' ### abstract methods @abstractmethod def open(self) -> None: ''' Opens and loads the reads of the raw ONT file. ''' pass @abstractmethod def __getitem__(self, readid : str): ''' Parameter --------- readid : str Returns ------- read read dataset ''' pass @abstractmethod def getAsicID(self, readid : str) -> str: ''' Application Specific Integrated Circuit identifier (ASIC) of the flow cell (unique chip ID, enables tracking of batches of chips). Parameter --------- readid : str Returns ------- asic_id : str ''' pass @abstractmethod def getAsicIDEeprom(self, readid : str) -> str: ''' ID of the ASIC's electrically erasable programmable read-only memory (EEPROM) of the flow cell Parameter --------- readid : str Returns ------- asic_id_eeprom : str ''' pass @abstractmethod def getAsicTemp(self, readid : str) -> float: ''' ASIC chip temperature in degrees celsius at start of sequencing Parameter --------- readid : str Returns ------- asic_temp : float ''' pass @abstractmethod def getAsicVersion(self, readid : str) -> str: ''' ASIC version Parameter --------- readid : str Returns ------- asic_version : str ''' pass @abstractmethod def isAutoUpdated(self, readid : str) -> bool: ''' Auto update in MinKNOW Parameter --------- readid : str Returns ------- status : bool ''' pass @abstractmethod def getAutoUpdateSource(self, readid : str) -> str: ''' URL to MinKNOW update source Parameter --------- readid : str Returns ------- url : str ''' pass @abstractmethod def isBarcodingEnabled(self, readid : str) -> bool: ''' Whether barcoding is enabled or not Parameter --------- readid : str Returns ------- status : bool ''' pass @abstractmethod def isBreamStandard(self, readid : str) -> bool: ''' Bream is a sequencing controlling software Parameter --------- readid : str Returns ------- status : bool ''' pass @abstractmethod def getCalibrationScale(self, readid : str) -> float: ''' Parameter --------- readid : str Returns ------- scale : float scale = range / digitisation ''' pass @abstractmethod def getChannelNumber(self, readid : str) -> int: ''' Parameter --------- readid : str Returns ------- channel : int Number of the channel where the read was sequenced ''' pass @abstractmethod def getConfigurationVersion(self, readid : str) -> str: ''' MinKNOW configuration version including the experiment scripts Parameter --------- readid : str Returns ------- configuration_version : str ''' pass @abstractmethod def getDeviceID(self, readid : str) -> str: ''' MinION ID or GridION/PromethION device position ID Parameter --------- readid : str Returns ------- device_id : str ''' pass @abstractmethod def getDeviceType(self, readid : str) -> str: ''' Device type: MinION, PromethION or GridION Parameter --------- readid : str Returns ------- device_type : str ''' pass @abstractmethod def getDigitisation(self, readid : str) -> int: ''' Returns read calibration digitisation Parameter --------- readid : str Returns ------- digitisation : float ''' pass @abstractmethod def getDistributionStatus(self, readid : str) -> str: ''' stable, dev, alpha or beta Parameter --------- readid : str Returns ------- distribution_status : str ''' pass @abstractmethod def getDistributionVersion(self, readid : str) -> str: ''' MinKNOW version Parameter --------- readid : str Returns ------- distribution_version : str ''' pass @abstractmethod def getDuration(self, readid : str) -> int: ''' Returns ------- duration : int length of raw signal, number of signal samples ''' pass @abstractmethod def getEndReason(self, readid : str) -> int: ''' Available since FAST5 v2.2 ATTENTION: End Reason encoding differs: fast5/slow5/blow5 vs pod5! Returns ------- end_reason : int 0 : unknown 1 : partial 2 : mux_change 3 : unblock_mux_change 4 : data_service_unblock_mux_change 5 : signal_positive 6 : signal_negative ''' pass @abstractmethod def getExpScriptName(self, readid : str) -> str: ''' Experiment name with selected kits and parameters in MinKNOW. Also called protocol name in pod5. Parameter --------- readid : str Returns ------- exp_script_name : str ''' pass @abstractmethod def getExpScriptPurpose(self, readid : str) -> str: ''' The purpose of the run: sequencing run or simulation playback Parameter --------- readid : str Returns ------- exp_script_purpose : str ''' pass @abstractmethod def getExpStartTime(self, readid : str) -> str: ''' Start time of the sequencing run in ISO 8601 standard Parameter --------- readid : str Returns ------- exp_start_time : str ''' pass @abstractmethod def getExperimentDurationSet(self, readid : str) -> int: ''' Experiment duration set when starting the sequencing run in minutes Parameter --------- readid : str Returns ------- duration : int ''' pass @abstractmethod def getExperimentType(self, readid : str) -> str: ''' Type of experiment, like DNA or RNA sequencing Parameter --------- readid : str Returns ------- experiment_type : str ''' pass @abstractmethod def getFileVersion(self) -> str: ''' Returns ------- file_version : str ''' pass @abstractmethod def getFlowCellID(self, readid : str) -> str: ''' Unique flow cell ID Parameter --------- readid : str Returns ------- flow_cell_id : str ''' pass @abstractmethod def getFlowCellProductCode(self, readid : str) -> str: ''' Product code of the flowcell and pore type Parameter --------- readid : str Returns ------- production_code : str ''' pass @abstractmethod def getGuppyVersion(self, readid : str) -> str: ''' Guppy version used by MinKNOW Parameter --------- readid : str Returns ------- version : str ''' pass @abstractmethod def getHeatSinkTemp(self, readid : str) -> float: ''' Start temperature in degress celsius of the ASIC heat sink Parameter --------- readid : str Returns ------- temperature : float ''' pass @abstractmethod def getHostProductCode(self, readid : str) -> str: ''' Product code of the host computer Parameter --------- readid : str Returns ------- code : str ''' pass @abstractmethod def getHostProductSerialNumber(self, readid : str) -> str: ''' Serial number of the host computer Parameter --------- readid : str Returns ------- serial_number : str ''' pass @abstractmethod def getHostname(self, readid : str) -> str: ''' Computer on which the sequencing run is performed Parameter --------- readid : str Returns ------- hostname : str ''' pass @abstractmethod def getInstallationType(self, readid : str) -> str: ''' MinKNOW installation type Parameter --------- readid : str Returns ------- installation_type : str ''' pass @abstractmethod def isLocalBasecalled(self, readid : str) -> bool: ''' Type of experiment, like DNA or RNA sequencing Parameter --------- readid : str Returns ------- status : bool ''' pass @abstractmethod def getLocalFirmwareFile(self, readid : str) -> int: ''' Parameter --------- readid : str Returns ------- firmware_file : int ''' pass @abstractmethod def getMedianBefore(self, readid : str) -> float: ''' Estimated current median preceding the read, can be used as an estimate of the open pore current (no strand inside the pore) Returns ------- median_before : float ''' pass @abstractmethod def getOffset(self, readid : str) -> float: ''' Parameter --------- readid : str Returns ------- offset : float ''' pass @abstractmethod def getOperatingSystem(self, readid : str) -> str: ''' Operating system of the host computer Parameter --------- readid : str Returns ------- os : str ''' pass @abstractmethod def getPackage(self, readid : str) -> str: ''' Bream package used during sequencing Parameter --------- readid : str Returns ------- package : str ''' pass @abstractmethod def getPackageVersion(self, readid : str) -> str: ''' Bream package version Parameter --------- readid : str Returns ------- package_version : str ''' pass @abstractmethod def getpASignal(self, readid :str) -> np.ndarray: ''' Parameter --------- readid : str Returns ------- pASignal : np.ndarray ''' pass @abstractmethod def getPoreType(self, readid : str) -> str: ''' Parameter --------- readid : str Returns ------- pore_type : str can be 'not_set' ''' pass @abstractmethod def getProtocolGroupID(self, readid : str) -> str: ''' Unique acquisition period ID set by the user, also called 'group id' Parameter --------- readid : str Returns ------- protocol_id : str ''' pass @abstractmethod def getProtocolRunID(self, readid : str) -> str: ''' Experiment run ID Parameter --------- readid : str Returns ------- prot_run_id : str ''' pass @abstractmethod def getProtocolStartTime(self, readid : str) -> str: ''' Data acquisition period start time Parameter --------- readid : str Returns ------- prot_start_time : str ''' pass @abstractmethod def getProtocolVersion(self, readid : str) -> str: ''' Protocol version (barcoding, kits, etc) Parameter --------- readid : str Returns ------- prot_version : str ''' pass @abstractmethod def getRange(self, readid : str) -> np.ndarray: ''' Returns read calibration range Parameter --------- readid : str Returns ------- range : float ''' pass @abstractmethod def getReadNumber(self, readid : str) -> int: ''' Parameter --------- readid : str Returns ------- read_number : int ''' pass @abstractmethod def getRunID(self, readid : str) -> str: ''' Parameter --------- readid : str Returns ------- run_id : str ''' pass @abstractmethod def getSamplingRate(self, readid) -> int: ''' Measuring rate of the sensor during sequencing in Hz Parameter --------- readid : str Returns ------- samplingRate : int sampling rate of the sequencing sensor used to sequence the given read ''' pass @abstractmethod def getSampleID(self, readid : str) -> str: ''' Custom user given sample ID Parameter --------- readid : str Returns ------- sample_id : str ''' pass @abstractmethod def getSequencingKit(self, readid : str) -> str: ''' Sequencing kit selected by the user Parameter --------- readid : str Returns ------- kit : str ''' pass @abstractmethod def getSignal(self, readid : str) -> np.ndarray: ''' Parameter --------- readid : str Returns ------- signal : np.ndarray Raw integer signal of readid ''' pass @abstractmethod def getStartTime(self, readid : str) -> int: ''' Sample number of the sequencing start of the provided read. 0 = start of sequencing Parameter --------- readid : str Returns ------- startTime : int start of sequencing unconverted ''' pass # @abstractmethod # def getStartMux(self, readid : str) -> int: # ''' # Returns # ------- # start_mux : int # ''' # pass @abstractmethod def getUSBConfig(self, readid : str) -> str: ''' Flow cell and host computer connection information Parameter --------- readid : str Returns ------- config : str ''' pass @abstractmethod def getVersion(self, readid : str) -> str: ''' MinKNOW version Parameter --------- readid : str Returns ------- version : str ''' pass ### explicit functions def __init__(self, filepath : str): self._file = None self._filepath : str = filepath self._index : int = -1 self._nreads : int self._reads : list self.open() def __iter__(self): return self def __len__(self) -> int: ''' Returns ------- length : int number of reads in the file ''' return self._nreads def __next__(self): self._index += 1 if self._index >= self._nreads: raise StopIteration else: return self._reads[self._index] def close(self) -> None: ''' Close the raw ONT file ''' if self._open: self._file.close() self._open = False def isOpen(self) -> bool: ''' Returns ------- flag : bool open status of file ''' return self._open def getReads(self) -> list: ''' Returns ------- reads : list list of read IDs within the file ''' return self._reads def getShift(self, readid : str, mode : str = 'median') -> float: ''' Parameter --------- readid : str mode : str - 'median': using the median and mad for normalization - 'mean': using the mean and std for normalization Returns ------- shift : float ''' if mode == 'median': return np.median(self.getpASignal(readid)) elif mode == 'mean': return np.mean(self.getpASignal(readid)) else: raise UnknownNormalizationMode def getScale(self, readid : str, mode : str = 'median') -> float: ''' Parameter --------- readid : str mode : str - 'median': using the median and mad for normalization - 'mean': using the mean and std for normalization Returns ------- scale : float ''' if mode == 'median': return 1.4826 * np.median(np.abs(self.getpASignal(readid) - self.getShift(readid, mode))) elif mode == 'mean': return np.std(self.getpASignal(readid)) else: raise UnknownNormalizationMode def getZNormSignal(self, readid : str, mode : str = 'median') -> np.ndarray: ''' Normalize the read signal of the provided read Parameter --------- readid : str mode : str - 'median': using the median and mad for normalization - 'mean': using the mean and std for normalization Returns ------- normSignal : np.ndarray Z normalized read signal ''' return (self.getpASignal(readid) - self.getShift(readid, mode)) / self.getScale(readid, mode) def getPolyAStandardizedSignal(self, readid : str, polyAstart : int, polyAend : int) -> np.ndarray: ''' Standardize the read signal of the provided read with the polyA. This function uses the median and mad to standardize the read with the polyA signal. After standardization the polyA signal will have a mean of 108.901413 and a stdev of 2.676522. Parameter --------- readid : str polyAstart : int included starting index of the polyA signal in the read polyAend : int excluded ending index of the polyA signal in the read Returns ------- standardizedSignal : np.ndarray polyA standardized read signal ''' stdPolyAMean = 108.901413 stdPolyAStdev = 2.676522 polyAsignal = self.getpASignal(readid)[polyAstart : polyAend] polyAmedian = np.median(polyAsignal) polyAmad = 1.4826 * np.median(np.abs(polyAsignal - polyAmedian)) return ((self.getpASignal(readid) - polyAmedian) / polyAmad) * stdPolyAStdev + stdPolyAMean def getStartTimeInMinutes(self, readid) -> float: ''' Parameter --------- readid : str Returns ------- startTime : int start of sequencing converted to minutes after sequencing start ''' return self.getStartTime(readid) / self.getSamplingRate(readid) / 60 def getFilePath(self) -> str: ''' Returns ------- filepath : str ''' return self._filepathSubclasses
Methods
def close(self) ‑> None-
Close the raw ONT file
Expand source code
def close(self) -> None: ''' Close the raw ONT file ''' if self._open: self._file.close() self._open = False def getAsicID(self, readid: str) ‑> str-
Application Specific Integrated Circuit identifier (ASIC) of the flow cell (unique chip ID, enables tracking of batches of chips).
Parameter
readid : str
Returns
asic_id:str
Expand source code
@abstractmethod def getAsicID(self, readid : str) -> str: ''' Application Specific Integrated Circuit identifier (ASIC) of the flow cell (unique chip ID, enables tracking of batches of chips). Parameter --------- readid : str Returns ------- asic_id : str ''' pass def getAsicIDEeprom(self, readid: str) ‑> str-
ID of the ASIC's electrically erasable programmable read-only memory (EEPROM) of the flow cell
Parameter
readid : str
Returns
asic_id_eeprom:str
Expand source code
@abstractmethod def getAsicIDEeprom(self, readid : str) -> str: ''' ID of the ASIC's electrically erasable programmable read-only memory (EEPROM) of the flow cell Parameter --------- readid : str Returns ------- asic_id_eeprom : str ''' pass def getAsicTemp(self, readid: str) ‑> float-
ASIC chip temperature in degrees celsius at start of sequencing
Parameter
readid : str
Returns
asic_temp:float
Expand source code
@abstractmethod def getAsicTemp(self, readid : str) -> float: ''' ASIC chip temperature in degrees celsius at start of sequencing Parameter --------- readid : str Returns ------- asic_temp : float ''' pass def getAsicVersion(self, readid: str) ‑> str-
ASIC version
Parameter
readid : str
Returns
asic_version:str
Expand source code
@abstractmethod def getAsicVersion(self, readid : str) -> str: ''' ASIC version Parameter --------- readid : str Returns ------- asic_version : str ''' pass def getAutoUpdateSource(self, readid: str) ‑> str-
URL to MinKNOW update source
Parameter
readid : str
Returns
url:str
Expand source code
@abstractmethod def getAutoUpdateSource(self, readid : str) -> str: ''' URL to MinKNOW update source Parameter --------- readid : str Returns ------- url : str ''' pass def getCalibrationScale(self, readid: str) ‑> float-
Parameter
readid : str
Returns
scale:float- scale = range / digitisation
Expand source code
@abstractmethod def getCalibrationScale(self, readid : str) -> float: ''' Parameter --------- readid : str Returns ------- scale : float scale = range / digitisation ''' pass def getChannelNumber(self, readid: str) ‑> int-
Parameter
readid : str
Returns
channel:int- Number of the channel where the read was sequenced
Expand source code
@abstractmethod def getChannelNumber(self, readid : str) -> int: ''' Parameter --------- readid : str Returns ------- channel : int Number of the channel where the read was sequenced ''' pass def getConfigurationVersion(self, readid: str) ‑> str-
MinKNOW configuration version including the experiment scripts
Parameter
readid : str
Returns
configuration_version:str
Expand source code
@abstractmethod def getConfigurationVersion(self, readid : str) -> str: ''' MinKNOW configuration version including the experiment scripts Parameter --------- readid : str Returns ------- configuration_version : str ''' pass def getDeviceID(self, readid: str) ‑> str-
MinION ID or GridION/PromethION device position ID
Parameter
readid : str
Returns
device_id:str
Expand source code
@abstractmethod def getDeviceID(self, readid : str) -> str: ''' MinION ID or GridION/PromethION device position ID Parameter --------- readid : str Returns ------- device_id : str ''' pass def getDeviceType(self, readid: str) ‑> str-
Device type: MinION, PromethION or GridION
Parameter
readid : str
Returns
device_type:str
Expand source code
@abstractmethod def getDeviceType(self, readid : str) -> str: ''' Device type: MinION, PromethION or GridION Parameter --------- readid : str Returns ------- device_type : str ''' pass def getDigitisation(self, readid: str) ‑> int-
Returns read calibration digitisation
Parameter
readid : str
Returns
digitisation:float
Expand source code
@abstractmethod def getDigitisation(self, readid : str) -> int: ''' Returns read calibration digitisation Parameter --------- readid : str Returns ------- digitisation : float ''' pass def getDistributionStatus(self, readid: str) ‑> str-
stable, dev, alpha or beta
Parameter
readid : str
Returns
distribution_status:str
Expand source code
@abstractmethod def getDistributionStatus(self, readid : str) -> str: ''' stable, dev, alpha or beta Parameter --------- readid : str Returns ------- distribution_status : str ''' pass def getDistributionVersion(self, readid: str) ‑> str-
MinKNOW version
Parameter
readid : str
Returns
distribution_version:str
Expand source code
@abstractmethod def getDistributionVersion(self, readid : str) -> str: ''' MinKNOW version Parameter --------- readid : str Returns ------- distribution_version : str ''' pass def getDuration(self, readid: str) ‑> int-
Returns
duration:int- length of raw signal, number of signal samples
Expand source code
@abstractmethod def getDuration(self, readid : str) -> int: ''' Returns ------- duration : int length of raw signal, number of signal samples ''' pass def getEndReason(self, readid: str) ‑> int-
Available since FAST5 v2.2 ATTENTION: End Reason encoding differs: fast5/slow5/blow5 vs pod5!
Returns
end_reason:int- 0 : unknown 1 : partial 2 : mux_change 3 : unblock_mux_change 4 : data_service_unblock_mux_change 5 : signal_positive 6 : signal_negative
Expand source code
@abstractmethod def getEndReason(self, readid : str) -> int: ''' Available since FAST5 v2.2 ATTENTION: End Reason encoding differs: fast5/slow5/blow5 vs pod5! Returns ------- end_reason : int 0 : unknown 1 : partial 2 : mux_change 3 : unblock_mux_change 4 : data_service_unblock_mux_change 5 : signal_positive 6 : signal_negative ''' pass def getExpScriptName(self, readid: str) ‑> str-
Experiment name with selected kits and parameters in MinKNOW. Also called protocol name in pod5.
Parameter
readid : str
Returns
exp_script_name:str
Expand source code
@abstractmethod def getExpScriptName(self, readid : str) -> str: ''' Experiment name with selected kits and parameters in MinKNOW. Also called protocol name in pod5. Parameter --------- readid : str Returns ------- exp_script_name : str ''' pass def getExpScriptPurpose(self, readid: str) ‑> str-
The purpose of the run: sequencing run or simulation playback
Parameter
readid : str
Returns
exp_script_purpose:str
Expand source code
@abstractmethod def getExpScriptPurpose(self, readid : str) -> str: ''' The purpose of the run: sequencing run or simulation playback Parameter --------- readid : str Returns ------- exp_script_purpose : str ''' pass def getExpStartTime(self, readid: str) ‑> str-
Start time of the sequencing run in ISO 8601 standard
Parameter
readid : str
Returns
exp_start_time:str
Expand source code
@abstractmethod def getExpStartTime(self, readid : str) -> str: ''' Start time of the sequencing run in ISO 8601 standard Parameter --------- readid : str Returns ------- exp_start_time : str ''' pass def getExperimentDurationSet(self, readid: str) ‑> int-
Experiment duration set when starting the sequencing run in minutes
Parameter
readid : str
Returns
duration:int
Expand source code
@abstractmethod def getExperimentDurationSet(self, readid : str) -> int: ''' Experiment duration set when starting the sequencing run in minutes Parameter --------- readid : str Returns ------- duration : int ''' pass def getExperimentType(self, readid: str) ‑> str-
Type of experiment, like DNA or RNA sequencing
Parameter
readid : str
Returns
experiment_type:str
Expand source code
@abstractmethod def getExperimentType(self, readid : str) -> str: ''' Type of experiment, like DNA or RNA sequencing Parameter --------- readid : str Returns ------- experiment_type : str ''' pass def getFilePath(self) ‑> str-
Returns
filepath:str
Expand source code
def getFilePath(self) -> str: ''' Returns ------- filepath : str ''' return self._filepath def getFileVersion(self) ‑> str-
Returns
file_version:str
Expand source code
@abstractmethod def getFileVersion(self) -> str: ''' Returns ------- file_version : str ''' pass def getFlowCellID(self, readid: str) ‑> str-
Unique flow cell ID
Parameter
readid : str
Returns
flow_cell_id:str
Expand source code
@abstractmethod def getFlowCellID(self, readid : str) -> str: ''' Unique flow cell ID Parameter --------- readid : str Returns ------- flow_cell_id : str ''' pass def getFlowCellProductCode(self, readid: str) ‑> str-
Product code of the flowcell and pore type
Parameter
readid : str
Returns
production_code:str
Expand source code
@abstractmethod def getFlowCellProductCode(self, readid : str) -> str: ''' Product code of the flowcell and pore type Parameter --------- readid : str Returns ------- production_code : str ''' pass def getGuppyVersion(self, readid: str) ‑> str-
Guppy version used by MinKNOW
Parameter
readid : str
Returns
version:str
Expand source code
@abstractmethod def getGuppyVersion(self, readid : str) -> str: ''' Guppy version used by MinKNOW Parameter --------- readid : str Returns ------- version : str ''' pass def getHeatSinkTemp(self, readid: str) ‑> float-
Start temperature in degress celsius of the ASIC heat sink
Parameter
readid : str
Returns
temperature:float
Expand source code
@abstractmethod def getHeatSinkTemp(self, readid : str) -> float: ''' Start temperature in degress celsius of the ASIC heat sink Parameter --------- readid : str Returns ------- temperature : float ''' pass def getHostProductCode(self, readid: str) ‑> str-
Product code of the host computer
Parameter
readid : str
Returns
code:str
Expand source code
@abstractmethod def getHostProductCode(self, readid : str) -> str: ''' Product code of the host computer Parameter --------- readid : str Returns ------- code : str ''' pass def getHostProductSerialNumber(self, readid: str) ‑> str-
Serial number of the host computer
Parameter
readid : str
Returns
serial_number:str
Expand source code
@abstractmethod def getHostProductSerialNumber(self, readid : str) -> str: ''' Serial number of the host computer Parameter --------- readid : str Returns ------- serial_number : str ''' pass def getHostname(self, readid: str) ‑> str-
Computer on which the sequencing run is performed
Parameter
readid : str
Returns
hostname:str
Expand source code
@abstractmethod def getHostname(self, readid : str) -> str: ''' Computer on which the sequencing run is performed Parameter --------- readid : str Returns ------- hostname : str ''' pass def getInstallationType(self, readid: str) ‑> str-
MinKNOW installation type
Parameter
readid : str
Returns
installation_type:str
Expand source code
@abstractmethod def getInstallationType(self, readid : str) -> str: ''' MinKNOW installation type Parameter --------- readid : str Returns ------- installation_type : str ''' pass def getLocalFirmwareFile(self, readid: str) ‑> int-
Parameter
readid : str
Returns
firmware_file:int
Expand source code
@abstractmethod def getLocalFirmwareFile(self, readid : str) -> int: ''' Parameter --------- readid : str Returns ------- firmware_file : int ''' pass def getMedianBefore(self, readid: str) ‑> float-
Estimated current median preceding the read, can be used as an estimate of the open pore current (no strand inside the pore)
Returns
median_before:float
Expand source code
@abstractmethod def getMedianBefore(self, readid : str) -> float: ''' Estimated current median preceding the read, can be used as an estimate of the open pore current (no strand inside the pore) Returns ------- median_before : float ''' pass def getOffset(self, readid: str) ‑> float-
Parameter
readid : str
Returns
offset:float
Expand source code
@abstractmethod def getOffset(self, readid : str) -> float: ''' Parameter --------- readid : str Returns ------- offset : float ''' pass def getOperatingSystem(self, readid: str) ‑> str-
Operating system of the host computer
Parameter
readid : str
Returns
os:str
Expand source code
@abstractmethod def getOperatingSystem(self, readid : str) -> str: ''' Operating system of the host computer Parameter --------- readid : str Returns ------- os : str ''' pass def getPackage(self, readid: str) ‑> str-
Bream package used during sequencing
Parameter
readid : str
Returns
package:str
Expand source code
@abstractmethod def getPackage(self, readid : str) -> str: ''' Bream package used during sequencing Parameter --------- readid : str Returns ------- package : str ''' pass def getPackageVersion(self, readid: str) ‑> str-
Bream package version
Parameter
readid : str
Returns
package_version:str
Expand source code
@abstractmethod def getPackageVersion(self, readid : str) -> str: ''' Bream package version Parameter --------- readid : str Returns ------- package_version : str ''' pass def getPolyAStandardizedSignal(self, readid: str, polyAstart: int, polyAend: int) ‑> numpy.ndarray-
Standardize the read signal of the provided read with the polyA. This function uses the median and mad to standardize the read with the polyA signal. After standardization the polyA signal will have a mean of 108.901413 and a stdev of 2.676522.
Parameter
readid : str polyAstart : int included starting index of the polyA signal in the read polyAend : int excluded ending index of the polyA signal in the read
Returns
standardizedSignal:np.ndarray- polyA standardized read signal
Expand source code
def getPolyAStandardizedSignal(self, readid : str, polyAstart : int, polyAend : int) -> np.ndarray: ''' Standardize the read signal of the provided read with the polyA. This function uses the median and mad to standardize the read with the polyA signal. After standardization the polyA signal will have a mean of 108.901413 and a stdev of 2.676522. Parameter --------- readid : str polyAstart : int included starting index of the polyA signal in the read polyAend : int excluded ending index of the polyA signal in the read Returns ------- standardizedSignal : np.ndarray polyA standardized read signal ''' stdPolyAMean = 108.901413 stdPolyAStdev = 2.676522 polyAsignal = self.getpASignal(readid)[polyAstart : polyAend] polyAmedian = np.median(polyAsignal) polyAmad = 1.4826 * np.median(np.abs(polyAsignal - polyAmedian)) return ((self.getpASignal(readid) - polyAmedian) / polyAmad) * stdPolyAStdev + stdPolyAMean def getPoreType(self, readid: str) ‑> str-
Parameter
readid : str
Returns
pore_type:str- can be 'not_set'
Expand source code
@abstractmethod def getPoreType(self, readid : str) -> str: ''' Parameter --------- readid : str Returns ------- pore_type : str can be 'not_set' ''' pass def getProtocolGroupID(self, readid: str) ‑> str-
Unique acquisition period ID set by the user, also called 'group id'
Parameter
readid : str
Returns
protocol_id:str
Expand source code
@abstractmethod def getProtocolGroupID(self, readid : str) -> str: ''' Unique acquisition period ID set by the user, also called 'group id' Parameter --------- readid : str Returns ------- protocol_id : str ''' pass def getProtocolRunID(self, readid: str) ‑> str-
Experiment run ID
Parameter
readid : str
Returns
prot_run_id:str
Expand source code
@abstractmethod def getProtocolRunID(self, readid : str) -> str: ''' Experiment run ID Parameter --------- readid : str Returns ------- prot_run_id : str ''' pass def getProtocolStartTime(self, readid: str) ‑> str-
Data acquisition period start time
Parameter
readid : str
Returns
prot_start_time:str
Expand source code
@abstractmethod def getProtocolStartTime(self, readid : str) -> str: ''' Data acquisition period start time Parameter --------- readid : str Returns ------- prot_start_time : str ''' pass def getProtocolVersion(self, readid: str) ‑> str-
Protocol version (barcoding, kits, etc)
Parameter
readid : str
Returns
prot_version:str
Expand source code
@abstractmethod def getProtocolVersion(self, readid : str) -> str: ''' Protocol version (barcoding, kits, etc) Parameter --------- readid : str Returns ------- prot_version : str ''' pass def getRange(self, readid: str) ‑> numpy.ndarray-
Returns read calibration range
Parameter
readid : str
Returns
range:float
Expand source code
@abstractmethod def getRange(self, readid : str) -> np.ndarray: ''' Returns read calibration range Parameter --------- readid : str Returns ------- range : float ''' pass def getReadNumber(self, readid: str) ‑> int-
Parameter
readid : str
Returns
read_number:int
Expand source code
@abstractmethod def getReadNumber(self, readid : str) -> int: ''' Parameter --------- readid : str Returns ------- read_number : int ''' pass def getReads(self) ‑> list-
Returns
reads:list- list of read IDs within the file
Expand source code
def getReads(self) -> list: ''' Returns ------- reads : list list of read IDs within the file ''' return self._reads def getRunID(self, readid: str) ‑> str-
Parameter
readid : str
Returns
run_id:str
Expand source code
@abstractmethod def getRunID(self, readid : str) -> str: ''' Parameter --------- readid : str Returns ------- run_id : str ''' pass def getSampleID(self, readid: str) ‑> str-
Custom user given sample ID
Parameter
readid : str
Returns
sample_id:str
Expand source code
@abstractmethod def getSampleID(self, readid : str) -> str: ''' Custom user given sample ID Parameter --------- readid : str Returns ------- sample_id : str ''' pass def getSamplingRate(self, readid) ‑> int-
Measuring rate of the sensor during sequencing in Hz
Parameter
readid : str
Returns
samplingRate:int- sampling rate of the sequencing sensor used to sequence the given read
Expand source code
@abstractmethod def getSamplingRate(self, readid) -> int: ''' Measuring rate of the sensor during sequencing in Hz Parameter --------- readid : str Returns ------- samplingRate : int sampling rate of the sequencing sensor used to sequence the given read ''' pass def getScale(self, readid: str, mode: str = 'median') ‑> float-
Parameter
readid : str mode : str - 'median': using the median and mad for normalization - 'mean': using the mean and std for normalization
Returns
scale:float
Expand source code
def getScale(self, readid : str, mode : str = 'median') -> float: ''' Parameter --------- readid : str mode : str - 'median': using the median and mad for normalization - 'mean': using the mean and std for normalization Returns ------- scale : float ''' if mode == 'median': return 1.4826 * np.median(np.abs(self.getpASignal(readid) - self.getShift(readid, mode))) elif mode == 'mean': return np.std(self.getpASignal(readid)) else: raise UnknownNormalizationMode def getSequencingKit(self, readid: str) ‑> str-
Sequencing kit selected by the user
Parameter
readid : str
Returns
kit:str
Expand source code
@abstractmethod def getSequencingKit(self, readid : str) -> str: ''' Sequencing kit selected by the user Parameter --------- readid : str Returns ------- kit : str ''' pass def getShift(self, readid: str, mode: str = 'median') ‑> float-
Parameter
readid : str mode : str - 'median': using the median and mad for normalization - 'mean': using the mean and std for normalization
Returns
shift:float
Expand source code
def getShift(self, readid : str, mode : str = 'median') -> float: ''' Parameter --------- readid : str mode : str - 'median': using the median and mad for normalization - 'mean': using the mean and std for normalization Returns ------- shift : float ''' if mode == 'median': return np.median(self.getpASignal(readid)) elif mode == 'mean': return np.mean(self.getpASignal(readid)) else: raise UnknownNormalizationMode def getSignal(self, readid: str) ‑> numpy.ndarray-
Parameter
readid : str
Returns
signal:np.ndarray- Raw integer signal of readid
Expand source code
@abstractmethod def getSignal(self, readid : str) -> np.ndarray: ''' Parameter --------- readid : str Returns ------- signal : np.ndarray Raw integer signal of readid ''' pass def getStartTime(self, readid: str) ‑> int-
Sample number of the sequencing start of the provided read. 0 = start of sequencing
Parameter
readid : str
Returns
startTime:int- start of sequencing unconverted
Expand source code
@abstractmethod def getStartTime(self, readid : str) -> int: ''' Sample number of the sequencing start of the provided read. 0 = start of sequencing Parameter --------- readid : str Returns ------- startTime : int start of sequencing unconverted ''' pass def getStartTimeInMinutes(self, readid) ‑> float-
Parameter
readid : str
Returns
startTime:int- start of sequencing converted to minutes after sequencing start
Expand source code
def getStartTimeInMinutes(self, readid) -> float: ''' Parameter --------- readid : str Returns ------- startTime : int start of sequencing converted to minutes after sequencing start ''' return self.getStartTime(readid) / self.getSamplingRate(readid) / 60 def getUSBConfig(self, readid: str) ‑> str-
Flow cell and host computer connection information
Parameter
readid : str
Returns
config:str
Expand source code
@abstractmethod def getUSBConfig(self, readid : str) -> str: ''' Flow cell and host computer connection information Parameter --------- readid : str Returns ------- config : str ''' pass def getVersion(self, readid: str) ‑> str-
MinKNOW version
Parameter
readid : str
Returns
version:str
Expand source code
@abstractmethod def getVersion(self, readid : str) -> str: ''' MinKNOW version Parameter --------- readid : str Returns ------- version : str ''' pass def getZNormSignal(self, readid: str, mode: str = 'median') ‑> numpy.ndarray-
Normalize the read signal of the provided read
Parameter
readid : str mode : str - 'median': using the median and mad for normalization - 'mean': using the mean and std for normalization
Returns
normSignal:np.ndarray- Z normalized read signal
Expand source code
def getZNormSignal(self, readid : str, mode : str = 'median') -> np.ndarray: ''' Normalize the read signal of the provided read Parameter --------- readid : str mode : str - 'median': using the median and mad for normalization - 'mean': using the mean and std for normalization Returns ------- normSignal : np.ndarray Z normalized read signal ''' return (self.getpASignal(readid) - self.getShift(readid, mode)) / self.getScale(readid, mode) def getpASignal(self, readid: str) ‑> numpy.ndarray-
Parameter
readid : str
Returns
pASignal:np.ndarray
Expand source code
@abstractmethod def getpASignal(self, readid :str) -> np.ndarray: ''' Parameter --------- readid : str Returns ------- pASignal : np.ndarray ''' pass def isAutoUpdated(self, readid: str) ‑> bool-
Auto update in MinKNOW
Parameter
readid : str
Returns
status:bool
Expand source code
@abstractmethod def isAutoUpdated(self, readid : str) -> bool: ''' Auto update in MinKNOW Parameter --------- readid : str Returns ------- status : bool ''' pass def isBarcodingEnabled(self, readid: str) ‑> bool-
Whether barcoding is enabled or not
Parameter
readid : str
Returns
status:bool
Expand source code
@abstractmethod def isBarcodingEnabled(self, readid : str) -> bool: ''' Whether barcoding is enabled or not Parameter --------- readid : str Returns ------- status : bool ''' pass def isBreamStandard(self, readid: str) ‑> bool-
Bream is a sequencing controlling software
Parameter
readid : str
Returns
status:bool
Expand source code
@abstractmethod def isBreamStandard(self, readid : str) -> bool: ''' Bream is a sequencing controlling software Parameter --------- readid : str Returns ------- status : bool ''' pass def isLocalBasecalled(self, readid: str) ‑> bool-
Type of experiment, like DNA or RNA sequencing
Parameter
readid : str
Returns
status:bool
Expand source code
@abstractmethod def isLocalBasecalled(self, readid : str) -> bool: ''' Type of experiment, like DNA or RNA sequencing Parameter --------- readid : str Returns ------- status : bool ''' pass def isOpen(self) ‑> bool-
Returns
flag:bool- open status of file
Expand source code
def isOpen(self) -> bool: ''' Returns ------- flag : bool open status of file ''' return self._open def open(self) ‑> None-
Opens and loads the reads of the raw ONT file.
Expand source code
@abstractmethod def open(self) -> None: ''' Opens and loads the reads of the raw ONT file. ''' pass