Effective Strategies for Loading and Saving SNIRF Files in Homer3 Training Webinar Series

homer 3 training webinar series n.w
1 / 13
Embed
Share

Discover the universality of SNIRF files for storing and sharing NIRS data in Homer3 training webinar. Explore how Homer3 maintains the integrity of original files and separates acquired and derived data. Learn to load and save SNIRF files efficiently while following SNIRF specifications.

  • SNIRF Files
  • Homer3 Training
  • Data Storage
  • NIRS Analysis
  • File Format

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. HOMER 3 TRAINING WEBINAR SERIES PRESENTERS: DAVID A. BOAS and MERYEM AY E Y CEL DATE: 02/25/2021 TOPIC: Loading and saving snirf files https://github.com/BUNPC/Homer3 https://github.com/BUNPC/AtlasViewer

  2. Universality: a universal file format for storing and sharing NIRS data independently of any specific application Intact: Homer3 does not change the original files that it uses for its analysis. Separates data into acquired (from original data files, snirf) and derived (any processed data, stored in a separate groupResults.mat file). SNIRF (Shared Near Infrared Spectroscopy Format) https://github.com/fNIRS/snirf

  3. snirf = SnirfLoad('test.snirf) Loads a snirf file 'filenm' into a snirf class object snirf = SnirfClass with properties: SnirfLoad formatVersion: '1.0' metaDataTags: [1 1 MetaDataTagsClass] data: [1 1 DataClass] stim: [1 2 StimClass] probe: [1 1 ProbeClass] aux: [1 8 AuxClass] errmsgs: 0

  4. SnirfSave( filenm, snirf ) saves a snirf object to file 'filenm SnirfSave 1) You create a snirf object with snirf = SnirfClass() and then populate it with the required fields indicated by the SNIRF specification. 2) You can change a field in an existing snirf file and overwrite.

  5. https://github.com/fNIRS/snirf/blob/master/snirf_specification.md #snirf-data-format-summary Snirf fields

  6. SnirfClass with properties: formatVersion: '1.0' metaDataTags: [1 1 MetaDataTagsClass] Main fields data: [1 1 DataClass] stim: [1 2 StimClass] probe: [1 1 ProbeClass] aux: [1 8 AuxClass] errmsgs: 0

  7. >> snirf.metaDataTags.tags ans = struct with fields: subfield snirf.metaData Tags.tags AppName: FrequencyUnit: LengthUnit: MeasurementDate: MeasurementTime: SnirfDraft: SubjectID: TimeUnit: 'snirf-homer3' 'unknown' 'mm' '2021-01-28' '04:01:49' '3' 'default' 'unknown'

  8. >> snirf.data ans = subfield snirf.data DataClass with properties: dataTimeSeries: [18250 28 double] time: [18250 1 double] measurementList: [1 28 MeasListClass] TIP: Plot whole raw signal: figure;plot(snirf.data.time, snirf.data.dataTimeSeries)

  9. >> snirf.data.measurementList ans = 1 28 MeasListClass array with properties: subfield snirf.data.MeasList Class sourceIndex detectorIndex wavelengthIndex dataType dataTypeLabel dataTypeIndex TIP: Get channel info: sourcePower e.g. for channel 28 detectorGain snirf.data.measurementList(28) moduleIndex

  10. >> snirf.stim ans = subfield snirf.stim 1 2 StimClass array with properties: name data dataLabels (onset/duration/amplitude) TIP: Extract onset timings and duration for a specific condition: states e.g. for condition 2 snirf.stim(2).data

  11. >> snirf.probe ans = ProbeClass with properties: wavelengths: [2 1 double] wavelengthsEmission: [] sourcePos2D: [4 3 double] detectorPos2D: [20 3 double] subfield snirf.probe landmarkPos2D: [] sourcePos3D: [4 3 double] detectorPos3D: [20 3 double] frequencies: 1 timeDelays: 0 TIP: Plot a probe in 3d timeDelayWidths: 0 momentOrder: [] figure; plot(snirf.probe.sourcePos3D(:,1),snirf. probe.sourcePos3D(:,2), 'rx'); hold; plot(snirf.probe.detectorPos3D(:,1),sni rf.probe.detectorPos3D(:,2), 'bo') correlationTimeDelays: 0 correlationTimeDelayWidths: 0 sourceLabels: {4 1 cell} detectorLabels: {20 1 cell} landmarkLabels: []

  12. >> snirf.aux ans = subfield snirf.aux 1 8 AuxClass array with properties: name dataTimeSeries time TIP: Plot aux channel 1: timeOffset figure;plot(snirf.aux(1).time,snirf.aux( 1).dataTimeSeries)

Related


More Related Content