首页 > 其他分享 >window环境下关于fMRI的nii文件的预处理的批量代码

window环境下关于fMRI的nii文件的预处理的批量代码

时间:2024-08-26 22:53:43浏览次数:12  
标签:fMRI nii target %% echo window set dir

配套fMRI预处理使用。之前预处理忘记删前十秒的文件(为什么要删掉?因为前十秒的文件不稳定),于是59个文件夹不仅要保留删除前十秒还没预处理的文件,还要在每个文件夹里删掉大概一共700个左右的各个预处理步骤遗留下的文件。后面问了chatGPT,写了window脚本挺好用的,省了不少事,这里记录一下,分享一下。

 文件地址:https://github.com/zhoushusheng/fMRI_preprocessing

操作步骤:

  1. 将脚本复制到记事本中,并保存为 .bat 文件(如 delete_first_ten_files_by_pattern.bat)。
  2. 双击 .bat 文件运行,脚本将将执行相应的功能。

 

delete_non_fMRI_nii.bat

@echo off
setlocal enabledelayedexpansion

for /l %%i in (1,1,35) do (
    if %%i lss 10 (
        set "folder=sbj0%%i"
    ) else (
        set "folder=sbj%%i"
    )

    set "target_dir=B:\fMRI\preprocessing_exclude_10s\CN\!folder!\fMRI"
    
    if exist "!target_dir!" (
        cd /d "!target_dir!"
        
        if exist *.nii (
            echo Processing folder: !target_dir!
            for %%f in (*.nii) do (
                set "filename=%%~nf"
                echo Checking file: %%f

                REM Check if filename starts with "s" followed by exactly 3 digits and an underscore
                if "!filename:~0,1!"=="s" (
                    set "next_three=!filename:~1,3!"
                    set "underscore=!filename:~4,1!"

                    if "!underscore!"=="_" (
                        echo Keeping file: %%f
                    ) else (
                        echo Deleting file: %%f
                        del "%%f"
                    )
                ) else (
                    echo Deleting file: %%f
                    del "%%f"
                )
            )
        ) else (
            echo No .nii files found in !target_dir!
        )
    ) else (
        echo Directory "!target_dir!" does not exist!
    )
)

endlocal

delete_non_MRI_nii.bat 除了fMRI的,MRI里的也要,要不然fMRI预处理读取结构体的时候会报错,因为之前coregister的时候生成了多个..nii在MRI里头。

@echo off
setlocal enabledelayedexpansion

for /l %%i in (1,1,35) do (
    if %%i lss 10 (
        set "folder=sbj0%%i"
    ) else (
        set "folder=sbj%%i"
    )

    set "target_dir=B:\fMRI\preprocessing_exclude_10s\CN\\!folder!\MRI"
    
    if exist "!target_dir!" (
        cd /d "!target_dir!"
        
        if exist *.nii (
            echo Deleting files in !target_dir!
            for %%f in (*.nii *.mat) do (
                set "filename=%%~nf"
                if /i "!filename:~0,1!" neq "s" (
                    echo Deleting file: %%f
                    del "%%f"
                )
            )
        ) else (
            echo No .nii files found in !target_dir!
        )
    ) else (
        echo Directory "!target_dir!" does not exist!
    )
)

endlocal

删除前10s的 delete_first_ten_nii_files_per_folder.bat

@echo off
setlocal enabledelayedexpansion

REM 遍历从 sbj01 到 sbj24 的文件夹
for /l %%i in (1,1,24) do (
    if %%i lss 10 (
        set "folder=sbj0%%i"
    ) else (
        set "folder=sbj%%i"
    )

    REM 设置目标目录
    set "target_dir=B:\fMRI\preprocessing_exclude_10s\AD\!folder!\fMRI"
    
    REM 检查目录是否存在
    if exist "!target_dir!" (
        echo Processing folder: !target_dir!
        cd /d "!target_dir!"
        
        REM 初始化计数器
        set /a count=0
        
        REM 查找符合模式的文件,按序号排序后删除前十个
        for /f "tokens=*" %%f in ('dir /b /on s???_S_*-01.nii') do (
            if !count! lss 10 (
                echo Deleting file: %%f
                del "%%f"
                set /a count+=1
            )
        )
        
        echo Deleted !count! files in folder: !target_dir!
    ) else (
        echo Directory "!target_dir!" does not exist!
    )
)

endlocal

 

标签:fMRI,nii,target,%%,echo,window,set,dir
From: https://www.cnblogs.com/zhoushusheng/p/18381608

相关文章

  • windows 核心编程 - windows作业限制设置
    演示作业限制设置演示作业限制设置文章目录演示作业限制设置演示作业限制设置moduelJob.h演示作业限制设置/*演示作业限制设置*/#include"..\\CommonFiles\\CmnHdr.h"#include"resource.h"#include"Job.h"#include<tchar.h>#include<strsafe.h>#inc......
  • 如何使用Kdrill检测Windows内核中潜在的rootkit
    关于KdrillKdrill是一款用于分析Windows64b系统内核空间安全的工具,该工具基于纯Python3开发,旨在帮助广大研究人员评估Windows内核是否受到了rootkit攻击。需要注意的是,该项目与Python2/3兼容,无其他依赖组件,无需Microsoft符号或网络连接即可执行安全检查。KDrill还......
  • 大白话【8】WindowsServer2016搭建DNS服务
    1.DNS服务功能介绍2.DNS服务器搭建2.0准备环境2.1把该DNS服务器设置成静态IP2.2修改主机名(可省略)2.3安装DNS服务DNS服务器名为www;IP为192.168.2.1003.客户机测试在网内可网络连通的客户机如何验证DNS服务器域名解析有效性?3.1可以ping不通,只要看到解析就行。......
  • Windows恢复受阻?reagenttask.dll丢失的诊断与修复全流程
    reagenttask.dll是一个与Windows操作系统相关的动态链接库(DLL)文件,通常与Windows恢复环境(WindowsRecoveryEnvironment,RE)的功能实现有关。这个DLL文件可能包含了处理恢复环境内部逻辑、资源管理和与其他恢复组件交互等功能所需的函数和资源,对于确保Windows恢复环境的正常运......
  • 大白话【7】windows server2016共享目录配置
    1.windows权限模型案列共享目录搭建过程1.创建共享目录2.为人力资源部,销售部,IT部,等创建工作组3.创建用户关联用户组4.修改共享目录权限,允许xx工作组用户进入目录5.根据需求设置XX目录权限6.开启目录共享打开本地用户和组Win+R 输入lusrmgr.msc引申-普通用户想要使......
  • 【Win 10/Win 11】【Foxmail】解决Foxmail邮件客户端安装在Windows系统下Program File
    虽然到目前(2024/08)Foxmail邮件客户端已经有一段时间没有更新了,但它仍不失为Windows操作系统下好用的邮件客户端之一。笔者在安装Foxmail时将默认路径设置为了D:\ProgramFiles\,而Windows10和Windows11对于分区根目录下ProgramFiles,ProgramFile(x86)等文件夹有特殊的权限限制,......
  • 小白之 FastGPT Windows 本地化部署
    目录引言环境步骤1.安装docker2.启动docker3.浏览器访问4.OneAPI配置语言模型、向量模型渠道和令牌5.创建FastGPT知识库6.创建FastGPT应用官方文档引言部署之前可以先看一下RAG技术原理,也可以后面回过头来看,对一些概念有些了解,对部署的内容会有更好......
  • windows vscode平台配置C++环境
    背景: windows系统,下载vscode1.安装编译器https://github.com/msys2/msys2-installer/releases/2. 安装所需编译工具 自动打开mysys2终端后:#官方提供指令pacman-Smingw-w64-ucrt-x86_64-gcc#推荐指令pacman-S--neededbase-develmingw-w64-ucrt-x86_64-t......
  • Windows提权方式汇总
    windows提权一、土豆(potato)家族提权原理土豆提权就是通过windows的COM(ComponentObjectModel,组件对象模型)类。向指定的服务器端口发送NTLM认证,捕获认证数据包,并修改数据包内容使其认证成功,从而获得system权限的token。在通过高权限的令牌执行反弹shell的命令,获取高......
  • [原创]Windows X64汇编入门(1)
    [原创]WindowsX64汇编入门(1)[原创]WindowsX64汇编入门(1)WindowsX64汇编入门(1)tankaiha  最近断断续续接触了些64位汇编的知识,这里小结一下,一是阶段学习的回顾,二是希望对64位汇编新手有所帮助。我也是刚接触这方面知识,文中肯定有错误之处,大家多指正。文章的标......