fetal brain reconstruction shell code

echo '------------------------------------------------------------'
echo
echo 'Script for fetal brain reconstruction'
echo 'Author: Weijie Ma     Date:   5 March, 2020'
echo 'Reference: Michael Ebner et al. An automated framework for localization, segmentation and super-resolution reconstruction of fetal brain MRI. NeuroImage, 116324.'
echo
echo '------------------------------------------------------------'


startime=$(date "+%Y%m%d%H%M%S")
is_error_seg=0
is_error_recon=0
DATA_FOLDER=$(cd "$(dirname "$0")";pwd)
touch $DATA_FOLDER/log.txt
errorlog=$DATA_FOLDER/log.txt
resolution=0.94
mkdir -r $DATA_FOLDER/successful
mkdir -r $DATA_FOLDER/failed

for filename in `ls`
do
    if [ -d "$filename" ] && [ "$filename" -ne "successful" ] && ["$filename" -ne "failed"]
    then
        echo
        echo
        echo "--------Detection and Segmentation-----Now the performing file:--------"$filename"---------"
        echo
        echo
        mkdir -p $filename/t2_haste
        
        mkdir -p $filename/nifti
        mkdir -p $filename/seg
        mkdir -p $filename/srr
        
        for name in `ls $filename | grep "t2_haste" | grep "nii"` 
        do 
            cp $filename/$name $filename/t2_haste
        done
        
        filepath=$DATA_FOLDER/$filename
        counter=`ls $filename/t2_haste -l | grep "^-"|wc -l`
        if [ $counter -eq 0 ]
        then 
        	echo $filename " : there are no T2 HASTE files for reconstruction!">>$errorlog
        	echo " " >>$errorlog
        	cp -r $filepath $DATA_FOLDER/failed
        	continue
        fi
        
        ls $filepath/t2_haste/*cor*;state_cor=$?
        ls $filepath/t2_haste/*sag*;state_sag=$?
        ls $filepath/t2_haste/*tra*;state_tra=$?
        if [ $state_cor -ne 0 ] || [ $state_sag -ne 0 ] || [ $state_tra -ne 0 ]
        then 
        	echo $filename " : warning type 1 ----------- t2 haste nii tri-plane is incomplete, only one or two planes">>$errorlog
        	echo " " >>$errorlog
        fi
        
        counter_tmp=0
        for niifile in $filename/t2_haste/*
        do 
            let counter_tmp++
            cp $niifile $filename/nifti/stack$counter_tmp.nii
        done
        gzip $filename/nifti/*.nii
        
        cd $FETAL_BRAIN_SEG
        for((i=1;i<=counter;i++))
        do
            python /home/mwj/fetal_brain_seg/fetal_brain_seg.py  \
            --input_names $filepath/nifti/stack${i}.nii.gz \
            --segment_output_names $filepath/seg/stack${i}_mask.nii.gz
            state=$?
            if [ $state -ne 0 ]
            then
				let is_error_seg++
                echo $filename ' : error type 1 ----------- stack'$i' brain section cannot be detected, segmentation stopped and failed' >>$errorlog
                echo " " >>$errorlog
                cp -r $filepath $DATA_FOLDER/failed
                break
            fi
        done
        cd $DATA_FOLDER
        
        if [ `ls $filename/seg -l | grep "^-"|wc -l` -eq $counter ]
        then
            echo
            echo
			echo "--------Reconstruction--------Now the performing file:--------"$filename"---------"
			echo
			echo
			tmpfile=$(mktemp recon_cmd_XXXXXX.sh)
			echo "#!/bin/bash">>$tmpfile
			echo "niftymic_run_reconstruction_pipeline \\">>$tmpfile
			echo "--filenames \\">>$tmpfile
			for((i=1;i<=counter;i++))
			do
				echo $filepath"/nifti/stack"${i}".nii.gz \\">>$tmpfile
			done
			echo "--filenames-masks \\">>$tmpfile
			for((i=1;i<=counter;i++))
			do
				echo $filepath"/seg/stack"${i}"_mask.nii.gz \\">>$tmpfile
			done
			echo "--dir-output "$filepath"/srr \\">>$tmpfile
			echo "--isotropic-resolution "$resolution>>$tmpfile
            sh $tmpfile
			
			ls $filepath/srr/recon_template_space/srr_template.nii.gz;state_recon=\$?
			if [ $state_recon -ne 0 ]
			then
			    let is_error_recon++
			    echo $filename ' : error type 3 --------- individuals of the generated masks after segmentation are null, reconstuction stopped and failed.' >>$errorlog
			    echo " " >>$errorlog
			    cp -r $filepath $DATA_FOLDER/failed
			else
			    cp -r $filepath $DATA_FOLDER/successful
			fi
			rm $tmpfile
		fi
    fi
done

echo
echo "----------------The total reconstruction : done------------------"

is_error=$[$is_error_seg + $is_error_recon]
if [ $is_error -ne 0 ]
then
	echo;echo;echo "--------------------------------------------------------"
	echo 'start time: '$startime
	echo 'end time: '$(date "+%Y%m%d%H%M%S")
	echo 'reminder: errors occured and were reported in the logfile please check and fix'
	echo "--------------------------------------------------------";echo;echo
fi

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、下载 4使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合;、 4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.m或d论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 、1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值