patkit

Database Classes

At time of writing the existence of a Trial class is uncertain in 1.0. If there is no Trial class then the only type of Session will be Session, which will be a list of Recordings.

classDiagram
    direction UD
    class Dataset{
        sessions: list[Session]
        participants: dict[Participant]
        metadata: DatasetMetadata
    }

    class Participant{
        id: str
        metadata: ParticipantMetadata
    }

    class Session{
        recordings: list[Recording]
        metadata: SessionMetadata
    }

    class Recording{
        modalities: dict[Modality]
        metadata: RecordingMetadata
    }

    class Modality{
        modality_data: ModalityData
        metadata: ModalityMetaData
        annotations: dict[Annotation]
    }

    class ModalityData{
        data: ndarray
        timevector: ndarray
        sampling_rate: float
    }

    class Annotation{
        times: ndarray
        properties: list[dict]
    }

    Dataset o-- "1.n" Participant
    Dataset o-- "1.n" Session
    Session o-- "1.n" Participant
    Session o-- "1.n" Recording
    Recording o-- "1.n" Modality
    Modality o-- "1" ModalityData
    Modality o-- "1.n" Annotation

In case Trial is included:

classDiagram
    direction UD
    class Dataset{
        sessions: list[Session]
        participants: dict[Participant]
        metadata: DatasetMetadata
    }

    class Participant{
        id: str
        metadata: ParticipantMetadata
    }

    class TrialSession{
        recordings: list[Recording]
        metadata: SessionMetadata
    }

    class Trial{
        participants: list[Participant]
        recordings: list[Recording]
    }

    class Recording{
        modalities: dict[Modality]
        metadata: RecordingMetadata
    }

    class Modality{
        modality_data: ModalityData
        metadata: ModalityMetaData
    }

    class ModalityData{
        data: ndarray
        timevector: ndarray
        sampling_rate: float
    }

    Dataset o-- "1.n" Participant
    Dataset o-- "1.n" TrialSession
    TrialSession o-- "1.n" Participant
    TrialSession o-- "1.n" Trial
    Trial o-- "1.n" Recording
    Trial o-- "1.n" Participant
    Recording o-- "1.n" Modality
    Modality o-- "1" ModalityData