OSDN Git Service

Add: PIONE tutorial to convert from Makefile. v2.0.2p0094
authorkinoshita-eos <kinoshita@yasunaga-lab.bio.kyutech.ac.jp>
Tue, 27 Jan 2015 08:47:51 +0000 (17:47 +0900)
committerkinoshita-eos <kinoshita@yasunaga-lab.bio.kyutech.ac.jp>
Tue, 27 Jan 2015 08:47:51 +0000 (17:47 +0900)
new file:   SampleCode/PIONE/Advanced4/Anotation.pione
new file:   SampleCode/PIONE/Advanced4/Create_3d.pione
new file:   SampleCode/PIONE/Advanced4/Create_3d4s.pione
new file:   SampleCode/PIONE/Advanced4/Create_3d4slst.pione
new file:   SampleCode/PIONE/Advanced4/Create_3dlst.pione
new file:   SampleCode/PIONE/Advanced4/Create_3dwhole.pione
new file:   SampleCode/PIONE/Advanced4/Create_3dwholelst.pione
new file:   SampleCode/PIONE/Advanced4/Create_SampleROI.pione
new file:   SampleCode/PIONE/Advanced4/Create_fit.pione
new file:   SampleCode/PIONE/Advanced4/Create_stack.pione
new file:   SampleCode/PIONE/Advanced4/Main.pione
new file:   SampleCode/PIONE/Advanced4/Parameter.pione
new file:   SampleCode/PIONE/Advanced4/Preprocess.pione
new file:   SampleCode/PIONE/Advanced4/Projection_3d.pione

14 files changed:
SampleCode/PIONE/Advanced4/Anotation.pione [new file with mode: 0644]
SampleCode/PIONE/Advanced4/Create_3d.pione [new file with mode: 0644]
SampleCode/PIONE/Advanced4/Create_3d4s.pione [new file with mode: 0644]
SampleCode/PIONE/Advanced4/Create_3d4slst.pione [new file with mode: 0644]
SampleCode/PIONE/Advanced4/Create_3dlst.pione [new file with mode: 0644]
SampleCode/PIONE/Advanced4/Create_3dwhole.pione [new file with mode: 0644]
SampleCode/PIONE/Advanced4/Create_3dwholelst.pione [new file with mode: 0644]
SampleCode/PIONE/Advanced4/Create_SampleROI.pione [new file with mode: 0644]
SampleCode/PIONE/Advanced4/Create_fit.pione [new file with mode: 0644]
SampleCode/PIONE/Advanced4/Create_stack.pione [new file with mode: 0644]
SampleCode/PIONE/Advanced4/Main.pione [new file with mode: 0644]
SampleCode/PIONE/Advanced4/Parameter.pione [new file with mode: 0644]
SampleCode/PIONE/Advanced4/Preprocess.pione [new file with mode: 0644]
SampleCode/PIONE/Advanced4/Projection_3d.pione [new file with mode: 0644]

diff --git a/SampleCode/PIONE/Advanced4/Anotation.pione b/SampleCode/PIONE/Advanced4/Anotation.pione
new file mode 100644 (file)
index 0000000..b95bd27
--- /dev/null
@@ -0,0 +1,5 @@
+.@ PackageName :: "SingleParticle_3DReconstruction"
+.@ Editor              :: "Kinoshita"
+.@ Tag                 :: "v0.0.0"
+# Ref: Makefile in Eos v2.1.16p0093
+# $EOS_HOME/Integration/SingleParticle/Makefile-fromKanae
\ No newline at end of file
diff --git a/SampleCode/PIONE/Advanced4/Create_3d.pione b/SampleCode/PIONE/Advanced4/Create_3d.pione
new file mode 100644 (file)
index 0000000..b2c53db
--- /dev/null
@@ -0,0 +1,28 @@
+Rule Create_3d
+       input '*.3dlst'
+       input '*.fit'.all
+       output '{$I[1][1]}.3d'
+       output '{$I[1][1]}.3dcounter'
+       output '{$I[1][1]}.ds6'
+Flow
+       rule Reconstruct_3dlst_3d
+       rule Convert_3d_ds6
+End
+
+#.3dlst.3d:
+Rule Reconstruct_3dlst_3d
+       input '*.3dlst'
+       input '*.fit'.all
+       output '{$I[1][1]}.3d'
+       output '{$I[1][1]}.3dcounter'
+Action
+       mrc2Dto3D -I {$I[1]} -o {$O[1]} -InterpolationMode 2 -Double -DoubleCounter {$O[2]} -CounterThreshold 0.5 -m 1 -WeightMode 6
+End
+
+#.3d.ds6:
+Rule Convert_3d_ds6
+       input '*.3d'
+       output '{$I[1][1]}.ds6'
+Action
+       mrc2map -i {$I[1]} -o {$O[1]} -m 3 
+End
\ No newline at end of file
diff --git a/SampleCode/PIONE/Advanced4/Create_3d4s.pione b/SampleCode/PIONE/Advanced4/Create_3d4s.pione
new file mode 100644 (file)
index 0000000..82416eb
--- /dev/null
@@ -0,0 +1,31 @@
+Rule Create_3d4s
+       input '*.3d4slst'
+       input '*.4shift'.all
+       output '{$I[1][1]}.3d4s'
+       output '{$I[1][1]}.3d4scounter'
+       output '{$I[1][1]}.4sds6'
+       output '{$I[1][1]}.4s.ds6'
+Flow
+       rule Reconstruct_3d4slst_3d4s
+       rule Convert_3d4s_4sds6
+End
+
+#.3d4sinfolst.3d4s:
+Rule Reconstruct_3d4slst_3d4s
+       input '*.3d4slst'
+       input '*.4shift'.all
+       output '{$I[1][1]}.3d4s'
+       output '{$I[1][1]}.3d4scounter'
+Action
+       mrc2Dto3D -I {$I[1]} -o {$O[1]} -InterpolationMode 2 -Double -DoubleCounter {$O[2]} -CounterThreshold 0.5 -m 1 -WeightMode 6
+End
+
+#.3d4s.4sds6:
+Rule Convert_3d4s_4sds6
+       input '*.3d4s'
+       output '{$I[1][1]}.4sds6'
+       output '{$I[1][1]}.4s.ds6'
+Action
+       mrc2map -i {$I[1]} -o {$O[1]} -m 3 
+       ln -sf {$O[1]} {$O[2]}
+End
diff --git a/SampleCode/PIONE/Advanced4/Create_3d4slst.pione b/SampleCode/PIONE/Advanced4/Create_3d4slst.pione
new file mode 100644 (file)
index 0000000..fd2569f
--- /dev/null
@@ -0,0 +1,43 @@
+Rule Create_3d4slst
+       input '*.lst'
+       input '*.roi'.all
+       input '*.corinfo'.all
+       output '{$I[1][1]}.3d4slst'
+       output '*.4shift'.all
+Flow
+       rule fit_3d4sinfo
+       rule Sum_3d4sinfo_3d4slst
+End
+
+#.fit.3d4sinfo:
+Rule fit_3d4sinfo
+       input '*.corinfo'
+       input '{$I[1][1]}.roi'
+       output '{$I[1][1]}.3d4sinfolst'
+       output '{$I[1][1]}.3d4sinfo'
+       output '{$I[1][1]}.4shrink'
+       output '{$I[1][1]}.4spad'
+       output '{$I[1][1]}.4shift'
+Action
+       awk '/Cor/ { print $18,$16,$2,$3,$4,$9,$11,$12}' {$I[1]} | sort -r | sed -e s/pad/4shift/ > {$O[1]}
+       head -n 1 {$O[1]} | awk ' {print $2,$3,$4,$5,$6,$7,$8,$1'} > {$O[2]}
+       X=`awk '{print -{$SHRINK4S}*$6; }' {$O[2]}`; \
+       Y=`awk '{print -{$SHRINK4S}*$7; }' {$O[2]}`; \
+       echo $X,$Y; 
+       mrcImageShrink -i {$I[2]} -o  {$O[3]} -S {$SHRINK4S}
+       width=`expr {$X_SIZE} / {$SHRINK4S}`
+       height=`expr {$Y_SIZE} / {$SHRINK4S}`
+       mrcImagePad -i {$O[3]} -o {$O[4]} -W ${width} -H ${height}
+       mrcImageShift -i {$I[2]} -o {$O[5]} -x $X -y $Y -z 0
+End
+
+Rule Sum_3d4sinfo_3d4slst
+       input '*.lst'
+       input '*.3d4sinfo'.all
+       output '{$I[1][1]}.3d4slst'
+Action
+       for info in {$I[2].join()}
+       do
+               cat $info >> {$O[1]}
+       done
+End
diff --git a/SampleCode/PIONE/Advanced4/Create_3dlst.pione b/SampleCode/PIONE/Advanced4/Create_3dlst.pione
new file mode 100644 (file)
index 0000000..5316345
--- /dev/null
@@ -0,0 +1,29 @@
+Rule Create_3dlst
+       input '*.lst'
+       input '*.corinfo'.all
+       output '{$I[1][1]}.3dlst'
+Flow
+       rule fit_3dinfo
+       rule Sum_3dinfo_3dlst
+End
+
+# .fit.3dinfo:
+Rule fit_3dinfo
+       input '*.corinfo'
+       output '{$I[1][1]}.3dinfolst'
+       output '{$I[1][1]}.3dinfo'
+Action
+       awk '/Cor/ { print $18,$16,$2,$3,$4,"0.0"}' {$I[1]} | sort -r | sed -e s/pad/fit/ > {$O[1]}
+       head -n 1 {$O[1]} | awk ' {print $2,$3,$4,$5,$6,$1'} > {$O[2]}
+End
+
+Rule Sum_3dinfo_3dlst
+       input '*.lst'
+       input '*.3dinfo'.all
+       output '{$I[1][1]}.3dlst'
+Action
+       for info in {$I[2].join()}
+       do
+               cat $info >> {$O[1]}
+       done
+End
diff --git a/SampleCode/PIONE/Advanced4/Create_3dwhole.pione b/SampleCode/PIONE/Advanced4/Create_3dwhole.pione
new file mode 100644 (file)
index 0000000..7197728
--- /dev/null
@@ -0,0 +1,31 @@
+Rule Create_3dwhole
+       input '*.3dwholelst'
+       input '*.shift'.all
+       output '{$I[1][1]}.3dwhole'
+       output '{$I[1][1]}.3dwholecounter'
+       output '{$I[1][1]}.wholeds6'
+       output '{$I[1][1]}.whole.ds6'
+Flow
+       rule Reconstruct_3dwholelst_3dwhole
+       rule Convert_3dwhole_wholeds6
+End
+
+#.3dwholelst.3dwhole:
+Rule Reconstruct_3dwholelst_3dwhole
+       input '*.3dwholelst'
+       input '*.shift'.all
+       output '{$I[1][1]}.3dwhole'
+       output '{$I[1][1]}.3dwholecounter'
+Action
+       mrc2Dto3D -I {$I[1]} -o {$O[1]} -InterpolationMode 2 -Double -DoubleCounter {$O[2]} -CounterThreshold 0.5 -m 1 -WeightMode 6
+End
+
+#.3dwhole.3dwholelst:
+Rule Convert_3dwhole_wholeds6
+       input '*.3dwhole'
+       output '{$I[1][1]}.wholeds6'
+       output '{$I[1][1]}.whole.ds6'
+Action
+       mrc2map -i {$I[1]} -o {$O[1]} -m 3 
+       ln -sf {$O[1]} {$O[2]}
+End
diff --git a/SampleCode/PIONE/Advanced4/Create_3dwholelst.pione b/SampleCode/PIONE/Advanced4/Create_3dwholelst.pione
new file mode 100644 (file)
index 0000000..a929fac
--- /dev/null
@@ -0,0 +1,36 @@
+Rule Create_3dwholelst
+       input '*.lst'
+       input '*.roi'.all
+       input '*.corinfo'.all
+       output '{$I[1][1]}.3dwholelst'
+       output '*.shift'.all
+Flow
+       rule fit_3dwholeinfo
+       rule Sum_3dwholeinfo_3dwholelst
+End
+
+#.fit.3dwholeinfo:
+Rule fit_3dwholeinfo
+       input '*.roi'
+       input '{$I[1][1]}.corinfo'
+       output '{$I[1][1]}.3dwholeinfolst'
+       output '{$I[1][1]}.3dwholeinfo'
+       output '{$I[1][1]}.shift'
+Action
+       awk '/Cor/ { print $18,$16,$2,$3,$4,$9,$11,$12}' {$I[2]} | sort -r | sed -e s/pad/shift/ > {$O[1]}
+       head -n 1 {$O[1]} | awk ' {print $2,$3,$4,$5,$6,$7,$8,$1'} > {$O[2]}
+       X=`awk '{print -{$SHRINK}*$6; }' {$O[2]}`;
+       Y=`awk '{print -{$SHRINK}*$7; }' {$O[2]}`;
+       echo $X,$Y; mrcImageShift -i {$I[1]} -o {$O[3]} -x $X -y $Y -z 0        
+End
+
+Rule Sum_3dwholeinfo_3dwholelst
+       input '*.lst'
+       input '*.3dwholeinfo'.all
+       output '{$I[1][1]}.3dwholelst'
+Action
+       for info in {$I[2].join()}
+       do
+               cat $info >> {$O[1]}
+       done
+End
\ No newline at end of file
diff --git a/SampleCode/PIONE/Advanced4/Create_SampleROI.pione b/SampleCode/PIONE/Advanced4/Create_SampleROI.pione
new file mode 100644 (file)
index 0000000..b040d7b
--- /dev/null
@@ -0,0 +1,57 @@
+Rule Create_SampleROI
+       input '*.mrc'
+       output '{$I[1][1]}.lst'
+       output '{$I[1][1]}-*.roi'.all
+       output '{$I[1][1]}-*.tiff'.all
+Action
+       data=$(mrcInfo -i {$I[1]} | head -1)
+       x_size=$(echo "${data}" | awk '{printf ("%i", $4)}')
+       y_size=$(echo "${data}" | awk '{printf ("%i", $5)}')
+       z_size=$(echo "${data}" | awk '{printf ("%i", $6)}')
+
+       data=$(mrcInfo -i {$I[1]} | head -5 | tail -1)
+       x_length=$(echo "${data}" | awk '{printf ("%f", $4)}')
+       y_length=$(echo "${data}" | awk '{printf ("%f", $5)}')
+       z_length=$(echo "${data}" | awk '{printf ("%f", $6)}')
+       
+       ref_size=${x_size}
+       length=${x_length}
+       
+       if [ ${ref_size} -lt ${y_size} ] ; then \
+               ref_size=${y_size}
+               length=${y_length}
+       fi
+       
+       if [ ${ref_size} -lt ${z_size} ] ; then \
+               ref_size=${z_size}
+               length=${z_length}
+       fi
+       
+       image_size={$X_SIZE}
+       
+       if [ ${image_size} -lt {$Y_SIZE} ] ; then \
+               image_size={$Y_SIZE}
+       fi
+       
+       sampling_length=$(echo "scale=7; ${length} * ${ref_size} / ${image_size}" | bc)
+       
+       mrcImageSamplingUnitChange -i {$I[1]} -o {$I[1][1]}.data3d -m 2 -S ${sampling_length} ${sampling_length} ${sampling_length}
+
+       for (( rot1 = {$ROI_ROT1_START}; rot1 <= {$ROI_ROT1_END}; rot1 += {$ROI_ROT1_DELTA} ))
+       do
+               for (( rot2 = {$ROI_ROT2_START}; rot2 <= {$ROI_ROT2_END}; rot2 += {$ROI_ROT2_DELTA} ))
+               do
+                       for (( rot3 = {$ROI_ROT3_START}; rot3 <= {$ROI_ROT3_END}; rot3 += {$ROI_ROT3_DELTA} ))
+                       do
+                               mrc3Dto2D       -i {$I[1][1]}.data3d -o {$I[1][1]}-${rot1}-${rot2}-${rot3}.data2d -InterpolationMode 2 -EulerMode {$ROI_ROT_MODE} \
+                               -Rot1 ${rot1} ${rot1} 1 \
+                               -Rot2 ${rot2} ${rot2} 1 \
+                               -Rot3 ${rot3} ${rot3} 1
+                               mrcImageNoiseAdd -i {$I[1][1]}-${rot1}-${rot2}-${rot3}.data2d -o {$I[1][1]}-${rot1}-${rot2}-${rot3}.roi -SN {$ROI_SN}
+                               mrc2tiff -i {$I[1][1]}-${rot1}-${rot2}-${rot3}.roi -o {$I[1][1]}-${rot1}-${rot2}-${rot3}.tiff
+                       done
+               done
+       done
+       
+       ls *.roi > {$O[1]}
+End
diff --git a/SampleCode/PIONE/Advanced4/Create_fit.pione b/SampleCode/PIONE/Advanced4/Create_fit.pione
new file mode 100644 (file)
index 0000000..7ffcbcb
--- /dev/null
@@ -0,0 +1,10 @@
+#.pad.fit:
+Rule Create_fit
+       input '*.pad'
+       input '*.stack'
+       output '{$I[1][1]}.fit'
+       output '{$I[1][1]}.corinfo'
+Action
+       mrcImageAutoRotationCorrelation -i {$I[1]} -r {$I[2]} -fit  {$O[1]} -O {$O[2]} \
+                                                                       -n {$N_ROT} -m 18 -nRot1 {$N_ROT1} -nRot2 {$N_ROT2} -nRot3 {$N_ROT3} > /dev/null
+End
\ No newline at end of file
diff --git a/SampleCode/PIONE/Advanced4/Create_stack.pione b/SampleCode/PIONE/Advanced4/Create_stack.pione
new file mode 100644 (file)
index 0000000..9af5c1d
--- /dev/null
@@ -0,0 +1,42 @@
+Rule Create_stack
+       input '*.mrc'
+       output '{$I[1][1]}.stack'
+Action
+       data=$(mrcInfo -i {$I[1]} | head -1)
+       x_size=$(echo "${data}" | awk '{printf ("%i", $4)}')
+       y_size=$(echo "${data}" | awk '{printf ("%i", $5)}')
+       z_size=$(echo "${data}" | awk '{printf ("%i", $6)}')
+
+       data=$(mrcInfo -i {$I[1]} | head -5 | tail -1)
+       x_length=$(echo "${data}" | awk '{printf ("%f", $4)}')
+       y_length=$(echo "${data}" | awk '{printf ("%f", $5)}')
+       z_length=$(echo "${data}" | awk '{printf ("%f", $6)}')
+       
+       ref_size=${x_size}
+       length=${x_length}
+       
+       if [ ${ref_size} -lt ${y_size} ] ; then \
+               ref_size=${y_size}
+               length=${y_length}
+       fi
+       
+       if [ ${ref_size} -lt ${z_size} ] ; then \
+               ref_size=${z_size}
+               length=${z_length}
+       fi
+       
+       image_size={$X_SIZE}
+       
+       if [ ${image_size} -lt ${Y_SIZE} ] ; then \
+               image_size=${Y_SIZE}
+       fi
+       
+       sampling_length=$(echo "scale=15.7; ${length} * {$SHRINK} * ${ref_size} / ${image_size}" | bc)
+       
+       mrcImageSamplingUnitChange -i {$I[1]} -o {$I[1][1]}.ref3d -m 2 -S ${sampling_length} ${sampling_length} ${sampling_length}
+       
+       mrc3Dto2D       -i {$I[1][1]}.ref3d -o {$O[1]} -m 1 -InterpolationMode 2 -EulerMode {$REF_ROT_MODE} \
+                               -Rot1 {$REF_ROT1_START} {$REF_ROT1_END} {$REF_ROT1_DELTA} \
+                               -Rot2 {$REF_ROT2_START} {$REF_ROT2_END} {$REF_ROT2_DELTA} \
+                               -Rot3 {$REF_ROT3_START} {$REF_ROT3_END} {$REF_ROT3_DELTA}
+End
diff --git a/SampleCode/PIONE/Advanced4/Main.pione b/SampleCode/PIONE/Advanced4/Main.pione
new file mode 100644 (file)
index 0000000..663d179
--- /dev/null
@@ -0,0 +1,70 @@
+Rule Main
+       if $Flag_ROI or $Flag_Ref
+               input '*.mrc'
+       end
+
+       if $Flag_ROI.not()
+               input '*.lst'
+               input '*.roi'.all
+       end
+
+       if $Flag_Ref.not()
+               input '*.stack'
+       end
+
+       if $Flag_3D
+               output '{$I[1][1]}.3dlst'
+               output '{$I[1][1]}.3d'
+               output '{$I[1][1]}.ds6'
+       end
+
+       if $Flag_3DWhole
+               output '{$I[1][1]}.3dwholelst'
+               output '{$I[1][1]}.3dwhole'
+               output '{$I[1][1]}.wholeds6'
+               output '{$I[1][1]}.whole.ds6'
+       end
+
+       if $Flag_3D4S
+               output '{$I[1][1]}.3d4slst'
+               output '{$I[1][1]}.3d4s'
+               output '{$I[1][1]}.4sds6'
+               output '{$I[1][1]}.4s.ds6'
+       end
+
+       if $Flag_ROI
+               output '*.tiff'.all
+       end
+
+       output '*.gif'.all
+       
+Flow
+
+       if $Flag_ROI
+               rule Create_SampleROI
+       end
+
+       if $Flag_Ref
+               rule Create_stack
+       end
+
+       rule Preprocess
+       rule Create_fit
+
+       if $Flag_3D
+               rule Create_3dlst
+               rule Create_3d
+       end
+
+       if $Flag_3DWhole
+               rule Create_3dwholelst 
+               rule Create_3dwhole
+       end
+
+       if $Flag_3D4S
+               rule Create_3d4slst
+               rule Create_3d4s
+       end
+
+       rule Projection_3d
+End
diff --git a/SampleCode/PIONE/Advanced4/Parameter.pione b/SampleCode/PIONE/Advanced4/Parameter.pione
new file mode 100644 (file)
index 0000000..079a9c2
--- /dev/null
@@ -0,0 +1,44 @@
+# basic param
+## For Size
+param $X_SIZE := 80
+param $Y_SIZE := 80
+param $SHRINK := 8
+param $SHRINK4S := 4
+
+## For AutoRotationCorrelation
+param $N_ROT := 72
+param $N_ROT1 := 72
+param $N_ROT2 := 72
+param $N_ROT3 := 1
+
+## For RefData
+param $REF_ROT_MODE := "XOYS"
+param $REF_ROT1_START := 0
+param $REF_ROT1_END := 359
+param $REF_ROT1_DELTA := 15
+param $REF_ROT2_START := 0
+param $REF_ROT2_END := 359
+param $REF_ROT2_DELTA := 15
+param $REF_ROT3_START := 0
+param $REF_ROT3_END := 0
+param $REF_ROT3_DELTA := 15
+
+## For SampleROI
+param $ROI_ROT_MODE := "XOYS"
+param $ROI_ROT1_START := 0
+param $ROI_ROT1_END := 359
+param $ROI_ROT1_DELTA := 30
+param $ROI_ROT2_START := 0
+param $ROI_ROT2_END := 359
+param $ROI_ROT2_DELTA := 30
+param $ROI_ROT3_START := 0
+param $ROI_ROT3_END := 0
+param $ROI_ROT3_DELTA := 30
+param $ROI_SN := 1
+
+# advanced param
+advanced param $Flag_ROI := true
+advanced param $Flag_Ref := true
+advanced param $Flag_3D := true
+advanced param $Flag_3DWhole := true
+advanced param $Flag_3D4S := true
diff --git a/SampleCode/PIONE/Advanced4/Preprocess.pione b/SampleCode/PIONE/Advanced4/Preprocess.pione
new file mode 100644 (file)
index 0000000..b18cf5b
--- /dev/null
@@ -0,0 +1,46 @@
+# .lst.padlst:
+Rule Preprocess
+       input '*.lst'
+       input '*.roi'.all
+       output '*.pad'.all
+       output '{$I[1][1]}.padlst'
+Flow
+       rule roi_smooth;
+       rule smooth_shrink;
+       rule shrink_pad;
+       rule pad_padlst;
+End
+
+#.roi.smooth:
+Rule roi_smooth
+       input '*.roi'
+       output '{$I[1][1]}.smooth'
+Action
+       mrcImageSmoothing -i {$I[1]} -o {$O[1]} -m 1 -r 4 
+End
+
+#.smooth.shrink:
+Rule smooth_shrink
+       input '*.smooth'
+       output '{$I[1][1]}.shrink'
+Action
+       mrcImageShrink -i {$I[1]} -o  {$O[1]} -S {$SHRINK}
+End
+
+#.shrink.pad:
+Rule shrink_pad
+       input '*.shrink'
+       output '{$I[1][1]}.pad'
+Action
+       width=`expr {$X_SIZE} / {$SHRINK}`
+       height=`expr {$Y_SIZE} / {$SHRINK}`
+       mrcImagePad -i {$I[1]} -o {$O[1]} -W ${width} -H ${height}
+End
+
+Rule pad_padlst
+       input '*.lst'
+       input '*.pad'.all
+       output '{$I[1][1]}.padlst'
+Action
+       echo "{$I[2].join("\\n")}" > {$O[1]}
+End
diff --git a/SampleCode/PIONE/Advanced4/Projection_3d.pione b/SampleCode/PIONE/Advanced4/Projection_3d.pione
new file mode 100644 (file)
index 0000000..2b277c1
--- /dev/null
@@ -0,0 +1,10 @@
+Rule Projection_3d
+       input '*.3d' or '*.3dwhole' or '*.3d4s'
+       output '{$I[1]}-*.gif'.all
+Action
+       for i in 0 1 2
+       do
+               mrcImageProjection -i {$I[1]} -o {$I[1]}-$i.mrc -m $i
+               mrc2gif -i {$I[1]}-$i.mrc -o {$I[1]}-$i.gif
+       done
+End
\ No newline at end of file