File: write_paradigm_file.py

package info (click to toggle)
nipy 0.6.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 7,352 kB
  • sloc: python: 39,115; ansic: 30,931; makefile: 210; sh: 93
file content (54 lines) | stat: -rwxr-xr-x 2,283 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env python3
# emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*-
# vi: set ft=python sts=4 ts=4 sw=4 et:
"""
Examples of a paradigm .csv file generation: the neurospin/localizer paradigm.

See Pinel et al., BMC neuroscience 2007 for reference
"""
import csv
import sys

import numpy as np

# onset times in milliseconds
time = np.array([
    0, 2400, 5700, 8700, 11400, 15000, 18000, 20700, 23700, 26700, 29700, 33000,
    35400, 39000, 41700, 44700, 48000, 50700, 53700, 56400, 59700, 62400, 66000,
    69000, 71400, 75000, 78000, 80400, 83400, 87000, 89700, 93000, 96000, 99000,
    102000, 105000, 108000, 110400, 113700, 116700, 119400, 122700, 125400,
    129000, 131400, 135000, 137700, 140400, 143400, 146700, 149400, 153000,
    156000, 159000, 162000, 164400, 167700, 170400, 173700, 176700, 179700,
    182700, 186000, 188400, 191700, 195000, 198000, 201000, 203700, 207000,
    210000, 212700, 215700, 218700, 221400, 224700, 227700, 230700, 234000,
    236700, 240000, 243000, 246000, 248400, 251700, 254700, 257400, 260400,
    264000, 266700, 269700, 272700, 275400, 278400, 281700, 284400, 288000,
    291000, 293400, 296700]).astype('f')/1000

# corresponding onset types
# Because it's cutpasted from Matlab(tm), i subtract 1 at the end ;-)

# onset types
trial_type = np.array([
    8, 8, 11, 1, 3, 10, 5, 10, 4, 6, 10, 2, 7, 9, 9, 7, 7, 11, 11, 9, 1, 4, 11,
    5, 6, 9, 11, 11, 7, 3, 10, 11, 2, 11, 11, 11, 7, 11, 11, 6, 10, 2, 8, 11, 9,
    7, 7, 2, 3, 10, 1, 8, 2, 9, 3, 8, 9, 4, 7, 1, 11, 11, 11, 1, 7, 9, 8, 8, 2,
    2, 2, 6, 6, 1, 8, 1, 5, 3, 8, 10, 11, 11, 9, 1, 7, 4, 4, 8, 2, 1, 1, 11, 5,
    2, 11, 10, 9, 5, 10, 10]) - 1

condition_ids = ['damier_H', 'damier_V', 'clicDaudio', 'clicGaudio',
                 'clicDvideo', 'clicGvideo', 'calculaudio', 'calculvideo',
                 'phrasevideo', 'phraseaudio']

time = time[trial_type < 10]
cid = np.array([condition_ids[i] for i in trial_type[trial_type < 10]])
sess = np.zeros(np.size(time)).astype('int8')
pdata = np.vstack((sess, cid, time)).T
csvfile = 'localizer_paradigm.csv'
fid = open(csvfile, "w", newline = '')
writer = csv.writer(fid, delimiter=' ')
for row in pdata:
    writer.writerow(row)

fid.close()
print(f"Created the paradigm file in {csvfile} ")