ChimeraReader20240501¶
class ChimeraReader20240501(settings: Optional[dict] = None)
Bases: MetaReader
Subclass of MetaReader for reading chimera VC400 .log files using the 2024-05 specification that uses a separate json file for metadata
- Attributes:
datafile (str): Path to the data file. logger (logging.Logger): Logger instance for logging messages. datafiles (List[List[str]]): List of sorted data files grouped by channel and time. configs (List[List[dict]]): List of sorted configuration dictionaries grouped by channel and time. datamaps (List[List[numpy.ndarray]]): List of sorted data maps (memmaps or numpy arrays) grouped by channel and time. file_start_indices (List[List[int]]): List of starting indices for each data map in each channel. total_channel_samples (List[int]): List of total number of samples in each channel. samplerate (float): Sampling rate for data acquisition.
Public Methods¶
- ChimeraReader20240501.close_resources(channel: int | None = None) None¶
Perform any actions necessary to gracefully close resources before app exit
- Parameters:
channel (Optional[int]) – channel ID
- ChimeraReader20240501.get_empty_settings(globally_available_plugins: Dict[str, List[str]] | None = None, standalone: bool = False) Dict[str, Dict[str, Any]]¶
Declare the settings this reader exposes, on top of the base contract.
Called by poriscope when the plugin is instantiated or reconfigured, to build the settings dialog and to sanity-check whatever the user enters; the accepted values are then readable through
self.settings. Seeget_empty_settings()for the structure of the dict and whatType,Value,Min,Max,OptionsandUnitsmean in it, and for the reserved keys the GUI builds file pickers from.The keys this plugin adds:
Input File- the Chimera.logfile to read. Everything else comes from the companion.jsonsettings file with the same stem, since this layout has no header embedded in the.log.
- Parameters:
- Returns:
the dict that must be filled in to initialize the filter
- Return type:
Private Methods¶
- ChimeraReader20240501._convert_data(data: ndarray[tuple[int, ...], dtype[int16]], config: dict) ndarray[tuple[int, ...], dtype[float64]]¶
Convert raw data from disk into rescaled current, in pA.
- Parameters:
data (npt.NDArray[np.int16]) – Data to convert.
config (dict) – Configuration dictionary for data conversion.
- Returns:
The data, rescaled to pA.
- Return type:
npt.NDArray[np.float64]
- ChimeraReader20240501._get_configs(datafiles: List[str]) List[dict]¶
Load configuration files as dictionaries, corresponding to datamaps as needed. Parses each file’s companion .json settings file (same stem, .json extension) to build a per-file configuration dict; unlike ChimeraReader20240101, this format has no embedded header.
- ChimeraReader20240501._get_file_channel_stamps(file_names: List[str], configs: List[dict]) List[int]¶
Get a list of serialization keys used to sort the list of files associated to the experiment.
- ChimeraReader20240501._get_file_pattern(file_name: str) str¶
Get the base name for matching other files to the same dataset as the initial one provided to the constructor.
- Parameters:
file_name (str) – File path.
- Returns:
Base name for matching other files.
- Return type:
- Raises:
ValueError – If the base naming pattern cannot be ascertained.
- ChimeraReader20240501._get_file_time_stamps(file_names: List[str], configs: List[dict]) List[datetime]¶
Get a list of serialization keys used to sort the list of files associated to the experiment.
- ChimeraReader20240501._map_data(datafiles: List[str], configs: List[dict]) List[ndarray]¶
Map data files into a set of memmaps or similarly define a way to access the raw data on disk. Returns a list of memmaps corresponding to each datafile/configfile pair.
- Parameters:
- Returns:
List of memmaps containing raw data.
- Return type:
List[np.ndarray]
- Raises:
FileNotFoundError – If at least one of the input raw data files is missing or renamed.
OSError – If the file indicated is inaccessible.
- ChimeraReader20240501._set_file_extension() str¶
Set the expected file extension for files read using this reader subclass
- ChimeraReader20240501._validate_file_type(filename: PathLike) None¶
Check that the file(s) being opened are of the correct type, and raise IOError if not
- Parameters:
filename (os.PathLike) – the path to one of the files to be opened