From 33c788aaae2ecfc1cdfec5fc936c4865e8d930ee Mon Sep 17 00:00:00 2001 From: kinoshita-eos Date: Tue, 21 Oct 2014 14:03:06 +0900 Subject: [PATCH] Add: TIPS for extraction of ASCII File. new file: TIPS/ASCII/Makefile/Makefile new file: TIPS/ASCII/Makefile/Makefile-lib Modify: use $(RM) as remove. modified: Small Tools/Template/Makefile/Makefile-lib modified: TIPS/Template/Makefile/Makefile --- Small Tools/Template/Makefile/Makefile-lib | 3 +- TIPS/ASCII/Makefile/Makefile | 66 ++++++++++++++++++++ TIPS/ASCII/Makefile/Makefile-lib | 98 ++++++++++++++++++++++++++++++ TIPS/Template/Makefile/Makefile | 3 +- 4 files changed, 166 insertions(+), 4 deletions(-) create mode 100644 TIPS/ASCII/Makefile/Makefile create mode 100644 TIPS/ASCII/Makefile/Makefile-lib diff --git a/Small Tools/Template/Makefile/Makefile-lib b/Small Tools/Template/Makefile/Makefile-lib index 0fc2ee4..2382e05 100644 --- a/Small Tools/Template/Makefile/Makefile-lib +++ b/Small Tools/Template/Makefile/Makefile-lib @@ -20,8 +20,7 @@ ##### Commands ##### InitialData:: - touch $(FILE_NAME).$(INI); - rm $(FILE_NAME).$(INI); + $(RM) $(FILE_NAME).$(INI); ln -s $(INPUT_PATH) $(FILE_NAME).$(INI) ##### Commands(Input to Output) ##### diff --git a/TIPS/ASCII/Makefile/Makefile b/TIPS/ASCII/Makefile/Makefile new file mode 100644 index 0000000..0dc9db2 --- /dev/null +++ b/TIPS/ASCII/Makefile/Makefile @@ -0,0 +1,66 @@ +# +# This is Main Makefile for ASCII. +# + +#### Root Makefile #### +MAKE_ROOT=ASCII + +#### Input extention #### +INI=txt + +#### Suffixes rule #### +# Defined at Sub + +#### INCLUDE #### +-include ${EOS_HOME}/tutorial/TIPS/Help/Makefile/Makefile-lib +-include Makefile-lib + +#### Definition #### +# Path of Input File +# Basically, use a linked data from /SampleData. +INPUT_PATH=${EOS_HOME}/tutorial/SampleData/1VOM-N.mrc +ASCII_DELIMITER=" " + +ASCII_S_LINE=3041 +ASCII_E_LINE=3041 + +ASCII_CLMN= 1 \ + 2 \ + 3 \ + +### FileData +FILE_NAME=Input +OUT_FILE_NAME=Output + +#### Rules of the list created #### +# Defined at Sub + +##### Commands ##### +# Defined at Sub basically +Initial:: + $(RM) $(FILE_NAME).$(INI); + ln -s $(INPUT_PATH) $(FILE_NAME).$(INI)3d; + mrcImageProjection -i "$(FILE_NAME).$(INI)3d" -o "$(FILE_NAME).$(INI)2d"; + mrcImageMakeDump -i $(FILE_NAME).$(INI)2d -o $(FILE_NAME).$(INI); + mrc2tiff -i "$(FILE_NAME).$(INI)2d" -o "$(FILE_NAME).tiff"; + $(RM) "$(FILE_NAME).$(INI)2d"; + $(RM) "$(FILE_NAME).$(INI)3d"; + +Exe:: + export IN_ASCII_FILE_NAME="$(FILE_NAME)"; \ + export IN_ASCII=$(INI); \ + export OUT_ASCII_FILE_NAME="$(FILE_NAME)-line"; \ + export OUT_ASCII=$(INI); \ + make ExtractLine; + export IN_ASCII_FILE_NAME="$(FILE_NAME)-line"; \ + export IN_ASCII=$(INI); \ + export OUT_ASCII_FILE_NAME="$(OUT_FILE_NAME)"; \ + export OUT_ASCII=$(INI); \ + make ExtractColumn; + +all:: + make Initial; + make Exe; + +##### Commands(Input to Output) ##### +# Defined at Sub diff --git a/TIPS/ASCII/Makefile/Makefile-lib b/TIPS/ASCII/Makefile/Makefile-lib new file mode 100644 index 0000000..ab3b9c2 --- /dev/null +++ b/TIPS/ASCII/Makefile/Makefile-lib @@ -0,0 +1,98 @@ +# +# This is Sub Makefile to Extract from ASCII. +# + +#### Input extention #### +# Defined at Main + +#### Suffixes rule #### +.SUFFIXES: + +#### INCLUDE #### +# Use TIPS File. +# -include ${EOS_HOME}/tutorial/TIPS/XXXX/Makefile/Makefile-lib + +#### Definition #### +# Defined at Main + +#### Rules of the list created #### + + +##### Commands ##### +help_ASCII:: + @echo + @echo "ASCII" + @echo "This is Sub Makefile to Extract from ASCII." + @echo + @echo " (Command):" + @echo " ExtractLine: Extract some lines from ASCII. " + @echo " (Setting Data):" + @echo " ASCII_S_LINE: Start of extracted line. (count from top=1)" + @echo " ASCII_E_LINE: End of extracted line. (count from bottom=1)" + @echo " ExtractColumn: Extract some columns from ASCII. " + @echo " (Setting Data):" + @echo " ASCII_CLMN: extracted column list.(cf. Main Makefile)" + @echo " (NOTE) If the column is undefined, finish extracting." + @echo " If the column is defined to 0, write the line number there." + @echo + @echo " (Setting Data):" + @echo " IN_ASCII_FILE_NAME: Input file name." + @echo " IN_ASCII: Input file extention" + @echo " OUT_ASCII_FILE_NAME: Output file name." + @echo " OUT_ASCII: Output file extetion." + @echo + +ExtractLine:: + @INPUT="$(IN_ASCII_FILE_NAME).$(IN_ASCII)"; \ + Tline=$$(wc -l $$INPUT | awk '{printf("%d\n", $$1)}'); \ + if [ -z $(ASCII_S_LINE) ]; then \ + Sline=1; \ + else \ + Sline=$(ASCII_S_LINE); \ + fi; \ + if [ -z $(ASCII_E_LINE) ]; then \ + Eline=1; \ + else \ + Eline=$(ASCII_E_LINE); \ + fi; \ + HEAD=`expr $$Tline + 1`; \ + HEAD=`expr $$HEAD - $$Eline`; \ + if [ $$HEAD -lt 1 ] ; then \ + HEAD=1; \ + elif [ $$Tline -lt $$HEAD ] ; then \ + HEAD=$$Tline; \ + fi; \ + TAIL=`expr $$HEAD + 1`; \ + TAIL=`expr $$TAIL - $$Sline`; \ + TlineT=`expr $$Tline - $$Eline + 1`; \ + if [ $$TAIL -lt 1 ] ; then \ + TAIL=1; \ + elif [ $$TlineT -lt $$TAIL ] ; then \ + TAIL=$$TlineT; \ + fi; \ + head -$$HEAD $$INPUT | tail -$$TAIL > "$(OUT_ASCII_FILE_NAME).$(OUT_ASCII)"; \ + echo "Extract lines `expr $$HEAD - $$TAIL + 1` - $$HEAD" + +ExtractColumn:: + @${RM} $(OUT_ASCII_FILE_NAME).$(OUT_ASCII); + @num=1; \ + while read line ; \ + do \ + for clmn in $(ASCII_CLMN) ; \ + do \ + if [ $$clmn -gt 0 ] ; then \ + echo $$line | awk -v v=$$clmn -v dl=$(ASCII_DELIMITER) '{printf("%d%s"), $$v, dl}' >> "$(OUT_ASCII_FILE_NAME).$(OUT_ASCII)"; \ + else \ + echo $$line | awk -v v=$$num -v dl=$(ASCII_DELIMITER) '{printf("%d%s"), v, dl}' >> "$(OUT_ASCII_FILE_NAME).$(OUT_ASCII)"; \ + fi; \ + done; \ + echo >> "$(OUT_ASCII_FILE_NAME).$(OUT_ASCII)"; \ + numH=`expr $$num % 100`; \ + if [ $$numH -eq 0 ] ; then \ + echo "$$num line is extracted."; \ + fi; \ + num=`expr $$num + 1`; \ + done < "$(IN_ASCII_FILE_NAME).$(IN_ASCII)"; + +##### Commands(Input to Output) ##### + diff --git a/TIPS/Template/Makefile/Makefile b/TIPS/Template/Makefile/Makefile index 8197427..b9a2d7a 100644 --- a/TIPS/Template/Makefile/Makefile +++ b/TIPS/Template/Makefile/Makefile @@ -29,8 +29,7 @@ FILE_NAME=Input ##### Commands ##### # Defined at Sub basically Initial:: - touch $(FILE_NAME).$(INI); - rm $(FILE_NAME).$(INI); + $(RM) $(FILE_NAME).$(INI); ln -s $(INPUT_PATH) $(FILE_NAME).$(INI); Exe:: -- 2.11.0