以下是在Linux系统上使用Bash脚本批量提取FreeSurfer处理过的MRI数据欧拉数的方法。
在终端中切换到存放MRI数据的文件夹(例如 /path/to/subjects_dir)。
输入以下命令:
for subject in $(ls -d */); do
if [ -f "$subject/surf/lh.white" ]; then
left_euler=$(mris_euler_number "$subject/surf/lh.white")
else
left_euler="NA"
fi
if [ -f "$subject/surf/rh.white" ]; then
right_euler=$(mris_euler_number "$subject/surf/rh.white")
else
right_euler="NA"
fi
echo "$(basename $subject)","$left_euler","$right_euler"
done > euler_values.csv
其中包含了以下步骤:
1.对每个子目录(也就是每个被FreeSurfer处理过的MRI数据)进行循环。
2.检查坐侧和右侧表面文件是否存在,如果存在,使用 mris_euler_number 命令计算该表面的欧拉数;否则标记为 “NA”。
3.输出格式化字符串,将结果保存到名为 euler_values.csv 的CSV文件中。
这段代码将遍历所有子目录,并基于左、右表面的欧拉值生成一个CSV形式的欧拉数表。每行记录包含三列信息,分别为:数据库 ID、左表面欧拉数、右表面欧拉数。输出结果文件 euler_values.csv 会保存在存放MRI数据的目录中。