LEMON dataset example with BIDSCOIN

This example illustrates the use of sovabids on the LEMON dataset using bidscoin.

The main elements of this example are:
  • A source path with the original dataset.

  • A bids path that will be the output path of the conversion.

  • A rules file that configures how the conversion is done.

  • A bidsmap template required by bidscoin. (Equivalent to our rules file)

  • A study bidsmap. (Equivalent to our mappings file)

Refer to the bidscoin documentation to understand the components and workflow of bidscoin.

In summary, bidscoin uses a bidsmap to encode how a conversion is done.

Intuitively, the bidsmapper grabs a template to produce a study bidsmap, which may or may not be customized for each file through the bidseditor. Either way the final study bidsmap is passed to bidscoiner to perform the conversion.

The connection of sovabids and bidscoin is through a plugin called sova2coin which helps the bidscoin modules by dealing with the EEG data.

graph LR S>"Source path"] B>"Bids path"] R>"Rules file"] O[("Converted dataset")] BM((bidsmapper)) BC((bidscoiner)) BE((bidseditor)) BF>bidsmap template] SOVA((sova2coin)) --> BM B-->BM BM-->|bidsmap|BE BE-->|user-edited bidsmap|BC BC-->O R --> SOVA BF -->BM S --> BM SOVA-->BC

Warning

If you didn’t install sovabids in ‘advanced-usage’ mode ( see here ), you will probably need to install bidscoin:

Install our bidscoin branch

That is, you need to run:

pip install git+https://github.com/yjmantilla/bidscoin.git@sovabids

If that doesn’t work try:

git clone https://github.com/yjmantilla/bidscoin/tree/sovabids
cd bidscoin
pip install .

Imports

First we import some functions we will need:

import os
import shutil # File manipulation
import yaml # To do yaml operations
from mne_bids import print_dir_tree # To show the input/output directories structures inside this example
from sovabids.datasets import lemon_bidscoin_prepare # Dataset
from sovabids.schemas import get_sova2coin_bidsmap # bidsmap template schema
from sovabids.settings import REPO_PATH

Setting up the paths

First, we will set up four paths. Because this example is intended to run relative to the repository directory we use relative path but for real use-cases it is easier to just input the absolute-path. We will print these paths for more clarity.

dataset = 'lemon_bidscoin' # Just folder name where to save or dataset
data_dir = os.path.join(REPO_PATH,'_data')
data_dir = os.path.abspath(data_dir)

source_path = os.path.abspath(os.path.join(data_dir,dataset+'_input'))
bids_path= os.path.abspath(os.path.join(data_dir,dataset+'_output'))
code_path = os.path.join(bids_path,'code','bidscoin')
rules_path = os.path.join(code_path,'rules.yml')
template_path = os.path.join(code_path,'template.yml')
bidsmap_path  = os.path.join( code_path,'bidsmap.yaml')
print('source_path:',source_path.replace(data_dir,''))
print('bids_path:', bids_path.replace(data_dir,''))
print('rules_path:',rules_path.replace(data_dir,''))
print('template_path:',template_path.replace(data_dir,''))
print('bidsmap_path:',bidsmap_path.replace(data_dir,''))

Out:

source_path: /lemon_bidscoin_input
bids_path: /lemon_bidscoin_output
rules_path: /lemon_bidscoin_output/code/bidscoin/rules.yml
template_path: /lemon_bidscoin_output/code/bidscoin/template.yml
bidsmap_path: /lemon_bidscoin_output/code/bidscoin/bidsmap.yaml

Cleaning the output directory

We will clean the output path as a safety measure from previous conversions.

try:
    shutil.rmtree(bids_path)
except:
    pass

Make the folders if they don’t exist to avoid errors

for p in [source_path,bids_path,code_path]:
    os.makedirs(p,exist_ok=True)

Getting and preparing the dataset

We have to download and decompress the dataset. We also need to fix a filename inconsistency (without this correction the file won’t be able to be opened in mne). Luckily all of that is encapsulated in the lemon_prepare function since these issues are not properly of sovabids.

We also need to prepare the data to the bidscoin required source data structure .

We will save this input data to source_path .

Out:

Downloading sub-032301.tar.gz at /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon
100
Downloading sub-032302.tar.gz at /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon
100
Downloading sub-032303.tar.gz at /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon
100
Downloading name_match.csv at /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon
100
LEMON PREPARE DONE!
/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon/sub-010004/RSEEG/sub-010004.vmrk  to  /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vmrk
/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon/sub-010004/RSEEG/sub-010004.eeg  to  /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.eeg
/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon/sub-010004/RSEEG/sub-010004.vhdr  to  /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr
/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon/sub-010003/RSEEG/sub-010003.vhdr  to  /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr
/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon/sub-010003/RSEEG/sub-010003.vmrk  to  /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vmrk
/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon/sub-010003/RSEEG/sub-010003.eeg  to  /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.eeg
/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon/sub-010002/RSEEG/sub-010002.eeg  to  /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.eeg
/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon/sub-010002/RSEEG/sub-010002.vmrk  to  /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vmrk
/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon/sub-010002/RSEEG/sub-010002.vhdr  to  /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr
finish

The input directory

For clarity purposes we will print here the directory we are trying to convert to BIDS.

print_dir_tree(source_path)

Out:

|lemon_bidscoin_input/
|--- sub-010002/
|------ ses-001/
|--------- resting/
|------------ sub-010002.eeg
|------------ sub-010002.vhdr
|------------ sub-010002.vmrk
|--- sub-010003/
|------ ses-001/
|--------- resting/
|------------ sub-010003.eeg
|------------ sub-010003.vhdr
|------------ sub-010003.vmrk
|--- sub-010004/
|------ ses-001/
|--------- resting/
|------------ sub-010004.eeg
|------------ sub-010004.vhdr
|------------ sub-010004.vmrk

Making the rules

See the Rules File Schema documentation for help regarding making this rules file.

Here we will make the rules from a python dictionary.

rules ={
'entities':{'task':'resting'},
'dataset_description':{'Name':dataset},
'sidecar':{'PowerLineFrequency':50,'EEGReference':'FCz'},
'channels':{'type':{'VEOG':'VEOG'}},
'non-bids':{'path_analysis':{'pattern':'sub-%entities.subject%/ses-%entities.session%/%ignore%/%ignore%.vhdr'}}
}
with open(rules_path, 'w') as outfile:
    yaml.dump(rules, outfile, default_flow_style=False)

Now print the rules to see how the yaml file we made from the python dictionary looks like

with open(rules_path,encoding="utf-8") as f:
    rules = f.read()
    print(rules)

Out:

channels:
  type:
    VEOG: VEOG
dataset_description:
  Name: lemon_bidscoin
entities:
  task: resting
non-bids:
  path_analysis:
    pattern: sub-%entities.subject%/ses-%entities.session%/%ignore%/%ignore%.vhdr
sidecar:
  EEGReference: FCz
  PowerLineFrequency: 50

Making the bidsmap template

The template is equivalent to the “rules” file of sovabids. It encodes the general way of doing the conversion.

Explaining this file is out of scope of this example (this is bidscoin territory).

We will notice however that:

  • We input our rules file as an option to the sova2coin plugin.

  • We are interested in a “EEG” dataformat with an “eeg” datatype.

  • We match every file with a .* in the properties.filename section

  • The attributes are basically the metadata information extracted from the files which may be used to derive bids-related information.

  • In the attributes section we have the objects as they are named in our rules file schema (that is, here we deal with sovabids terminology using a dot notation for nesting)

  • We populate bids-related info with the extracted attributes (see subject, session and bids sections of the file)

  • We set the suffix to eeg.

  • The < and << is best explained here

template = get_sova2coin_bidsmap().format(rules_path)

print(template)

with open(template_path,mode='w') as f:
    f.write(template)

Out:

# --------------------------------------------------------------------------------
# This is a bidsmap YAML file with the key-value mappings for the different BIDS
# datatypes (anat, func, dwi, etc). The datatype attributes are the keys that map
# onto the BIDS labels. The bidsmap data-structure should be 5 levels deep:
#
# dict       : dict     : list     : dict        : dict
# dataformat : datatype : run-item : bidsmapping : mapping-data
#
# NB:
# 1) Edit the bidsmap file to your needs before feeding it to bidscoiner.py
# 2) (Institute) users may create their own bidsmap_[template].yaml or
#    bidsmap_[sample].yaml file
#
# For more information, see: https://bidscoin.readthedocs.io
# --------------------------------------------------------------------------------


Options:
# --------------------------------------------------------------------------------
# General options and plugins
# --------------------------------------------------------------------------------
  bidscoin:
    version: 3.7.0-dev            # BIDScoin version (should correspond with the version in ../bidscoin/version.txt)
    bidsignore: extra_data/       # Semicolon-separated list of entries that are added to the .bidsignore file (for more info, see BIDS specifications), e.g. extra_data/;pet/;myfile.txt;yourfile.csv
    subprefix: sub-               # The default subject prefix of the source data
    sesprefix: ses-               # The default session prefix of the source data
  plugins:                        # List of plugins with plugin-specific key-value pairs (that can be used by the plugin)
    README:                       # The plugin basename that is installed in the default bidscoin/plugins folder
    dcm2bidsmap:                  # The default plugin that is used by the bidsmapper to map DICOM and PAR/REC source data
    dcm2niix2bids:                # See dcm2niix -h and https://www.nitrc.org/plugins/mwiki/index.php/dcm2nii:MainPage#General_Usage for more info
      path: module add dcm2niix;  # Command to set the path to dcm2niix (note the semi-colon), e.g. module add dcm2niix/1.0.20180622; or PATH=/opt/dcm2niix/bin:$PATH; or /opt/dcm2niix/bin/ or '"C:\Program Files\dcm2niix\"' (note the quotes to deal with the whitespace)
      args: -b y -z y -i n        # Argument string that is passed to dcm2niix. Tip: SPM users may want to use '-z n' (which produces unzipped nifti's, see dcm2niix -h for more information)
    sova2coin:                    # sovabids module
      rules : /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/code/bidscoin/rules.yml                  #


EEG:
# --------------------------------------------------------------------------------
# EEG key-value heuristics (sovabids fields that are mapped to the BIDS labels)
# --------------------------------------------------------------------------------
  subject: <<entities.subject>>
  session: <<entities.session>>

  eeg:       # ----------------------- All eeg runs --------------------
  - provenance:                   # The fullpath name of the EEG file from which the attributes are read. Serves also as a look-up key to find a run in the bidsmap
    properties: &fileprop         # This is an optional (stub) entry of filesystem matching (could be added to any run-item)
      filepath:                   # File folder, e.g. ".*Parkinson.*" or ".*(phantom|bottle).*"
      filename:      .*           # File name, e.g. ".*fmap.*" or ".*(fmap|field.?map|B0.?map).*"
      filesize:                   # File size, e.g. "2[4-6]\d MB" for matching files between 240-269 MB
      nrfiles:                    # Number of files in the folder that match the above criteria, e.g. "5/d/d" for matching a number between 500-599
    attributes: &eeg_attr         # An empty / non-matching reference dictionary that can be derefenced in other run-items of this data type
      sidecar:
      channels.name:
      channels.type:
      channels.units:
      entities.subject:
      entities.task:
      entities.session:
      entities.run:
      dataset_description:
    bids: &eeg_bids               # See: schema/datatypes/eeg.yaml
      task: <<entities.task>>     # Note Dynamic values are not previewed in the bids editor but they do work, this should be fixed anyway
      acq:
      run: <<entities.run>>
      suffix: eeg
    meta:                         # This is an optional entry for meta-data that will be appended to the json sidecar files. Currently not supported in sova2coin.

Tip

You can also input the rules directly (ie writing the rules instead of the path to the rules file)

What is important is that inside the “rules” field of the sova2coin “options”

Note

The EEG:eeg hierarchy just says that there is an ‘EEG’ dataformat which a general ‘eeg’ datatype.

This is a bit redundant but it happens because bidscoin was originally thought for DICOM (dataformat) which holds many datatypes (anat,perf,etc). In eeg this doesnt happens.

Some necessary code

To be able to run commands from this notebook and capture their outputs we need to define the following, nevertheless this is not relevant to actually running this from the command line.

from subprocess import PIPE, run

def out(command):
    result = run(command, stdout=PIPE, stderr=PIPE, universal_newlines=True, shell=True)
    return result.stdout

my_output = out("echo hello world")
print(my_output)

Out:

hello world

bidsmapper

First we execute the bidsmapper to get a study bidsmap from our bidsmap template.

The bidsmap file is equivalent to our “mappings” file; it encodes how the conversion is done on a per-file basis.

Lets see the help:

command = "bidsmapper --help"
print(command)

Out:

bidsmapper --help

This will give the following output

my_output= out(command)
print(my_output)

Out:

usage: bidsmapper [-h] [-b BIDSMAP] [-t TEMPLATE] [-n SUBPREFIX]
                  [-m SESPREFIX] [-s] [-a] [-f] [-v]
                  sourcefolder bidsfolder

The bidsmapper scans your source data repository to identify different data types by matching
them against the items in the template bidsmap. Once a match is found, a mapping to BIDS output
data types is made. You can check and edit these generated bids-mappings to your needs with the
(automatically launched) bidseditor. Re-run the bidsmapper whenever something was changed in
your data acquisition protocol and edit the new data type to your needs (your existing bidsmap
will be re-used).

The bidsmapper uses plugins, as stored in the bidsmap['Options'], to do the actual work

positional arguments:
  sourcefolder          The study root folder containing the raw data in
                        sub-#/[ses-#/]data subfolders (or specify --subprefix
                        and --sesprefix for different prefixes)
  bidsfolder            The destination folder with the (future) bids data and
                        the bidsfolder/code/bidscoin/bidsmap.yaml output file

optional arguments:
  -h, --help            show this help message and exit
  -b BIDSMAP, --bidsmap BIDSMAP
                        The study bidsmap file with the mapping heuristics. If
                        the bidsmap filename is relative (i.e. no "/" in the
                        name) then it is assumed to be located in
                        bidsfolder/code/bidscoin. Default: bidsmap.yaml
  -t TEMPLATE, --template TEMPLATE
                        The bidsmap template file with the default heuristics
                        (this could be provided by your institute). If the
                        bidsmap filename is relative (i.e. no "/" in the name)
                        then it is assumed to be located in
                        bidsfolder/code/bidscoin. Default: bidsmap_dccn.yaml
  -n SUBPREFIX, --subprefix SUBPREFIX
                        The prefix common for all the source subject-folders
                        (e.g. 'Pt' is the subprefix if subject folders are
                        named 'Pt018', 'Pt019', ...). Default: 'sub-'
  -m SESPREFIX, --sesprefix SESPREFIX
                        The prefix common for all the source session-folders
                        (e.g. 'M_' is the subprefix if session folders are
                        named 'M_pre', 'M_post', ...). Default: 'ses-'
  -s, --store           Flag to store provenance data samples in the
                        bidsfolder/'code'/'provenance' folder (useful for
                        inspecting e.g. zipped or transfered datasets)
  -a, --automated       Flag to save the automatically generated bidsmap to
                        disk and without interactively tweaking it with the
                        bidseditor
  -f, --force           Flag to discard the previously saved bidsmap and
                        logfile
  -v, --version         Show the installed version and check for updates

examples:
  bidsmapper /project/foo/raw /project/foo/bids
  bidsmapper /project/foo/raw /project/foo/bids -t bidsmap_template

Now we will use the following command to get the bidsmap study file.

Note we use -t to set the template and -a to run this without the bidseditor

You can skip the -a option if you are able to open the bidseditor (ie you are able to give user-input in its interface)

Just remember to save the bidsmap yaml at the end.

See the bidseditor documentation for more info.

command = 'bidsmapper '+source_path + ' '+ bids_path + ' -t ' + template_path + ' -a'
print(command)

Out:

bidsmapper /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output -t /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/code/bidscoin/template.yml -a

This will produce the following study bidsmap:

my_output= out(command)
print(my_output)

with open(bidsmap_path,encoding="utf8", errors='ignore') as f:
    bidsmap= f.read()
    print(bidsmap)

Out:

Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...

# --------------------------------------------------------------------------------
# This is a bidsmap YAML file with the key-value mappings for the different BIDS
# datatypes (anat, func, dwi, etc). The datatype attributes are the keys that map
# onto the BIDS labels. The bidsmap data-structure should be 5 levels deep:
#
# dict       : dict     : list     : dict        : dict
# dataformat : datatype : run-item : bidsmapping : mapping-data
#
# NB:
# 1) Edit the bidsmap file to your needs before feeding it to bidscoiner.py
# 2) (Institute) users may create their own bidsmap_[template].yaml or
#    bidsmap_[sample].yaml file
#
# For more information, see: https://bidscoin.readthedocs.io
# --------------------------------------------------------------------------------


Options:
# --------------------------------------------------------------------------------
# General options and plugins
# --------------------------------------------------------------------------------
  bidscoin:
    version: 3.7.0-dev            # BIDScoin version (should correspond with the version in ../bidscoin/version.txt)
    bidsignore: extra_data/       # Semicolon-separated list of entries that are added to the .bidsignore file (for more info, see BIDS specifications), e.g. extra_data/;pet/;myfile.txt;yourfile.csv
    subprefix: sub-               # The default subject prefix of the source data
    sesprefix: ses-               # The default session prefix of the source data
  plugins:                        # List of plugins with plugin-specific key-value pairs (that can be used by the plugin)
    README: {}                    # The plugin basename that is installed in the default bidscoin/plugins folder
    dcm2bidsmap: {}               # The default plugin that is used by the bidsmapper to map DICOM and PAR/REC source data
    dcm2niix2bids:                # See dcm2niix -h and https://www.nitrc.org/plugins/mwiki/index.php/dcm2nii:MainPage#General_Usage for more info
      path: module add dcm2niix;  # Command to set the path to dcm2niix (note the semi-colon), e.g. module add dcm2niix/1.0.20180622; or PATH=/opt/dcm2niix/bin:$PATH; or /opt/dcm2niix/bin/ or '"C:\Program Files\dcm2niix\"' (note the quotes to deal with the whitespace)
      args: -b y -z y -i n        # Argument string that is passed to dcm2niix. Tip: SPM users may want to use '-z n' (which produces unzipped nifti's, see dcm2niix -h for more information)
    sova2coin:                    # sovabids module
      rules: /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/code/bidscoin/rules.yml                   #


EEG:
# --------------------------------------------------------------------------------
# EEG key-value heuristics (sovabids fields that are mapped to the BIDS labels)
# --------------------------------------------------------------------------------
  subject: <<entities.subject>>
  session: <<entities.session>>

  eeg:       # ----------------------- All eeg runs --------------------
  - provenance: /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr
    properties:
      filepath:
      filename: .*
      filesize:
      nrfiles:
    attributes:
      sidecar: '{    "TaskName": "resting",    "Manufacturer": "BrainProducts",    "PowerLineFrequency":
        50,    "SamplingFrequency": 2500.0,    "SoftwareFilters": "n/a",    "RecordingDuration":
        1021.9996,    "RecordingType": "continuous",    "EEGReference": "FCz",    "EEGGround":
        "n/a",    "EEGPlacementScheme": "based on the extended 10/20 system"}'
      channels.name: Fp1,Fp2,F7,F3,Fz,F4,F8,FC5,FC1,FC2,FC6,T7,C3,Cz,C4,T8,VEOG,CP5,CP1,CP2,CP6,AFz,P7,P3,Pz,P4,P8,PO9,O1,Oz,O2,PO10,AF7,AF3,AF4,AF8,F5,F1,F2,F6,FT7,FC3,FC4,FT8,C5,C1,C2,C6,TP7,CP3,CPz,CP4,TP8,P5,P1,P2,P6,PO7,PO3,POz,PO4,PO8
      channels.type: EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,VEOG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG
      channels.units: µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV
      entities.subject: '010002'
      entities.task: resting
      entities.session: '001'
      entities.run: ''
      dataset_description: '{    "Name": "lemon_bidscoin",    "BIDSVersion": "1.6.0",    "DatasetType":
        "raw",    "Authors": [        "[Unspecified]"    ]}'
    bids:
      task: <<entities.task>>
      acq:
      run: <<entities.run>>
      suffix: eeg
    meta: {}
  - provenance: /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr
    properties:
      filepath:
      filename: .*
      filesize:
      nrfiles:
    attributes:
      sidecar: '{    "TaskName": "resting",    "Manufacturer": "BrainProducts",    "PowerLineFrequency":
        50,    "SamplingFrequency": 2500.0,    "SoftwareFilters": "n/a",    "RecordingDuration":
        1007.9396,    "RecordingType": "continuous",    "EEGReference": "FCz",    "EEGGround":
        "n/a",    "EEGPlacementScheme": "based on the extended 10/20 system"}'
      channels.name: Fp1,Fp2,F7,F3,Fz,F4,F8,FC5,FC1,FC2,FC6,T7,C3,Cz,C4,T8,VEOG,CP5,CP1,CP2,CP6,AFz,P7,P3,Pz,P4,P8,PO9,O1,Oz,O2,PO10,AF7,AF3,AF4,AF8,F5,F1,F2,F6,FT7,FC3,FC4,FT8,C5,C1,C2,C6,TP7,CP3,CPz,CP4,TP8,P5,P1,P2,P6,PO7,PO3,POz,PO4,PO8
      channels.type: EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,VEOG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG
      channels.units: µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV
      entities.subject: '010003'
      entities.task: resting
      entities.session: '001'
      entities.run: ''
      dataset_description: '{    "Name": "lemon_bidscoin",    "BIDSVersion": "1.6.0",    "DatasetType":
        "raw",    "Authors": [        "[Unspecified]"    ]}'
    bids:
      task: <<entities.task>>
      acq:
      run: <<entities.run>>
      suffix: eeg
    meta: {}
  - provenance: /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr
    properties:
      filepath:
      filename: .*
      filesize:
      nrfiles:
    attributes:
      sidecar: '{    "TaskName": "resting",    "Manufacturer": "BrainProducts",    "PowerLineFrequency":
        50,    "SamplingFrequency": 2500.0,    "SoftwareFilters": "n/a",    "RecordingDuration":
        1022.0396,    "RecordingType": "continuous",    "EEGReference": "FCz",    "EEGGround":
        "n/a",    "EEGPlacementScheme": "based on the extended 10/20 system"}'
      channels.name: Fp1,Fp2,F7,F3,Fz,F4,F8,FC5,FC1,FC2,FC6,T7,C3,Cz,C4,T8,VEOG,CP5,CP1,CP2,CP6,AFz,P7,P3,Pz,P4,P8,PO9,O1,Oz,O2,PO10,AF7,AF3,AF4,AF8,F5,F1,F2,F6,FT7,FC3,FC4,FT8,C5,C1,C2,C6,TP7,CP3,CPz,CP4,TP8,P5,P1,P2,P6,PO7,PO3,POz,PO4,PO8
      channels.type: EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,VEOG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG,EEG
      channels.units: µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV,µV
      entities.subject: '010004'
      entities.task: resting
      entities.session: '001'
      entities.run: ''
      dataset_description: '{    "Name": "lemon_bidscoin",    "BIDSVersion": "1.6.0",    "DatasetType":
        "raw",    "Authors": [        "[Unspecified]"    ]}'
    bids:
      task: <<entities.task>>
      acq:
      run: <<entities.run>>
      suffix: eeg
    meta: {}

at the following path:

print(bidsmap_path)

Out:

/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/code/bidscoin/bidsmap.yaml

bidscoiner

Now we are ready to perform the conversion given the study bidsmap file just made.

Use the following command to print the help of the tool:

command = "bidscoiner --help"
print(command)

Out:

bidscoiner --help

This will give the following output

my_output= out(command)
print(my_output)

Out:

usage: bidscoiner [-h] [-p PARTICIPANT_LABEL [PARTICIPANT_LABEL ...]] [-f]
                  [-s] [-b BIDSMAP] [-v]
                  sourcefolder bidsfolder

Converts ("coins") your source datasets to nifti / json / tsv BIDS datasets using
the information from the bidsmap.yaml file. Edit this bidsmap to your needs using the
bidseditor tool before running this function or (re-)run the bidsmapper whenever you
encounter unexpected data. You can run bidscoiner after all data has been collected,
or run / re-run it whenever new data has been added to your source folder (presuming
the scan protocol hasn't changed). Also, if you delete a subject/session folder from
the bidsfolder, it will simply be re-created from the sourcefolder the next time you
run the bidscoiner.

The bidscoiner uses plugins, as stored in the bidsmap['Options'], to do the actual work

Provenance information, warnings and error messages are stored in the
bidsfolder/code/bidscoin/bidscoiner.log file.

positional arguments:
  sourcefolder          The study root folder containing the raw data in
                        sub-#/[ses-#/]data subfolders (or specify --subprefix
                        and --sesprefix for different prefixes)
  bidsfolder            The destination / output folder with the bids data

optional arguments:
  -h, --help            show this help message and exit
  -p PARTICIPANT_LABEL [PARTICIPANT_LABEL ...], --participant_label PARTICIPANT_LABEL [PARTICIPANT_LABEL ...]
                        Space separated list of selected sub-# names / folders
                        to be processed (the sub- prefix can be removed).
                        Otherwise all subjects in the sourcefolder will be
                        selected
  -f, --force           If this flag is given subjects will be processed,
                        regardless of existing folders in the bidsfolder.
                        Otherwise existing folders will be skipped
  -s, --skip_participants
                        If this flag is given those subjects that are in
                        participants.tsv will not be processed (also when the
                        --force flag is given). Otherwise the participants.tsv
                        table is ignored
  -b BIDSMAP, --bidsmap BIDSMAP
                        The study bidsmap file with the mapping heuristics. If
                        the bidsmap filename is relative (i.e. no "/" in the
                        name) then it is assumed to be located in
                        bidsfolder/code/bidscoin. Default: bidsmap.yaml
  -v, --version         Show the installed version and check for updates

examples:
  bidscoiner /project/foo/raw /project/foo/bids
  bidscoiner -f /project/foo/raw /project/foo/bids -p sub-009 sub-030

Now we will use the following command to perform the conversion.

command = 'bidscoiner '+source_path + ' '+ bids_path + ' -b '+ bidsmap_path

print(command)

Out:

bidscoiner /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output -b /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/code/bidscoin/bidsmap.yaml

This will produce the following output:

my_output= out(command)
print(my_output)

Out:

Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010002/ses-001/resting/sub-010002.vhdr...
Setting channel info structure...

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/README'...

References
----------
Appelhoff, S., Sanderson, M., Brooks, T., Vliet, M., Quentin, R., Holdgraf, C., Chaumon, M., Mikulan, E., Tavabi, K., Höchenberger, R., Welke, D., Brunner, C., Rockhill, A., Larson, E., Gramfort, A. and Jas, M. (2019). MNE-BIDS: Organizing electrophysiological data into the BIDS format and facilitating their analysis. Journal of Open Source Software 4: (1896). https://doi.org/10.21105/joss.01896

Pernet, C. R., Appelhoff, S., Gorgolewski, K. J., Flandin, G., Phillips, C., Delorme, A., Oostenveld, R. (2019). EEG-BIDS, an extension to the brain imaging data structure for electroencephalography. Scientific Data, 6, 103. https://doi.org/10.1038/s41597-019-0104-8


Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/participants.tsv'...

participant_id  age     sex     hand
sub-010002      n/a     n/a     n/a

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/participants.json'...

{
    "participant_id": {
        "Description": "Unique participant identifier"
    },
    "age": {
        "Description": "Age of the participant at time of testing",
        "Units": "years"
    },
    "sex": {
        "Description": "Biological sex of the participant",
        "Levels": {
            "F": "female",
            "M": "male"
        }
    },
    "hand": {
        "Description": "Handedness of the participant",
        "Levels": {
            "R": "right",
            "L": "left",
            "A": "ambidextrous"
        }
    }
}

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/sub-010002/ses-001/eeg/sub-010002_ses-001_task-resting_events.tsv'...

onset   duration        trial_type      value   sample
0.0     0.0004  New Segment/    2       0
0.0     0.0004  Comment/no USB Connection to actiCAP    1       0
3.9916  0.0004  Stimulus/S  1   3       9979
6.3752  0.0004  Stimulus/S  1   3       15938
6.3848  0.0004  Stimulus/S210   5       15962

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/dataset_description.json'...

{
    "Name": " ",
    "BIDSVersion": "1.6.0",
    "DatasetType": "raw",
    "Authors": [
        "[Unspecified]"
    ]
}

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/sub-010002/ses-001/eeg/sub-010002_ses-001_task-resting_eeg.json'...

{
    "TaskName": "resting",
    "Manufacturer": "BrainProducts",
    "PowerLineFrequency": 50,
    "SamplingFrequency": 2500.0,
    "SoftwareFilters": "n/a",
    "RecordingDuration": 1021.9996,
    "RecordingType": "continuous",
    "EEGReference": "n/a",
    "EEGGround": "n/a",
    "EEGPlacementScheme": "based on the extended 10/20 system",
    "EEGChannelCount": 61,
    "EOGChannelCount": 1,
    "ECGChannelCount": 0,
    "EMGChannelCount": 0,
    "MiscChannelCount": 0,
    "TriggerChannelCount": 0
}

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/sub-010002/ses-001/eeg/sub-010002_ses-001_task-resting_channels.tsv'...

name    type    units   low_cutoff      high_cutoff     description     sampling_frequency      status  status_description
Fp1     EEG     µV      0.015915494309189534    1000.0  ElectroEncephaloGram    2500.0  good    n/a
Fp2     EEG     µV      0.015915494309189534    1000.0  ElectroEncephaloGram    2500.0  good    n/a
F7      EEG     µV      0.015915494309189534    1000.0  ElectroEncephaloGram    2500.0  good    n/a
F3      EEG     µV      0.015915494309189534    1000.0  ElectroEncephaloGram    2500.0  good    n/a
Fz      EEG     µV      0.015915494309189534    1000.0  ElectroEncephaloGram    2500.0  good    n/a
Copying data files to sub-010002_ses-001_task-resting_eeg.vhdr

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/sub-010002/ses-001/sub-010002_ses-001_scans.tsv'...

filename        acq_time
eeg/sub-010002_ses-001_task-resting_eeg.vhdr    2013-11-11T13:47:40.346211Z
Wrote /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/sub-010002/ses-001/sub-010002_ses-001_scans.tsv entry with eeg/sub-010002_ses-001_task-resting_eeg.vhdr.
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010003/ses-001/resting/sub-010003.vhdr...
Setting channel info structure...

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/README'...

References
----------
Appelhoff, S., Sanderson, M., Brooks, T., Vliet, M., Quentin, R., Holdgraf, C., Chaumon, M., Mikulan, E., Tavabi, K., Höchenberger, R., Welke, D., Brunner, C., Rockhill, A., Larson, E., Gramfort, A. and Jas, M. (2019). MNE-BIDS: Organizing electrophysiological data into the BIDS format and facilitating their analysis. Journal of Open Source Software 4: (1896). https://doi.org/10.21105/joss.01896

Pernet, C. R., Appelhoff, S., Gorgolewski, K. J., Flandin, G., Phillips, C., Delorme, A., Oostenveld, R. (2019). EEG-BIDS, an extension to the brain imaging data structure for electroencephalography. Scientific Data, 6, 103. https://doi.org/10.1038/s41597-019-0104-8


Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/participants.tsv'...

participant_id  age     sex     hand
sub-010002      n/a     n/a     n/a
sub-010003      n/a     n/a     n/a

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/participants.json'...

{
    "participant_id": {
        "Description": "Unique participant identifier"
    },
    "age": {
        "Description": "Age of the participant at time of testing",
        "Units": "years"
    },
    "sex": {
        "Description": "Biological sex of the participant",
        "Levels": {
            "F": "female",
            "M": "male"
        }
    },
    "hand": {
        "Description": "Handedness of the participant",
        "Levels": {
            "R": "right",
            "L": "left",
            "A": "ambidextrous"
        }
    }
}

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/sub-010003/ses-001/eeg/sub-010003_ses-001_task-resting_events.tsv'...

onset   duration        trial_type      value   sample
0.0     0.0004  New Segment/    2       0
0.0     0.0004  Comment/no USB Connection to actiCAP    1       0
10.0988 0.0004  Stimulus/S  1   3       25247
13.0396 0.0004  Stimulus/S  1   3       32599
13.0488 0.0004  Stimulus/S210   5       32622

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/dataset_description.json'...

{
    "Name": " ",
    "BIDSVersion": "1.6.0",
    "DatasetType": "raw",
    "Authors": [
        "[Unspecified]"
    ]
}

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/sub-010003/ses-001/eeg/sub-010003_ses-001_task-resting_eeg.json'...

{
    "TaskName": "resting",
    "Manufacturer": "BrainProducts",
    "PowerLineFrequency": 50,
    "SamplingFrequency": 2500.0,
    "SoftwareFilters": "n/a",
    "RecordingDuration": 1007.9396,
    "RecordingType": "continuous",
    "EEGReference": "n/a",
    "EEGGround": "n/a",
    "EEGPlacementScheme": "based on the extended 10/20 system",
    "EEGChannelCount": 61,
    "EOGChannelCount": 1,
    "ECGChannelCount": 0,
    "EMGChannelCount": 0,
    "MiscChannelCount": 0,
    "TriggerChannelCount": 0
}

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/sub-010003/ses-001/eeg/sub-010003_ses-001_task-resting_channels.tsv'...

name    type    units   low_cutoff      high_cutoff     description     sampling_frequency      status  status_description
Fp1     EEG     µV      0.015915494309189534    1000.0  ElectroEncephaloGram    2500.0  good    n/a
Fp2     EEG     µV      0.015915494309189534    1000.0  ElectroEncephaloGram    2500.0  good    n/a
F7      EEG     µV      0.015915494309189534    1000.0  ElectroEncephaloGram    2500.0  good    n/a
F3      EEG     µV      0.015915494309189534    1000.0  ElectroEncephaloGram    2500.0  good    n/a
Fz      EEG     µV      0.015915494309189534    1000.0  ElectroEncephaloGram    2500.0  good    n/a
Copying data files to sub-010003_ses-001_task-resting_eeg.vhdr

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/sub-010003/ses-001/sub-010003_ses-001_scans.tsv'...

filename        acq_time
eeg/sub-010003_ses-001_task-resting_eeg.vhdr    2013-09-10T10:58:55.350974Z
Wrote /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/sub-010003/ses-001/sub-010003_ses-001_scans.tsv entry with eeg/sub-010003_ses-001_task-resting_eeg.vhdr.
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...
Extracting parameters from /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_input/sub-010004/ses-001/resting/sub-010004.vhdr...
Setting channel info structure...

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/README'...

References
----------
Appelhoff, S., Sanderson, M., Brooks, T., Vliet, M., Quentin, R., Holdgraf, C., Chaumon, M., Mikulan, E., Tavabi, K., Höchenberger, R., Welke, D., Brunner, C., Rockhill, A., Larson, E., Gramfort, A. and Jas, M. (2019). MNE-BIDS: Organizing electrophysiological data into the BIDS format and facilitating their analysis. Journal of Open Source Software 4: (1896). https://doi.org/10.21105/joss.01896

Pernet, C. R., Appelhoff, S., Gorgolewski, K. J., Flandin, G., Phillips, C., Delorme, A., Oostenveld, R. (2019). EEG-BIDS, an extension to the brain imaging data structure for electroencephalography. Scientific Data, 6, 103. https://doi.org/10.1038/s41597-019-0104-8


Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/participants.tsv'...

participant_id  age     sex     hand
sub-010002      n/a     n/a     n/a
sub-010003      n/a     n/a     n/a
sub-010004      n/a     n/a     n/a

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/participants.json'...

{
    "participant_id": {
        "Description": "Unique participant identifier"
    },
    "age": {
        "Description": "Age of the participant at time of testing",
        "Units": "years"
    },
    "sex": {
        "Description": "Biological sex of the participant",
        "Levels": {
            "F": "female",
            "M": "male"
        }
    },
    "hand": {
        "Description": "Handedness of the participant",
        "Levels": {
            "R": "right",
            "L": "left",
            "A": "ambidextrous"
        }
    }
}

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/sub-010004/ses-001/eeg/sub-010004_ses-001_task-resting_events.tsv'...

onset   duration        trial_type      value   sample
0.0     0.0004  New Segment/    2       0
0.0     0.0004  Comment/actiCAP Data On 1       0
7.1968  0.0004  Stimulus/S  1   3       17992
10.3628 0.0004  Stimulus/S  1   3       25907
10.372  0.0004  Stimulus/S210   5       25930

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/dataset_description.json'...

{
    "Name": " ",
    "BIDSVersion": "1.6.0",
    "DatasetType": "raw",
    "Authors": [
        "[Unspecified]"
    ]
}

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/sub-010004/ses-001/eeg/sub-010004_ses-001_task-resting_eeg.json'...

{
    "TaskName": "resting",
    "Manufacturer": "BrainProducts",
    "PowerLineFrequency": 50,
    "SamplingFrequency": 2500.0,
    "SoftwareFilters": "n/a",
    "RecordingDuration": 1022.0396,
    "RecordingType": "continuous",
    "EEGReference": "n/a",
    "EEGGround": "n/a",
    "EEGPlacementScheme": "based on the extended 10/20 system",
    "EEGChannelCount": 61,
    "EOGChannelCount": 1,
    "ECGChannelCount": 0,
    "EMGChannelCount": 0,
    "MiscChannelCount": 0,
    "TriggerChannelCount": 0
}

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/sub-010004/ses-001/eeg/sub-010004_ses-001_task-resting_channels.tsv'...

name    type    units   low_cutoff      high_cutoff     description     sampling_frequency      status  status_description
Fp1     EEG     µV      0.015915494309189534    1000.0  ElectroEncephaloGram    2500.0  good    n/a
Fp2     EEG     µV      0.015915494309189534    1000.0  ElectroEncephaloGram    2500.0  good    n/a
F7      EEG     µV      0.015915494309189534    1000.0  ElectroEncephaloGram    2500.0  good    n/a
F3      EEG     µV      0.015915494309189534    1000.0  ElectroEncephaloGram    2500.0  good    n/a
Fz      EEG     µV      0.015915494309189534    1000.0  ElectroEncephaloGram    2500.0  good    n/a
Copying data files to sub-010004_ses-001_task-resting_eeg.vhdr

Writing '/home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/sub-010004/ses-001/sub-010004_ses-001_scans.tsv'...

filename        acq_time
eeg/sub-010004_ses-001_task-resting_eeg.vhdr    2013-11-15T13:54:17.255858Z
Wrote /home/docs/checkouts/readthedocs.org/user_builds/sovabids/checkouts/stable/_data/lemon_bidscoin_output/sub-010004/ses-001/sub-010004_ses-001_scans.tsv entry with eeg/sub-010004_ses-001_task-resting_eeg.vhdr.

Checking the conversion

For clarity purposes we will check the output directory we got from sovabids.

print_dir_tree(bids_path)

print('BIDSCOIN CONVERSION FINISHED!')

Out:

|lemon_bidscoin_output/
|--- README
|--- dataset_description.json
|--- participants.json
|--- participants.tsv
|--- code/
|------ bidscoin/
|--------- bidscoiner.errors
|--------- bidscoiner.log
|--------- bidsmap.yaml
|--------- bidsmapper.errors
|--------- bidsmapper.log
|--------- rules.yml
|--------- template.yml
|--- sub-010002/
|------ ses-001/
|--------- sub-010002_ses-001_scans.tsv
|--------- eeg/
|------------ sub-010002_ses-001_task-resting_channels.tsv
|------------ sub-010002_ses-001_task-resting_eeg.eeg
|------------ sub-010002_ses-001_task-resting_eeg.json
|------------ sub-010002_ses-001_task-resting_eeg.vhdr
|------------ sub-010002_ses-001_task-resting_eeg.vmrk
|------------ sub-010002_ses-001_task-resting_events.tsv
|--- sub-010003/
|------ ses-001/
|--------- sub-010003_ses-001_scans.tsv
|--------- eeg/
|------------ sub-010003_ses-001_task-resting_channels.tsv
|------------ sub-010003_ses-001_task-resting_eeg.eeg
|------------ sub-010003_ses-001_task-resting_eeg.json
|------------ sub-010003_ses-001_task-resting_eeg.vhdr
|------------ sub-010003_ses-001_task-resting_eeg.vmrk
|------------ sub-010003_ses-001_task-resting_events.tsv
|--- sub-010004/
|------ ses-001/
|--------- sub-010004_ses-001_scans.tsv
|--------- eeg/
|------------ sub-010004_ses-001_task-resting_channels.tsv
|------------ sub-010004_ses-001_task-resting_eeg.eeg
|------------ sub-010004_ses-001_task-resting_eeg.json
|------------ sub-010004_ses-001_task-resting_eeg.vhdr
|------------ sub-010004_ses-001_task-resting_eeg.vmrk
|------------ sub-010004_ses-001_task-resting_events.tsv
BIDSCOIN CONVERSION FINISHED!

Total running time of the script: ( 0 minutes 35.794 seconds)

Gallery generated by Sphinx-Gallery