v2.0.0
Loading...
Searching...
No Matches
BIDSLIB::BidsRawData Class Reference

Central container for a BIDS raw dataset, bundling electrophysiological data with all associated sidecar metadata. More...

#include <bids_raw_data.h>

Classes

struct  WriteOptions
 Options controlling how write() operates. More...

Public Types

using SPtr = QSharedPointer<BidsRawData>
using ConstSPtr = QSharedPointer<const BidsRawData>

Public Member Functions

 BidsRawData ()=default
 ~BidsRawData ()=default
 BidsRawData (BidsRawData &&other) noexcept
BidsRawDataoperator= (BidsRawData &&other) noexcept
 BidsRawData (const BidsRawData &)=delete
BidsRawDataoperator= (const BidsRawData &)=delete
BIDSPath write (const BIDSPath &bidsPath, const QString &sourcePath, const WriteOptions &options) const
 Write this dataset to a BIDS-compliant directory.
BIDSPath write (const BIDSPath &bidsPath, const QString &sourcePath=QString()) const
 Convenience overload — write with default options.
bool isValid () const
 Returns true if the data was loaded successfully.
void setValid (bool bValid)
 Marks the data as valid or invalid.
void clear ()
 Clears all data members and resets to invalid state.

Static Public Member Functions

static BidsRawData read (const BIDSPath &bidsPath)
 Read a BIDS dataset from disk.
static AbstractFormatReader::UPtr createReader (const QString &sExtension)
 Create the appropriate format reader for a given file extension.

Public Attributes

FIFFLIB::FiffRawData raw
QList< BidsEventevents
QMap< QString, int > eventIdMap
QList< BidsElectrodeelectrodes
BidsCoordinateSystem coordinateSystem
AbstractFormatReader::UPtr reader
QString ieegReference
QString taskDescription
QString manufacturer
QString manufacturerModelName
QString softwareVersions
QString recordingType

Detailed Description

Central container for a BIDS raw dataset, bundling electrophysiological data with all associated sidecar metadata.

BidsRawData is the primary data object of the BIDS library, analogous to FiffRawData for the FIFF library. It owns both the data and the I/O logic:

  • read() — static factory that loads a BIDS dataset from disk.
  • write() — member that writes the current dataset to a BIDS directory.

Sidecar and coordinate-system fields that are derivable from FiffInfo (sampling frequency, channel counts) are computed on write and applied to FiffInfo on read. Only fields carrying independent information are stored as explicit members.

Example:

BIDSPath path("/data/bids", "01", "implant01", "rest", "ieeg", "ieeg", ".vhdr");
if(data.isValid()) {
qDebug() << "Channels:" << data.raw.info.nchan;
qDebug() << "Events:" << data.events.size();
// Round-trip: write to a new BIDS root
BIDSPath out("/data/bids_out", "01", "implant01", "rest", "ieeg", "ieeg", ".vhdr");
data.write(out, path.filePath());
}
BIDS-compliant path and filename construction.
Definition bids_path.h:92
static BidsRawData read(const BIDSPath &bidsPath)
Read a BIDS dataset from disk.
bool isValid() const
Returns true if the data was loaded successfully.
FIFFLIB::FiffRawData raw
QList< BidsEvent > events
BIDSPath write(const BIDSPath &bidsPath, const QString &sourcePath, const WriteOptions &options) const
Write this dataset to a BIDS-compliant directory.

Definition at line 98 of file bids_raw_data.h.

Member Typedef Documentation

◆ ConstSPtr

using BIDSLIB::BidsRawData::ConstSPtr = QSharedPointer<const BidsRawData>

Definition at line 102 of file bids_raw_data.h.

◆ SPtr

using BIDSLIB::BidsRawData::SPtr = QSharedPointer<BidsRawData>

Definition at line 101 of file bids_raw_data.h.

Constructor & Destructor Documentation

◆ BidsRawData() [1/3]

BIDSLIB::BidsRawData::BidsRawData ( )
default

Default constructor. Creates an empty, invalid BidsRawData.

◆ ~BidsRawData()

BIDSLIB::BidsRawData::~BidsRawData ( )
default

Destructor.

◆ BidsRawData() [2/3]

BidsRawData::BidsRawData ( BidsRawData && other)
noexcept

Definition at line 572 of file bids_raw_data.cpp.

◆ BidsRawData() [3/3]

BIDSLIB::BidsRawData::BidsRawData ( const BidsRawData & )
delete

Member Function Documentation

◆ clear()

void BidsRawData::clear ( )

Clears all data members and resets to invalid state.

Definition at line 615 of file bids_raw_data.cpp.

◆ createReader()

AbstractFormatReader::UPtr BidsRawData::createReader ( const QString & sExtension)
static

Create the appropriate format reader for a given file extension.

Parameters
[in]sExtensionFile extension including dot (e.g. ".vhdr", ".edf").
Returns
Shared pointer to the reader, or nullptr if unsupported.

Definition at line 637 of file bids_raw_data.cpp.

◆ isValid()

bool BIDSLIB::BidsRawData::isValid ( ) const
inline

Returns true if the data was loaded successfully.

Definition at line 199 of file bids_raw_data.h.

◆ operator=() [1/2]

BidsRawData & BidsRawData::operator= ( BidsRawData && other)
noexcept

Definition at line 592 of file bids_raw_data.cpp.

◆ operator=() [2/2]

BidsRawData & BIDSLIB::BidsRawData::operator= ( const BidsRawData & )
delete

◆ read()

BidsRawData BidsRawData::read ( const BIDSPath & bidsPath)
static

Read a BIDS dataset from disk.

Static factory that orchestrates reading of:

  1. Raw data file via the appropriate format reader (EDF, BrainVision, …)
  2. *_channels.tsv → channel types, units, bad-channel marking
  3. *_electrodes.tsv + *_coordsystem.json → digitization points
  4. *_events.tsv → event annotations
  5. *_{datatype}.json → line frequency and recording metadata

The BIDSPath must have at minimum: root, subject, datatype, suffix, extension.

Parameters
[in]bidsPathFully specified BIDSPath pointing to the raw data file.
Returns
Populated BidsRawData. Check isValid() to determine success.

Definition at line 651 of file bids_raw_data.cpp.

◆ setValid()

void BIDSLIB::BidsRawData::setValid ( bool bValid)
inline

Marks the data as valid or invalid.

Definition at line 204 of file bids_raw_data.h.

◆ write() [1/2]

BIDSPath BidsRawData::write ( const BIDSPath & bidsPath,
const QString & sourcePath,
const WriteOptions & options ) const

Write this dataset to a BIDS-compliant directory.

Orchestrates writing of:

  1. Directory structure: root/sub-XX/[ses-YY/]<datatype>/
  2. Raw data file — copies the source file into the BIDS directory
  3. *_channels.tsv
  4. *_electrodes.tsv + *_coordsystem.json
  5. *_events.tsv
  6. *_{datatype}.json (iEEG sidecar)
  7. dataset_description.json
Parameters
[in]bidsPathTarget BIDSPath (root, subject, task, datatype, suffix, extension).
[in]sourcePathPath to the original raw data file to copy. If empty, the raw data file is not copied.
[in]optionsWrite options (overwrite, dataset name, etc.).
Returns
BIDSPath of the written data file, or empty BIDSPath on failure.

Definition at line 775 of file bids_raw_data.cpp.

◆ write() [2/2]

BIDSPath BIDSLIB::BidsRawData::write ( const BIDSPath & bidsPath,
const QString & sourcePath = QString() ) const
inline

Convenience overload — write with default options.

Definition at line 186 of file bids_raw_data.h.

Member Data Documentation

◆ coordinateSystem

BidsCoordinateSystem BIDSLIB::BidsRawData::coordinateSystem

Coordinate system from *_coordsystem.json.

Definition at line 232 of file bids_raw_data.h.

◆ electrodes

QList<BidsElectrode> BIDSLIB::BidsRawData::electrodes

Electrode positions from *_electrodes.tsv.

Definition at line 231 of file bids_raw_data.h.

◆ eventIdMap

QMap<QString, int> BIDSLIB::BidsRawData::eventIdMap

trial_type string → numeric value mapping.

Definition at line 230 of file bids_raw_data.h.

◆ events

QList<BidsEvent> BIDSLIB::BidsRawData::events

Events from *_events.tsv.

Definition at line 229 of file bids_raw_data.h.

◆ ieegReference

QString BIDSLIB::BidsRawData::ieegReference

Reference electrode name (RECOMMENDED).

Definition at line 241 of file bids_raw_data.h.

◆ manufacturer

QString BIDSLIB::BidsRawData::manufacturer

Amplifier manufacturer (RECOMMENDED).

Definition at line 243 of file bids_raw_data.h.

◆ manufacturerModelName

QString BIDSLIB::BidsRawData::manufacturerModelName

Amplifier model (RECOMMENDED).

Definition at line 244 of file bids_raw_data.h.

◆ raw

FIFFLIB::FiffRawData BIDSLIB::BidsRawData::raw

Raw data with fully populated FiffInfo.

Definition at line 228 of file bids_raw_data.h.

◆ reader

AbstractFormatReader::UPtr BIDSLIB::BidsRawData::reader

The underlying format reader (keeps file open).

Definition at line 233 of file bids_raw_data.h.

◆ recordingType

QString BIDSLIB::BidsRawData::recordingType

"continuous", "epoched", or "discontinuous" (RECOMMENDED).

Definition at line 246 of file bids_raw_data.h.

◆ softwareVersions

QString BIDSLIB::BidsRawData::softwareVersions

Recording software versions (RECOMMENDED).

Definition at line 245 of file bids_raw_data.h.

◆ taskDescription

QString BIDSLIB::BidsRawData::taskDescription

Task description (OPTIONAL).

Definition at line 242 of file bids_raw_data.h.


The documentation for this class was generated from the following files: