-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnormalize_luna-wpc8620.R
executable file
·33 lines (31 loc) · 1.24 KB
/
normalize_luna-wpc8620.R
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
#!/usr/bin/env Rscript
# normalize luna task logs for easy merge
# columns wpc, sesid, task, run, acqtime
# 20241223WF - init
suppressPackageStartupMessages({library(dplyr); library(lubridate);library(stringr);})
habit <-
read.table('txt/luna/habit_task_display.tsv',
col.names=c("fname","nrt", "acqtime"),sep="\t") |>
transmute(
sess_id=str_extract(fname, '\\d{5}_\\d{8}'),
# match MR dicom header for sequence name
task="HabitTask",
run=1,
acqtime=as_datetime(acqtime/1000))
anti <-
read.table('txt/luna/anti_task_display.tsv',
col.names=c("sesid","run","acqtime"),sep="\t") |>
transmute(
sess_id=sesid,
task_run=as.numeric(gsub('-.*','',run)),
# match MR dicom header for sequence name
task=case_when(task_run==1~'RewardedAntisaccade',
task_run==2~'RewardedAntisaccade_repeat',
.default='RewardedAntisaccade_ERROR'),
run=1,
acqtime=as_datetime(acqtime)) |>
select(-task_run)
wpc8620 <- rbind(anti,habit) |>
mutate(wpc="WPC-8620") |> relocate(wpc) |>
arrange(acqtime)
write.table(wpc8620, 'txt/luna-wpc8620_display-norm.tsv', sep="\t", quote=F, row.names=F)