Fast Python bindings for reading Intan RHS files
Project description
intan-importer
Fast Python bindings for reading Intan RHS files, powered by Rust for high performance.
Installation
pip install intan-importer
Quick Start
import intan_importer
# Load a single RHS file or a directory of files
rec = intan_importer.load("data.rhs")
# Access the data
time = rec.time # Time vector in seconds
data = rec.data.amplifier_data # Neural data in microvolts
Data Structure
Recording object (rec)
│
├── .time → numpy array of time in seconds
├── .duration → total duration in seconds
├── .num_samples → total number of samples
├── .sample_rate → sampling rate in Hz
├── .num_channels → number of amplifier channels
├── .data_present → bool, whether data exists
├── .source_files → list of source files (if multiple)
│
├── .header
│ ├── .sample_rate → sampling rate in Hz
│ ├── .notch_filter_frequency → 50, 60, or None
│ ├── .reference_channel → reference channel name
│ ├── .note1, .note2, .note3 → user notes
│ ├── .amplifier_channels → list of channel info
│ └── .board_adc_channels → list of ADC channel info
│
├── .data (if present)
│ ├── .timestamps → sample numbers (int32)
│ ├── .amplifier_data → neural data (µV, int32)
│ ├── .board_adc_data → auxiliary inputs (V, int32)
│ ├── .board_dig_in_data → digital inputs (0 or 1)
│ ├── .stim_data → stimulation current (µA)
│ └── ... (other optional data types)
│
└── Methods:
├── .get_channel_data(channel, start_time, end_time)
├── .get_time_slice(start_time, end_time)
└── .summary()
Key Features
Time Vector
The .time property gives you a time vector in seconds, automatically computed from timestamps and sampling rate:
time = rec.time # Computed once and cached
plt.plot(time, rec.data.amplifier_data[0, :])
Channel Access
Access channels by index or name:
# By index
data = rec.get_channel_data(0)
# By channel name
data = rec.get_channel_data("CA1")
# With time window (in seconds)
data = rec.get_channel_data("CA1", start_time=10.0, end_time=20.0)
Channel Information
for i, ch in enumerate(rec.header.amplifier_channels):
print(f"Channel {i}: {ch.custom_channel_name} ({ch.electrode_impedance_magnitude:.0f} Ω)")
Data Types
- Timestamps: Sample numbers (divide by sample_rate for seconds)
- Amplifier data: Microvolts (µV)
- ADC data: Volts (V)
- Digital data: Binary (0 or 1)
- Stimulation data: Microamps (µA)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file intan_importer-0.1.2-cp39-abi3-macosx_11_0_arm64.whl.
File metadata
- Download URL: intan_importer-0.1.2-cp39-abi3-macosx_11_0_arm64.whl
- Upload date:
- Size: 329.1 kB
- Tags: CPython 3.9+, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa75cbd4e2d879ead0c1ed24f84a8d7f1f1c9175fd9c9a7f5d278a2fcc289072
|
|
| MD5 |
0d3d924c3339f2151ade5aef8e30f29b
|
|
| BLAKE2b-256 |
f8222f9ccb3af5510c6c7ba549a1cb878903ac55c3c6dd6fc64bfe4e2cd6e693
|