「らせん対称をもつ粒子の3次元再構成法」の版間の差分

提供: Eospedia
移動: 案内検索
(ページの作成:「== らせん対称をもつ粒子の3次元再構成法 == <pre> .SUFFIXES: .roi .roi2 .mrc3d .ds6 \ .pad2 .mrc2d .pad3d .corinfo \ .3dlist_part .3dlist .3dorg...」)
 
行1: 行1:
== らせん対称をもつ粒子の3次元再構成法 ==
+
== らせん対称構造のリファインメント ==
 +
 
 +
下記に示したものは、アクトミオシンの構造解析の際に使っていたMakefileである。
  
 
<pre>
 
<pre>
行71: 行73:
 
make refined3d; make REFINED3D;
 
make refined3d; make REFINED3D;
 
make refinedds6; make REFINEDDS6;
 
make refinedds6; make REFINEDDS6;
 +
 +
ROI::
 +
echo "ROI=\\" > ROI
 +
ls -1 *.roi | sed s/roi/roi\\\\/ >> ROI
 +
echo "" >> ROI
 +
 +
ROI2::
 +
echo "ROI2=\\" > ROI2
 +
ls -1 *.roi2 | sed s/roi2/roi2\\\\/ >> ROI2
 +
echo "" >> ROI2
 +
 +
MRC3D::
 +
echo "MRC3D=\\" > MRC3D
 +
ls -1 *.mrc3d | sed s/mrc3d/mrc3d\\\\/ >> MRC3D
 +
echo "" >> MRC3D
 +
 +
PAD2::
 +
echo "PAD2=\\" > PAD2
 +
ls -1 *.pad2 | sed s/pad2/pad2\\\\/ >> PAD2
 +
echo "" >> PAD2
 +
 +
MRC2D::
 +
echo "MRC2D=\\" > MRC2D
 +
ls -1 *.mrc2d | sed s/mrc2d/mrc2d\\\\/ >> MRC2D
 +
echo "" >> MRC2D
 +
 +
CORINFO::
 +
echo "CORINFO=\\" > CORINFO
 +
ls -1 *.corinfo | sed s/corinfo/corinfo\\\\/ >> CORINFO
 +
echo "" >> CORINFO
 +
 +
3DLIST_PART::
 +
echo "3DLIST_PART=\\" > 3DLIST_PART
 +
ls -1 *.3dlist_part | sed s/3dlist_part/3dlist_part\\\\/ >> 3DLIST_PART
 +
echo "" >> 3DLIST_PART
 +
 +
3DLIST::
 +
echo "3DLIST=\\" > 3DLIST
 +
ls -1 *.3dlist | sed s/3dlist/3dlist\\\\/ >> 3DLIST
 +
echo "" >> 3DLIST
 +
 +
3DORGLIST::
 +
echo "3DORGLIST=\\" > 3DORGLIST
 +
ls -1 *.3dorglist | sed s/3dorglist/3dorglist\\\\/ >> 3DORGLIST
 +
echo "" >> 3DORGLIST
 +
 +
REFINED3D::
 +
echo "REFINED3D=\\" > REFINED3D
 +
ls -1 *.refined3d | sed s/refined3d/refined3d\\\\/ >> REFINED3D
 +
echo "" >> REFINED3D
 +
 +
REFINEDDS6::
 +
echo "REFINEDDS6=\\" > REFINEDDS6
 +
ls -1 *.refinedds6 | sed s/refinedds6/refinedds6\\\\/ >> REFINEDDS6
 +
echo "" >> REFINEDDS6
 +
 +
#Triming of Noize
 +
CENTERGET:
 +
mrcImageCenterGet -i $(SOURCE).mrc3d -o $(SOURCE).centre3d \
 +
  -Nx 60 -Ny 60
 +
 +
#FRAGMENTATION
 +
.roi.roi2:
 +
((i=1));\
 +
((Shift=64));\
 +
((ty=857));\
 +
((by=729));\
 +
while((by >= 0));\
 +
do \
 +
echo "i=$$i";\
 +
echo "ty=$$ty by=$$by";\
 +
mrcImageROI -i $*.roi -o $*-$$i.roi2\
 +
-r 0.0 $$by 121.0 $$by 121.0 $$ty 0.0 $$ty -m 2;\
 +
((i++));\
 +
((ty-=64));\
 +
((by-=64));\
 +
done
 +
 +
#REFINEMENT
 +
.roi2.pad2:
 +
mrcImageCenterGet -i $*.roi2 -o $*.roiget
 +
mrcImagePad -i $*.roiget -o $*.pad2 \
 +
-W $(PADWIDTH_FORDATA) -H $(PADHEIGHT_FORDATA) \
 +
-m 2 -V 0
 +
 +
.mrc3d.mrc2d:
 +
mrc3Dto2D -i $(SOURCE).mrc3d -o $(SOURCE).mrc2d \
 +
  -EulerMode $(MODE) -InterpolationMode 0 \
 +
  -Rot1 $(rXmin) $(rXmax) $(rXdel) \
 +
  -Rot2 $(rYmin) $(rYmax) $(rYdel) \
 +
  -Rot3 0 0 5 -m 1
 +
 +
.pad2.corinfo:
 +
mrcImageAutoRotationCorrelation -i $*.pad2 -r $(SOURCE).mrc2d \
 +
-O $*.corinfo -fit $*.fit \
 +
-nRot1 $(Xstep) \
 +
-nRot2 $(Ystep) \
 +
-nRot3 $(Zstep) \
 +
-range -5 5 -n 10 -Iter 2 -m 2
 +
# -nRot1Area $(Xmin) $(Xmax) $(Xstep) \
 +
-nRot2Area $(Ymin) $(Ymax) $(Ystep) \
 +
-nRot3Area $(Zmin) $(Zmax) $(Zstep) \
 +
 +
.corinfo.3dlist_part:
 +
awk 'BEGIN {cor=0} \
 +
  {if(cor<$$18){cor=$$18; \
 +
  maxRot1=$$3; \
 +
maxRot2=$$4; \
 +
maxRot3=$$5;}} \
 +
END {sub(".corinfo",".fit",FILENAME); \
 +
  printf("%s $(MODE) %f %f %f Cor %f\n", FILENAME\
 +
  , maxRot1\
 +
, maxRot2\
 +
, maxRot3\
 +
, cor)}'\
 +
$*.corinfo > $*.3dlist_part
 +
 +
.3dlist_part.3dlist:
 +
cat $*.3dlist_part >> $(SOURCE).3dlist
 +
 +
.3dlist.3dorglist:
 +
awk '{print $$7 " " $$1 " " $$2 " " $$3 " " $$4 " " $$5 " " $$6}' \
 +
$(SOURCE).3dlist | \
 +
sort -r | \
 +
awk '{print $$2 " " $$3 " " $$4 " " $$5 " " $$6 " " $$7 " " $$1}' \
 +
> $(SOURCE).3dorglist
 +
 +
.3dorglist.refined3d:
 +
mrc2Dto3D -I $(SOURCE).3dorglist -o $(SOURCE).refined3d \
 +
  -InterpolationMode 2 \
 +
  -CounterThreshold 1e-6 \
 +
  -DoubleCounter $(SOURCE).counter \
 +
  -WeightMode 2 \
 +
  -Double -m 1
 +
 +
.refined3d.refinedds6:
 +
mrc2map -i $(SOURCE).refined3d -o $(SOURCE).refinedds6
 +
 +
DispROIs::
 +
for i in $(ROI) ;\
 +
do \
 +
echo $$i ; \
 +
Display2 -i $$i -Zoom -0.3 -geometry 786x786+0+0 ; \
 +
done
 +
</pre>
 +
 +
 +
これについて、簡単に解説する。
 +
 +
<pre>
 +
.SUFFIXES:  .roi .roi2 .mrc3d .ds6 \
 +
.pad2 .mrc2d .pad3d .corinfo \
 +
.3dlist_part .3dlist .3dorglist \
 +
.refined3d .refinedds6
 +
</pre>
 +
ここまでは、サフィックスを定義したものである。切り出した繊維構造のファイル名が.roiであることを前提にしている。
 +
既に粒子化(フラグメンテーションが終わっている場合には、roi2となっていることが前提になる。その際のネーミングに注意が必要である。下記を参照してください。
 +
フラグメンテーションを個々で行った方が検索が楽かもしれない。
 +
 +
<pre>
 +
include ROI
 +
include ROI2
 +
include MRC3D
 +
include PAD2
 +
include MRC2D
 +
include PAD3D
 +
include CORINFO
 +
include 3DLIST_PART
 +
include 3DLIST
 +
include 3DORGLIST
 +
include REFINED3D
 +
include REFINEDDS6
 +
</pre>
 +
 +
ここまでは内部で作成されるリストファイルである。
 +
 +
ここから下に設定するためのパラメータのリストで有り、この部分を別のファイルにしておくことも出来る。
 +
<pre>
 +
#Refinement param
 +
SOURCE = F-actin#          #SOURCE: Reference for refinement
 +
ROI_WIDTH = 128
 +
# Parameter for mrc3Dto2D
 +
rXmin = 89
 +
rXmax = 91
 +
rXdel = 1
 +
rYmin = 0#                #rXmin,rXmax,rXdel: Used in mrc3Dto2D.
 +
rYmax = 355#              #                  rXdel is delta of Angle
 +
rYdel = 5#                #                  rYmin,rYmax,rYdel are also same
 +
#MODE  = YOYS#   #Euler mode Y-X-Z
 +
#MODE  = ZOYS#   #Euler mode Z-Y-X
 +
MODE  = XEYS#   #Euler mode X-Y-Z: 1st, Filament axis lap over Y-axis,
 +
  #   2nd, Rotate filament about filament axis
 +
# Parameter for mrcImageAutoRotationCorrelation
 +
PADWIDTH_FORDATA = 128#    #
 +
PADHEIGHT_FORDATA = 128#  #
 +
Xmin = 89
 +
Xmax = 91
 +
Xstep = 3
 +
Ymin = 0
 +
Ymax = 355
 +
Ystep = 72
 +
Zmin = 0
 +
Zmax = 360
 +
Zstep = 1
 +
 +
</pre>
 +
 +
この部分をファイル(Mafile.config)にしておき、
 +
<pre>
 +
-include Makefile.config
 +
</pre>
 +
 +
とすることで、読み込むことができる。上記の記述の下でincludeすれば、デフォルト値を書き換えることができる。
 +
-includeはファイルがなくてもエラーにならないので便利です。上述の各includeファイルもそのほうがよいかもしれません。
 +
 +
<pre>
 +
roi2: $(ROI:.roi=.roi2)
 +
pad2: $(ROI2:.roi2=.pad2)
 +
mrc2d: $(MRC3D:.mrc3d=.mrc2d)
 +
pad3d: $(MRC2D:.mrc2d=.pad3d)
 +
corinfo: $(PAD2:.pad2=.corinfo)
 +
3dlist_part:$(CORINFO:.corinfo=.3dlist_part)
 +
3dlist: $(3DLIST_PART:.3dlist_part=.3dlist)
 +
3dorglist: $(3DLIST:.3dlist=.3dorglist)
 +
refined3d: $(3DORGLIST:.3dorglist=.refined3d)
 +
refinedds6: $(REFINED3D:.refined3d=.refinedds6)
 +
 +
</pre>
 +
 +
この部分は、ファイルリストをターゲットにしている部分です。
 +
 +
<pre>
 +
 +
FRAGMENTATION::
 +
make roi2;   make ROI2;
 +
</pre>
 +
 +
$ make FRAGMENTATION
 +
 +
<>
 +
 +
<pre>
 +
 +
REFINEMENT::
 +
make MRC3D;   make ROI;
 +
make pad2;   make PAD2;
 +
make mrc2d;   make MRC2D;
 +
make corinfo; make CORINFO;
 +
make 3dlist_part; make 3DLIST_PART;
 +
make 3dlist; make 3DLIST;
 +
make 3dorglist; make 3DORGLIST;
 +
make refined3d; make REFINED3D;
 +
make refinedds6; make REFINEDDS6;
 +
 +
</pre>
 +
 +
  
 
ROI::
 
ROI::

2017年1月7日 (土) 01:46時点における版

らせん対称構造のリファインメント

下記に示したものは、アクトミオシンの構造解析の際に使っていたMakefileである。

 .SUFFIXES:  .roi .roi2 .mrc3d .ds6 \
			.pad2 .mrc2d .pad3d .corinfo \
			.3dlist_part .3dlist .3dorglist \
			.refined3d .refinedds6 

include ROI
include ROI2
include MRC3D
include PAD2
include MRC2D
include PAD3D
include CORINFO
include 3DLIST_PART
include 3DLIST
include 3DORGLIST
include REFINED3D
include REFINEDDS6

#Refinement param
SOURCE = F-actin#          #SOURCE: Reference for refinement
ROI_WIDTH = 128
 # Parameter for mrc3Dto2D
rXmin = 89
rXmax = 91
rXdel = 1
rYmin = 0#                 #rXmin,rXmax,rXdel: Used in mrc3Dto2D.
rYmax = 355#               #                   rXdel is delta of Angle
rYdel = 5#                 #                   rYmin,rYmax,rYdel are also same
#MODE  = YOYS#			   #Euler mode Y-X-Z 
#MODE  = ZOYS#			   #Euler mode Z-Y-X
MODE  = XEYS#			   #Euler mode X-Y-Z: 1st, Filament axis lap over Y-axis,
						   #				  2nd, Rotate filament about filament axis
 # Parameter for mrcImageAutoRotationCorrelation
PADWIDTH_FORDATA = 128#    #
PADHEIGHT_FORDATA = 128#   #
Xmin = 89
Xmax = 91
Xstep = 3 
Ymin = 0
Ymax = 355
Ystep = 72 
Zmin = 0
Zmax = 360
Zstep = 1

roi2:		$(ROI:.roi=.roi2)
pad2:		$(ROI2:.roi2=.pad2)
mrc2d:		$(MRC3D:.mrc3d=.mrc2d)
pad3d:		$(MRC2D:.mrc2d=.pad3d)
corinfo:	$(PAD2:.pad2=.corinfo)
3dlist_part:$(CORINFO:.corinfo=.3dlist_part)
3dlist:		$(3DLIST_PART:.3dlist_part=.3dlist)
3dorglist:	$(3DLIST:.3dlist=.3dorglist)
refined3d:	$(3DORGLIST:.3dorglist=.refined3d)
refinedds6:	$(REFINED3D:.refined3d=.refinedds6)

FRAGMENTATION::
	make roi2;	  make ROI2;

REFINEMENT::
	make MRC3D;	  make ROI;
	make pad2;	  make PAD2;
	make mrc2d;	  make MRC2D;
	make corinfo; make CORINFO;
	make 3dlist_part; make 3DLIST_PART;
	make 3dlist; make 3DLIST;
	make 3dorglist; make 3DORGLIST;
	make refined3d; make REFINED3D;
	make refinedds6; make REFINEDDS6;

ROI::
	echo "ROI=\\" > ROI
	ls -1 *.roi | sed s/roi/roi\\\\/ >> ROI
	echo "" >> ROI

ROI2::
	echo "ROI2=\\" > ROI2
	ls -1 *.roi2 | sed s/roi2/roi2\\\\/ >> ROI2
	echo "" >> ROI2

MRC3D::
	echo "MRC3D=\\" > MRC3D
	ls -1 *.mrc3d | sed s/mrc3d/mrc3d\\\\/ >> MRC3D
	echo "" >> MRC3D

PAD2::
	echo "PAD2=\\" > PAD2
	ls -1 *.pad2 | sed s/pad2/pad2\\\\/ >> PAD2
	echo "" >> PAD2

MRC2D::
	echo "MRC2D=\\" > MRC2D
	ls -1 *.mrc2d | sed s/mrc2d/mrc2d\\\\/ >> MRC2D
	echo "" >> MRC2D

CORINFO::
	echo "CORINFO=\\" > CORINFO
	ls -1 *.corinfo | sed s/corinfo/corinfo\\\\/ >> CORINFO
	echo "" >> CORINFO

3DLIST_PART::
	echo "3DLIST_PART=\\" > 3DLIST_PART
	ls -1 *.3dlist_part | sed s/3dlist_part/3dlist_part\\\\/ >> 3DLIST_PART
	echo "" >> 3DLIST_PART

3DLIST::
	echo "3DLIST=\\" > 3DLIST
	ls -1 *.3dlist | sed s/3dlist/3dlist\\\\/ >> 3DLIST
	echo "" >> 3DLIST

3DORGLIST::
	echo "3DORGLIST=\\" > 3DORGLIST
	ls -1 *.3dorglist | sed s/3dorglist/3dorglist\\\\/ >> 3DORGLIST
	echo "" >> 3DORGLIST

REFINED3D::
	echo "REFINED3D=\\" > REFINED3D
	ls -1 *.refined3d | sed s/refined3d/refined3d\\\\/ >> REFINED3D
	echo "" >> REFINED3D

REFINEDDS6::
	echo "REFINEDDS6=\\" > REFINEDDS6
	ls -1 *.refinedds6 | sed s/refinedds6/refinedds6\\\\/ >> REFINEDDS6
	echo "" >> REFINEDDS6

#Triming of Noize
CENTERGET:
	mrcImageCenterGet -i $(SOURCE).mrc3d -o $(SOURCE).centre3d \
					  -Nx 60 -Ny 60 

#FRAGMENTATION
.roi.roi2:
	((i=1));\
	((Shift=64));\
	((ty=857));\
	((by=729));\
	while((by >= 0));\
	do \
		echo "i=$$i";\
		echo "ty=$$ty by=$$by";\
		mrcImageROI -i $*.roi -o $*-$$i.roi2\
					-r 0.0 $$by 121.0 $$by 121.0 $$ty 0.0 $$ty -m 2;\
		((i++));\
		((ty-=64));\
		((by-=64));\
	done

#REFINEMENT
.roi2.pad2:
	mrcImageCenterGet -i $*.roi2 -o $*.roiget
	mrcImagePad -i $*.roiget -o $*.pad2 \
				-W $(PADWIDTH_FORDATA) -H $(PADHEIGHT_FORDATA) \
				-m 2 -V 0

.mrc3d.mrc2d:
	mrc3Dto2D -i $(SOURCE).mrc3d -o $(SOURCE).mrc2d \
			  -EulerMode $(MODE) -InterpolationMode 0 \
			  -Rot1 $(rXmin) $(rXmax) $(rXdel) \
			  -Rot2 $(rYmin) $(rYmax) $(rYdel) \
			  -Rot3 0 0 5 -m 1

.pad2.corinfo:
	mrcImageAutoRotationCorrelation -i $*.pad2 -r $(SOURCE).mrc2d \
									-O $*.corinfo -fit $*.fit \
									-nRot1 $(Xstep) \
									-nRot2 $(Ystep) \
									-nRot3 $(Zstep) \
									-range -5 5 -n 10 -Iter 2 -m 2
#									-nRot1Area $(Xmin) $(Xmax) $(Xstep) \
									-nRot2Area $(Ymin) $(Ymax) $(Ystep) \
									-nRot3Area $(Zmin) $(Zmax) $(Zstep) \

.corinfo.3dlist_part:
	awk 'BEGIN {cor=0} \
			   {if(cor<$$18){cor=$$18; \
			   				 maxRot1=$$3; \
							 maxRot2=$$4; \
							 maxRot3=$$5;}} \
		 END {sub(".corinfo",".fit",FILENAME); \
		 	  printf("%s $(MODE) %f %f %f Cor %f\n", FILENAME\
			  									, maxRot1\
												, maxRot2\
												, maxRot3\
												, cor)}'\
		$*.corinfo > $*.3dlist_part

.3dlist_part.3dlist:
	cat $*.3dlist_part >> $(SOURCE).3dlist

.3dlist.3dorglist:
	awk '{print $$7 " " $$1 " " $$2 " " $$3 " " $$4 " " $$5 " " $$6}' \
		$(SOURCE).3dlist | \
	sort -r | \
	awk '{print $$2 " " $$3 " " $$4 " " $$5 " " $$6 " " $$7 " " $$1}' \
		> $(SOURCE).3dorglist

.3dorglist.refined3d:
	mrc2Dto3D -I $(SOURCE).3dorglist -o $(SOURCE).refined3d \
			  -InterpolationMode 2 \
			  -CounterThreshold 1e-6 \
			  -DoubleCounter $(SOURCE).counter \
			  -WeightMode 2 \
			  -Double -m 1

.refined3d.refinedds6:
	mrc2map -i $(SOURCE).refined3d -o $(SOURCE).refinedds6

DispROIs::
	for i in $(ROI) ;\
	do \
		echo $$i ; \
		Display2 -i $$i -Zoom -0.3 -geometry 786x786+0+0 ; \
	done


これについて、簡単に解説する。

 .SUFFIXES:  .roi .roi2 .mrc3d .ds6 \
			.pad2 .mrc2d .pad3d .corinfo \
			.3dlist_part .3dlist .3dorglist \
			.refined3d .refinedds6 

ここまでは、サフィックスを定義したものである。切り出した繊維構造のファイル名が.roiであることを前提にしている。 既に粒子化(フラグメンテーションが終わっている場合には、roi2となっていることが前提になる。その際のネーミングに注意が必要である。下記を参照してください。 フラグメンテーションを個々で行った方が検索が楽かもしれない。

include ROI
include ROI2
include MRC3D
include PAD2
include MRC2D
include PAD3D
include CORINFO
include 3DLIST_PART
include 3DLIST
include 3DORGLIST
include REFINED3D
include REFINEDDS6

ここまでは内部で作成されるリストファイルである。

ここから下に設定するためのパラメータのリストで有り、この部分を別のファイルにしておくことも出来る。

#Refinement param
SOURCE = F-actin#          #SOURCE: Reference for refinement
ROI_WIDTH = 128
 # Parameter for mrc3Dto2D
rXmin = 89
rXmax = 91
rXdel = 1
rYmin = 0#                 #rXmin,rXmax,rXdel: Used in mrc3Dto2D.
rYmax = 355#               #                   rXdel is delta of Angle
rYdel = 5#                 #                   rYmin,rYmax,rYdel are also same
#MODE  = YOYS#			   #Euler mode Y-X-Z 
#MODE  = ZOYS#			   #Euler mode Z-Y-X
MODE  = XEYS#			   #Euler mode X-Y-Z: 1st, Filament axis lap over Y-axis,
						   #				  2nd, Rotate filament about filament axis
 # Parameter for mrcImageAutoRotationCorrelation
PADWIDTH_FORDATA = 128#    #
PADHEIGHT_FORDATA = 128#   #
Xmin = 89
Xmax = 91
Xstep = 3 
Ymin = 0
Ymax = 355
Ystep = 72 
Zmin = 0
Zmax = 360
Zstep = 1

この部分をファイル(Mafile.config)にしておき、

-include Makefile.config

とすることで、読み込むことができる。上記の記述の下でincludeすれば、デフォルト値を書き換えることができる。 -includeはファイルがなくてもエラーにならないので便利です。上述の各includeファイルもそのほうがよいかもしれません。

roi2:		$(ROI:.roi=.roi2)
pad2:		$(ROI2:.roi2=.pad2)
mrc2d:		$(MRC3D:.mrc3d=.mrc2d)
pad3d:		$(MRC2D:.mrc2d=.pad3d)
corinfo:	$(PAD2:.pad2=.corinfo)
3dlist_part:$(CORINFO:.corinfo=.3dlist_part)
3dlist:		$(3DLIST_PART:.3dlist_part=.3dlist)
3dorglist:	$(3DLIST:.3dlist=.3dorglist)
refined3d:	$(3DORGLIST:.3dorglist=.refined3d)
refinedds6:	$(REFINED3D:.refined3d=.refinedds6)

この部分は、ファイルリストをターゲットにしている部分です。

 

FRAGMENTATION::
	make roi2;	  make ROI2;
$ make FRAGMENTATION

<>


REFINEMENT::
	make MRC3D;	  make ROI;
	make pad2;	  make PAD2;
	make mrc2d;	  make MRC2D;
	make corinfo; make CORINFO;
	make 3dlist_part; make 3DLIST_PART;
	make 3dlist; make 3DLIST;
	make 3dorglist; make 3DORGLIST;
	make refined3d; make REFINED3D;
	make refinedds6; make REFINEDDS6;


ROI:: echo "ROI=\\" > ROI ls -1 *.roi | sed s/roi/roi\\\\/ >> ROI echo "" >> ROI

ROI2:: echo "ROI2=\\" > ROI2 ls -1 *.roi2 | sed s/roi2/roi2\\\\/ >> ROI2 echo "" >> ROI2

MRC3D:: echo "MRC3D=\\" > MRC3D ls -1 *.mrc3d | sed s/mrc3d/mrc3d\\\\/ >> MRC3D echo "" >> MRC3D

PAD2:: echo "PAD2=\\" > PAD2 ls -1 *.pad2 | sed s/pad2/pad2\\\\/ >> PAD2 echo "" >> PAD2

MRC2D:: echo "MRC2D=\\" > MRC2D ls -1 *.mrc2d | sed s/mrc2d/mrc2d\\\\/ >> MRC2D echo "" >> MRC2D

CORINFO:: echo "CORINFO=\\" > CORINFO ls -1 *.corinfo | sed s/corinfo/corinfo\\\\/ >> CORINFO echo "" >> CORINFO

3DLIST_PART:: echo "3DLIST_PART=\\" > 3DLIST_PART ls -1 *.3dlist_part | sed s/3dlist_part/3dlist_part\\\\/ >> 3DLIST_PART echo "" >> 3DLIST_PART

3DLIST:: echo "3DLIST=\\" > 3DLIST ls -1 *.3dlist | sed s/3dlist/3dlist\\\\/ >> 3DLIST echo "" >> 3DLIST

3DORGLIST:: echo "3DORGLIST=\\" > 3DORGLIST ls -1 *.3dorglist | sed s/3dorglist/3dorglist\\\\/ >> 3DORGLIST echo "" >> 3DORGLIST

REFINED3D:: echo "REFINED3D=\\" > REFINED3D ls -1 *.refined3d | sed s/refined3d/refined3d\\\\/ >> REFINED3D echo "" >> REFINED3D

REFINEDDS6:: echo "REFINEDDS6=\\" > REFINEDDS6 ls -1 *.refinedds6 | sed s/refinedds6/refinedds6\\\\/ >> REFINEDDS6 echo "" >> REFINEDDS6

  1. Triming of Noize

CENTERGET: mrcImageCenterGet -i $(SOURCE).mrc3d -o $(SOURCE).centre3d \ -Nx 60 -Ny 60

  1. FRAGMENTATION

.roi.roi2: ((i=1));\ ((Shift=64));\ ((ty=857));\ ((by=729));\ while((by >= 0));\ do \ echo "i=$$i";\ echo "ty=$$ty by=$$by";\ mrcImageROI -i $*.roi -o $*-$$i.roi2\ -r 0.0 $$by 121.0 $$by 121.0 $$ty 0.0 $$ty -m 2;\ ((i++));\ ((ty-=64));\ ((by-=64));\ done

  1. REFINEMENT

.roi2.pad2: mrcImageCenterGet -i $*.roi2 -o $*.roiget mrcImagePad -i $*.roiget -o $*.pad2 \ -W $(PADWIDTH_FORDATA) -H $(PADHEIGHT_FORDATA) \ -m 2 -V 0

.mrc3d.mrc2d: mrc3Dto2D -i $(SOURCE).mrc3d -o $(SOURCE).mrc2d \ -EulerMode $(MODE) -InterpolationMode 0 \ -Rot1 $(rXmin) $(rXmax) $(rXdel) \ -Rot2 $(rYmin) $(rYmax) $(rYdel) \ -Rot3 0 0 5 -m 1

.pad2.corinfo: mrcImageAutoRotationCorrelation -i $*.pad2 -r $(SOURCE).mrc2d \ -O $*.corinfo -fit $*.fit \ -nRot1 $(Xstep) \ -nRot2 $(Ystep) \ -nRot3 $(Zstep) \ -range -5 5 -n 10 -Iter 2 -m 2

  1. -nRot1Area $(Xmin) $(Xmax) $(Xstep) \

-nRot2Area $(Ymin) $(Ymax) $(Ystep) \ -nRot3Area $(Zmin) $(Zmax) $(Zstep) \

.corinfo.3dlist_part: awk 'BEGIN {cor=0} \ {if(cor<$$18){cor=$$18; \ maxRot1=$$3; \ maxRot2=$$4; \ maxRot3=$$5;}} \ END {sub(".corinfo",".fit",FILENAME); \ printf("%s $(MODE) %f %f %f Cor %f\n", FILENAME\ , maxRot1\ , maxRot2\ , maxRot3\ , cor)}'\ $*.corinfo > $*.3dlist_part

.3dlist_part.3dlist: cat $*.3dlist_part >> $(SOURCE).3dlist

.3dlist.3dorglist: awk '{print $$7 " " $$1 " " $$2 " " $$3 " " $$4 " " $$5 " " $$6}' \ $(SOURCE).3dlist | \ sort -r | \ awk '{print $$2 " " $$3 " " $$4 " " $$5 " " $$6 " " $$7 " " $$1}' \ > $(SOURCE).3dorglist

.3dorglist.refined3d: mrc2Dto3D -I $(SOURCE).3dorglist -o $(SOURCE).refined3d \ -InterpolationMode 2 \ -CounterThreshold 1e-6 \ -DoubleCounter $(SOURCE).counter \ -WeightMode 2 \ -Double -m 1

.refined3d.refinedds6: mrc2map -i $(SOURCE).refined3d -o $(SOURCE).refinedds6

DispROIs:: for i in $(ROI) ;\ do \ echo $$i ; \ Display2 -i $$i -Zoom -0.3 -geometry 786x786+0+0 ; \ done </pre>