In [1]:
%pylab inline
import pandas as pd
import numpy as np
Populating the interactive namespace from numpy and matplotlib
In [2]:
subj = "pdxn-005"
inFile = subj + "/" + subj + ".csv"
df = pd.read_csv(inFile, header=5)
In [3]:
df
Out[3]:
SID
PHASE
COLOR
CONDITION
WORD
FIXATIONON
PRECUEON
WORDON
FIXATIONOFF
PRECUEOFF
WORDOFF
RESPONSE
EXPECTED
ACCURACY
RT
0
5
STUDY0
rbp
NaN
NaN
0.001934
-1.000000
-1.000000
2.201402
-1.000000
-1.000000
NONE
NONE
-1
-1.000
1
5
STUDY0
rbp
NaN
NaN
2.201909
-1.000000
-1.000000
4.401405
-1.000000
-1.000000
NONE
NONE
-1
-1.000
2
5
STUDY0
rbp
NaN
NaN
4.401861
-1.000000
-1.000000
6.601407
-1.000000
-1.000000
NONE
NONE
-1
-1.000
3
5
STUDY0
rbp
NaN
NaN
6.601915
-1.000000
-1.000000
8.801410
-1.000000
-1.000000
NONE
NONE
-1
-1.000
4
5
STUDY0
rbp
NaN
NaN
8.801903
-1.000000
-1.000000
11.001413
-1.000000
-1.000000
NONE
NONE
-1
-1.000
5
5
STUDY0
rbp
Y
porch
11.030224
11.280224
12.030224
11.280224
12.030224
14.530224
NONE
NONE
-1
-1.000
6
5
STUDY0
rbp
Y
victory
14.530834
14.780835
15.530834
14.780834
15.530834
18.030834
NONE
NONE
-1
-1.000
7
5
STUDY0
rbp
P
kingdom
18.031396
18.281397
19.031396
18.281396
19.031396
21.531396
NONE
NONE
-1
-1.000
8
5
STUDY0
rbp
Y
evening
21.531977
21.781977
22.531978
21.781977
22.531977
25.031977
NONE
NONE
-1
-1.000
9
5
STUDY0
rbp
NaN
NaN
25.032496
-1.000000
-1.000000
27.232021
-1.000000
-1.000000
NONE
NONE
-1
-1.000
10
5
STUDY0
rbp
NaN
NaN
27.232502
-1.000000
-1.000000
29.432024
-1.000000
-1.000000
NONE
NONE
-1
-1.000
11
5
STUDY0
rbp
NaN
NaN
29.432492
-1.000000
-1.000000
31.632028
-1.000000
-1.000000
NONE
NONE
-1
-1.000
12
5
STUDY0
rbp
Y
pebble
31.658683
31.908683
32.658683
31.908683
32.658683
35.158683
NONE
NONE
-1
-1.000
13
5
STUDY0
rbp
NaN
NaN
35.159158
-1.000000
-1.000000
37.358703
-1.000000
-1.000000
NONE
NONE
-1
-1.000
14
5
STUDY0
rbp
P
quarrel
37.388554
37.638554
38.388554
37.638554
38.388554
40.888554
NONE
NONE
-1
-1.000
15
5
STUDY0
rbp
NaN
NaN
40.889033
-1.000000
-1.000000
43.088587
-1.000000
-1.000000
NONE
NONE
-1
-1.000
16
5
STUDY0
rbp
S
education
43.113415
43.363415
44.113416
43.363415
44.113415
46.613415
NONE
NONE
-1
-1.000
17
5
STUDY0
rbp
P
travel
46.614030
46.864030
47.614031
46.864030
47.614030
50.114030
NONE
NONE
-1
-1.000
18
5
STUDY0
rbp
P
summer
50.114649
50.364650
51.114650
50.364649
51.114649
53.614649
NONE
NONE
-1
-1.000
19
5
STUDY0
rbp
NaN
NaN
53.615131
-1.000000
-1.000000
55.814674
-1.000000
-1.000000
NONE
NONE
-1
-1.000
20
5
STUDY0
rbp
P
author
55.846529
56.096529
56.846529
56.096529
56.846529
59.346529
NONE
NONE
-1
-1.000
21
5
STUDY0
rbp
NaN
NaN
59.347033
-1.000000
-1.000000
61.546562
-1.000000
-1.000000
NONE
NONE
-1
-1.000
22
5
STUDY0
rbp
S
pocket
61.577282
61.827282
62.577282
61.827282
62.577282
65.077282
NONE
NONE
-1
-1.000
23
5
STUDY0
rbp
S
shoulder
65.077850
65.327850
66.077850
65.327850
66.077850
68.577850
NONE
NONE
-1
-1.000
24
5
STUDY0
rbp
NaN
NaN
68.578336
-1.000000
-1.000000
70.777870
-1.000000
-1.000000
NONE
NONE
-1
-1.000
25
5
STUDY0
rbp
Y
branch
70.807261
71.057261
71.807262
71.057261
71.807261
74.307261
NONE
NONE
-1
-1.000
26
5
STUDY0
rbp
NaN
NaN
74.307743
-1.000000
-1.000000
76.507283
-1.000000
-1.000000
NONE
NONE
-1
-1.000
27
5
STUDY0
rbp
S
painting
76.533163
76.783163
77.533163
76.783163
77.533163
80.033163
NONE
NONE
-1
-1.000
28
5
STUDY0
rbp
P
minute
80.033727
80.283727
81.033728
80.283727
81.033727
83.533727
NONE
NONE
-1
-1.000
29
5
STUDY0
rbp
S
castle
83.534304
83.784304
84.534304
83.784304
84.534304
87.034304
NONE
NONE
-1
-1.000
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
340
5
TEST1
rbp
Y
speech
239.096316
-1.000000
240.110681
240.096316
-1.000000
243.096316
MISS
1
0
-1.000
341
5
TEST1
rbp
FOIL
message
243.096992
-1.000000
244.110836
244.096992
-1.000000
247.096992
MISS
0
0
-1.000
342
5
TEST1
rbp
P
address
247.097663
-1.000000
248.112779
248.097663
-1.000000
251.097663
MISS
1
0
-1.000
343
5
TEST1
rbp
NaN
NaN
251.098483
-1.000000
-1.000000
253.297887
-1.000000
-1.000000
NONE
NONE
-1
-1.000
344
5
TEST1
rbp
NaN
NaN
253.324878
-1.000000
-1.000000
255.497889
-1.000000
-1.000000
NONE
NONE
-1
-1.000
345
5
TEST1
rbp
Y
daughter
255.498354
-1.000000
256.510659
256.498354
-1.000000
259.498354
MISS
1
0
-1.000
346
5
TEST1
rbp
NaN
NaN
259.499112
-1.000000
-1.000000
261.698559
-1.000000
-1.000000
NONE
NONE
-1
-1.000
347
5
TEST1
rbp
FOIL
neighbor
261.699068
-1.000000
262.711154
262.699068
-1.000000
265.699068
y
0
0
0.740
348
5
TEST1
rbp
Y
guardian
265.728545
-1.000000
266.740079
266.728545
-1.000000
269.728545
MISS
1
0
-1.000
349
5
TEST1
rbp
S
century
269.729230
-1.000000
270.742730
270.729230
-1.000000
273.729230
MISS
1
0
-1.000
350
5
TEST1
rbp
S
castle
273.729889
-1.000000
274.740982
274.729889
-1.000000
277.729889
MISS
1
0
-1.000
351
5
TEST1
rbp
NaN
NaN
277.730655
-1.000000
-1.000000
279.930099
-1.000000
-1.000000
NONE
NONE
-1
-1.000
352
5
TEST1
rbp
S
island
279.930578
-1.000000
280.943262
280.930578
-1.000000
283.930578
y
1
1
0.988
353
5
TEST1
rbp
Y
market
283.959274
-1.000000
284.973028
284.959274
-1.000000
287.959274
MISS
1
0
-1.000
354
5
TEST1
rbp
NaN
NaN
287.960058
-1.000000
-1.000000
290.159483
-1.000000
-1.000000
NONE
NONE
-1
-1.000
355
5
TEST1
rbp
NaN
NaN
290.190324
-1.000000
-1.000000
292.359487
-1.000000
-1.000000
NONE
NONE
-1
-1.000
356
5
TEST1
rbp
P
theatre
292.359944
-1.000000
293.371065
293.359944
-1.000000
296.359944
MISS
1
0
-1.000
357
5
TEST1
rbp
Y
arrow
296.360612
-1.000000
297.378376
297.360612
-1.000000
300.360612
MISS
1
0
-1.000
358
5
TEST1
rbp
Y
victory
300.361298
-1.000000
301.374682
301.361298
-1.000000
304.361298
MISS
1
0
-1.000
359
5
TEST1
rbp
NaN
NaN
304.362056
-1.000000
-1.000000
306.561505
-1.000000
-1.000000
NONE
NONE
-1
-1.000
360
5
TEST1
rbp
P
thread
306.561968
-1.000000
307.580282
307.561968
-1.000000
310.561968
MISS
1
0
-1.000
361
5
TEST1
rbp
NaN
NaN
310.562764
-1.000000
-1.000000
312.762187
-1.000000
-1.000000
NONE
NONE
-1
-1.000
362
5
TEST1
rbp
Y
evening
312.762650
-1.000000
313.777762
313.762650
-1.000000
316.762650
MISS
1
0
-1.000
363
5
TEST1
rbp
FOIL
engine
316.763839
-1.000000
317.780355
317.763839
-1.000000
320.763839
MISS
0
0
-1.000
364
5
TEST1
rbp
S
valley
320.764489
-1.000000
321.777199
321.764489
-1.000000
324.764489
MISS
1
0
-1.000
365
5
TEST1
rbp
P
ticket
324.765150
-1.000000
325.778287
325.765150
-1.000000
328.765150
MISS
1
0
-1.000
366
5
TEST1
rbp
NaN
NaN
328.765912
-1.000000
-1.000000
330.965357
-1.000000
-1.000000
NONE
NONE
-1
-1.000
367
5
TEST1
rbp
NaN
NaN
330.994489
-1.000000
-1.000000
333.165360
-1.000000
-1.000000
NONE
NONE
-1
-1.000
368
5
TEST1
rbp
S
merchant
333.165830
-1.000000
334.180635
334.165830
-1.000000
337.165830
y
1
1
0.895
369
5
TEST1
rbp
NaN
NaN
337.191998
-1.000000
-1.000000
339.391444
-1.000000
-1.000000
NONE
NONE
-1
-1.000
370 rows × 15 columns
In [4]:
df['wordDuration'] = df['WORDOFF'] - df['WORDON']
In [5]:
validTrials = df[pd.notnull(df['WORD'])]
validTrials[0:5]
Out[5]:
SID
PHASE
COLOR
CONDITION
WORD
FIXATIONON
PRECUEON
WORDON
FIXATIONOFF
PRECUEOFF
WORDOFF
RESPONSE
EXPECTED
ACCURACY
RT
wordDuration
5
5
STUDY0
rbp
Y
porch
11.030224
11.280224
12.030224
11.280224
12.030224
14.530224
NONE
NONE
-1
-1
2.500000
6
5
STUDY0
rbp
Y
victory
14.530834
14.780835
15.530834
14.780834
15.530834
18.030834
NONE
NONE
-1
-1
2.500000
7
5
STUDY0
rbp
P
kingdom
18.031396
18.281397
19.031396
18.281396
19.031396
21.531396
NONE
NONE
-1
-1
2.500000
8
5
STUDY0
rbp
Y
evening
21.531977
21.781977
22.531978
21.781977
22.531977
25.031977
NONE
NONE
-1
-1
2.499999
12
5
STUDY0
rbp
Y
pebble
31.658683
31.908683
32.658683
31.908683
32.658683
35.158683
NONE
NONE
-1
-1
2.500000
In [6]:
fMRIruns = {'STUDY0', 'STUDY1', 'TEST0', 'TEST1'}
Conditions = {'P':'Produced', 'S':'SilentView', 'Y':'MotorControl', 'FOIL':'Foil'}
for run in fMRIruns:
for key in Conditions:
if (run == 'STUDY0' or run == 'STUDY1') and key == 'FOIL':
pass
else:
dfTmp = df[df['CONDITION'].isin([key]) & df['PHASE'].isin([run])][['WORDON','wordDuration']]
dfTmp['Col3'] = 1
dfTmp.to_csv(inFile.split('.')[0] + '_fMRIlog_' + run + '_' + Conditions[key] + '.txt', sep='\t', header=False, index=False)
In [67]:
studyRuns = {'STUDY0', 'STUDY1'}
studyData = df[df['PHASE'].isin(studyRuns) & pd.notnull(df['WORD'])][:]
studyData['RESPONSE'] = studyData['WORD'] # hack so we can later use WORD as a key for filling in responses
testRuns = {'TEST0', 'TEST1'}
testData = df[df['PHASE'].isin(testRuns) & pd.notnull(df['WORD'])][['WORD','CONDITION','RESPONSE']]
In [66]:
# Make dict mapping words to their test phase responses
testResps = pd.Series(testData.RESPONSE.values,index=testData.WORD).to_dict()
# now replace values in Study phase w responses
studyData.replace({'RESPONSE':testResps}, inplace=True)
studyData
Out[66]:
SID
PHASE
COLOR
CONDITION
WORD
FIXATIONON
PRECUEON
WORDON
FIXATIONOFF
PRECUEOFF
WORDOFF
RESPONSE
EXPECTED
ACCURACY
RT
wordDuration
5
5
STUDY0
rbp
Y
porch
11.030224
11.280224
12.030224
11.280224
12.030224
14.530224
MISS
NONE
-1
-1
2.500000
6
5
STUDY0
rbp
Y
victory
14.530834
14.780835
15.530834
14.780834
15.530834
18.030834
MISS
NONE
-1
-1
2.500000
7
5
STUDY0
rbp
P
kingdom
18.031396
18.281397
19.031396
18.281396
19.031396
21.531396
MISS
NONE
-1
-1
2.500000
8
5
STUDY0
rbp
Y
evening
21.531977
21.781977
22.531978
21.781977
22.531977
25.031977
MISS
NONE
-1
-1
2.499999
12
5
STUDY0
rbp
Y
pebble
31.658683
31.908683
32.658683
31.908683
32.658683
35.158683
MISS
NONE
-1
-1
2.500000
14
5
STUDY0
rbp
P
quarrel
37.388554
37.638554
38.388554
37.638554
38.388554
40.888554
MISS
NONE
-1
-1
2.500000
16
5
STUDY0
rbp
S
education
43.113415
43.363415
44.113416
43.363415
44.113415
46.613415
MISS
NONE
-1
-1
2.499999
17
5
STUDY0
rbp
P
travel
46.614030
46.864030
47.614031
46.864030
47.614030
50.114030
MISS
NONE
-1
-1
2.499999
18
5
STUDY0
rbp
P
summer
50.114649
50.364650
51.114650
50.364649
51.114649
53.614649
MISS
NONE
-1
-1
2.499999
20
5
STUDY0
rbp
P
author
55.846529
56.096529
56.846529
56.096529
56.846529
59.346529
y
NONE
-1
-1
2.500000
22
5
STUDY0
rbp
S
pocket
61.577282
61.827282
62.577282
61.827282
62.577282
65.077282
MISS
NONE
-1
-1
2.500000
23
5
STUDY0
rbp
S
shoulder
65.077850
65.327850
66.077850
65.327850
66.077850
68.577850
y
NONE
-1
-1
2.500000
25
5
STUDY0
rbp
Y
branch
70.807261
71.057261
71.807262
71.057261
71.807261
74.307261
MISS
NONE
-1
-1
2.499999
27
5
STUDY0
rbp
S
painting
76.533163
76.783163
77.533163
76.783163
77.533163
80.033163
MISS
NONE
-1
-1
2.500000
28
5
STUDY0
rbp
P
minute
80.033727
80.283727
81.033728
80.283727
81.033727
83.533727
y
NONE
-1
-1
2.499999
29
5
STUDY0
rbp
S
castle
83.534304
83.784304
84.534304
83.784304
84.534304
87.034304
MISS
NONE
-1
-1
2.500000
30
5
STUDY0
rbp
Y
uniform
87.035073
87.285073
88.035073
87.285073
88.035073
90.535073
MISS
NONE
-1
-1
2.500000
34
5
STUDY0
rbp
Y
capital
97.161033
97.411033
98.161033
97.411033
98.161033
100.661033
MISS
NONE
-1
-1
2.500000
35
5
STUDY0
rbp
Y
building
100.661615
100.911615
101.661615
100.911615
101.661615
104.161615
MISS
NONE
-1
-1
2.500000
36
5
STUDY0
rbp
P
wheat
104.162254
104.412254
105.162254
104.412254
105.162254
107.662254
MISS
NONE
-1
-1
2.500000
37
5
STUDY0
rbp
Y
foundation
107.662832
107.912832
108.662832
107.912832
108.662832
111.162832
MISS
NONE
-1
-1
2.500000
38
5
STUDY0
rbp
S
amount
111.163418
111.413418
112.163418
111.413418
112.163418
114.663418
MISS
NONE
-1
-1
2.500000
40
5
STUDY0
rbp
Y
campaign
116.897784
117.147784
117.897784
117.147784
117.897784
120.397784
MISS
NONE
-1
-1
2.500000
41
5
STUDY0
rbp
S
century
120.398374
120.648376
121.398374
120.648374
121.398374
123.898374
MISS
NONE
-1
-1
2.500000
44
5
STUDY0
rbp
P
theatre
128.331606
128.581607
129.331607
128.581606
129.331606
131.831606
MISS
NONE
-1
-1
2.499999
46
5
STUDY0
rbp
P
quarter
134.064747
134.314747
135.064747
134.314747
135.064747
137.564747
y
NONE
-1
-1
2.500000
48
5
STUDY0
rbp
P
language
139.796961
140.046961
140.796961
140.046961
140.796961
143.296961
MISS
NONE
-1
-1
2.500000
52
5
STUDY0
rbp
S
furniture
149.926325
150.176325
150.926325
150.176325
150.926325
153.426325
y
NONE
-1
-1
2.500000
53
5
STUDY0
rbp
S
knock
153.426918
153.676918
154.426918
153.676918
154.426918
156.926918
MISS
NONE
-1
-1
2.500000
55
5
STUDY0
rbp
S
merchant
159.156566
159.406566
160.156567
159.406566
160.156566
162.656566
y
NONE
-1
-1
2.499999
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
...
108
5
STUDY1
rbp
Y
guardian
81.286031
81.536031
82.286031
81.536031
82.286031
84.786031
MISS
NONE
-1
-1
2.500000
112
5
STUDY1
rbp
S
meadow
91.417174
91.667174
92.417174
91.667174
92.417174
94.917174
y
NONE
-1
-1
2.500000
113
5
STUDY1
rbp
S
valley
94.917763
95.167764
95.917763
95.167763
95.917763
98.417763
MISS
NONE
-1
-1
2.500000
114
5
STUDY1
rbp
P
department
98.418325
98.668325
99.418325
98.668325
99.418325
101.918325
MISS
NONE
-1
-1
2.500000
116
5
STUDY1
rbp
S
resort
104.147729
104.397729
105.147729
104.397729
105.147729
107.647729
MISS
NONE
-1
-1
2.500000
117
5
STUDY1
rbp
P
garden
107.648624
107.898624
108.648624
107.898624
108.648624
111.148624
y
NONE
-1
-1
2.500000
119
5
STUDY1
rbp
P
nephew
113.375682
113.625683
114.375682
113.625682
114.375682
116.875682
MISS
NONE
-1
-1
2.500000
120
5
STUDY1
rbp
P
invitation
116.876275
117.126275
117.876275
117.126275
117.876275
120.376275
y
NONE
-1
-1
2.500000
121
5
STUDY1
rbp
S
afternoon
120.376857
120.626857
121.376857
120.626857
121.376857
123.876857
MISS
NONE
-1
-1
2.500000
125
5
STUDY1
rbp
Y
steam
130.507450
130.757450
131.507450
130.757450
131.507450
134.007450
y
NONE
-1
-1
2.500000
126
5
STUDY1
rbp
Y
envelope
134.008340
134.258340
135.008340
134.258340
135.008340
137.508340
MISS
NONE
-1
-1
2.500000
128
5
STUDY1
rbp
P
village
139.737010
139.987010
140.737010
139.987010
140.737010
143.237010
MISS
NONE
-1
-1
2.500000
129
5
STUDY1
rbp
S
package
143.237599
143.487599
144.237599
143.487599
144.237599
146.737599
MISS
NONE
-1
-1
2.500000
131
5
STUDY1
rbp
S
traffic
148.966903
149.216903
149.966903
149.216903
149.966903
152.466903
MISS
NONE
-1
-1
2.500000
132
5
STUDY1
rbp
Y
school
152.467496
152.717497
153.467496
152.717496
153.467496
155.967496
y
NONE
-1
-1
2.500000
133
5
STUDY1
rbp
P
justice
155.968171
156.218171
156.968171
156.218171
156.968171
159.468171
MISS
NONE
-1
-1
2.500000
135
5
STUDY1
rbp
Y
stream
161.698193
161.948194
162.698194
161.948193
162.698193
165.198193
y
NONE
-1
-1
2.499999
136
5
STUDY1
rbp
S
kettle
165.198750
165.448750
166.198750
165.448750
166.198750
168.698750
y
NONE
-1
-1
2.500000
138
5
STUDY1
rbp
Y
peace
170.929900
171.179900
171.929901
171.179900
171.929900
174.429900
y
NONE
-1
-1
2.499999
139
5
STUDY1
rbp
S
plate
174.430461
174.680462
175.430461
174.680461
175.430461
177.930461
y
NONE
-1
-1
2.500000
141
5
STUDY1
rbp
S
account
180.161215
180.411215
181.161216
180.411215
181.161215
183.661215
MISS
NONE
-1
-1
2.499999
143
5
STUDY1
rbp
S
station
185.893176
186.143176
186.893176
186.143176
186.893176
189.393176
MISS
NONE
-1
-1
2.500000
146
5
STUDY1
rbp
Y
speech
193.823214
194.073214
194.823214
194.073214
194.823214
197.323214
MISS
NONE
-1
-1
2.500000
148
5
STUDY1
rbp
Y
beauty
199.561345
199.811345
200.561345
199.811345
200.561345
203.061345
MISS
NONE
-1
-1
2.500000
151
5
STUDY1
rbp
P
avenue
207.490480
207.740480
208.490481
207.740480
208.490480
210.990480
y
NONE
-1
-1
2.499999
152
5
STUDY1
rbp
Y
reward
210.991048
211.241048
211.991048
211.241048
211.991048
214.491048
MISS
NONE
-1
-1
2.500000
153
5
STUDY1
rbp
P
address
214.491620
214.741620
215.491620
214.741620
215.491620
217.991620
MISS
NONE
-1
-1
2.500000
155
5
STUDY1
rbp
P
battery
220.220875
220.470875
221.220875
220.470875
221.220875
223.720875
b
NONE
-1
-1
2.500000
156
5
STUDY1
rbp
P
journey
223.721465
223.971465
224.721466
223.971465
224.721465
227.221465
y
NONE
-1
-1
2.499999
159
5
STUDY1
rbp
Y
daughter
231.656546
231.906546
232.656546
231.906546
232.656546
235.156546
MISS
NONE
-1
-1
2.500000
90 rows × 16 columns
In [ ]:
for run in fMRIruns:
for key in Conditions:
if (run == 'STUDY0' or run == 'STUDY1') and key == 'FOIL':
pass
else:
dfTmp = df[df['CONDITION'].isin([key]) & df['PHASE'].isin([run])][['WORDON','wordDuration']]
dfTmp['Col3'] = 1
dfTmp.to_csv(inFile.split('.')[0] + '_fMRIlog_' + run + '_' + Conditions[key] + '.txt', sep='\t', header=False, index=False)
Content source: espressofiend/NCIL-SOC-2015
Similar notebooks: