Here is an old script, but Kevin Cowtan has now improved MAPROT so that it is not necessary to generate the bigdummycell.mtz to pass a pseudo-cell to maprot.

#!/bin/csh -f
goto rot
goto 2
###########################################################
#
# There are lots of alternative ways of getting a masked block of
density.
#  You first need a mask.
# This is the simplest technique I have used..

# Another way is to edit bones, then use bones_to_pdb to write out a
file of
# coordinates, and use ncsmask with that set, and the default atom
radius.
#  ( 3A I think..)
#
####################################################################
#  Make a spherical mask centred at the centroid of the chosen block of 
#  density.
#  You need to choose a volume completely contained within the P1 cell; 
#  ie all parts have coordinates between 0 and 1.
# This is important later on for the amore translation.
#   By choosing the right symmetry operator, I have always managed to do 
#  this.. although sometimes the block radius has had to be restricted a
bit.
#  This doesnt seem to matter - you will have most of the molecular
volume..
###########################################################
#  P65_block_com.pdb 
# REMARK COM of a pva block - 18A radii 
#REMARK X: 22to55/103 Y; 22to62/102 Z; 60 to 89/96 
#CRYSTL  208.400  208.400   96.200  90.00  90.00 120.00    P65
#SCALE1      0.004798  0.002770  0.000000       0.000000
#SCALE2      0.000000  0.005541  0.000000       0.000000
#SCALE3      0.000000  0.000000  0.010395       0.000000
#ATOM xcent Ycent Zcent
#
ncsmask \
xyzin ./P65_block_com.pdb \
mskout $SCRATCH/P65_block_com.msk \
<<eof
#  I have taken a 1A grid.
GRID  204  204   96
AXIS   Y    X    Z
RADIUS 18
END
eof
exit
#
2:
###########################################################
#3) extend the  DM map to the same limits as the msk;
#   you will have to look at the log of Step 1.
#  ( You can get the mask grid by typing 
#     prmap mapin $SCRATCH/P65_block_com.msk )
###########################################################
mapmask \
mapin /y/work2/suresh//nat3_au5_hg2_dm.map \
mapout $SCRATCH//nat3_au5_hg2_dm.ext \
<< eof
XYZLIM  57  93    62 101    56 91
END
eof
exit
rot:
###########################################################
#    Generate a pseudo map in a big cell to act as a "model" for maprot 
#    you will want to generate a list of structure factors 
#    on a fine grid for Amore, and this requires a big cell.
#    There must be other ways of doing it but this works..
#
# You will have to choose this cell sensibly, look at other amore
# TABFUN outputs for guidance
# Must be at least double the density block size
#
#  bigdummycell.pdb  - a dummy cell with only one atom
#  CRYSTL  120.000  120.000  120.000  90.00  90.00  90.00    1
#  REMARK CRYSTAL 259.992  250.904  125.504  90.00  90.00  90.00
#  ATOM      1  CB  ALA    13  1    1.974   3.548   9.307  1.00 61.57  
6
#
sfall \
xyzin ./bigdummycell.pdb \
mapout $SCRATCH/bigdummymap.map \
<<eof
MODE ATMMAP
#SCALE 0.0
SYMM P1
GRID 300 300 300
END
eof

###########################################################
#   Now the tricky bit - put the "good" density in the big P1 cell:
#   This takes a lot of core and crashes my little Indy!
#
rot2:
maprot \
mapin  $SCRATCH/bigdummymap.map \
wrkin $SCRATCH//nat3_au5_hg2_dm.ext \
mskin $SCRATCH/P65_block_com.msk \
mapout $SCRATCH/nat3_au5_hg2_dm_cent_bigdummycell.map \
<<eof
# "MODE TO" moves the WRKIN map ( after masking with MSKIN) to the MAPIN
grid.
MODE TO
#  No averaging; this is the identity..
SYMM P1
AVERAGE 1
ROTATE EULER 0 0 0
TRANS 0 0 0

END
eof
#
#
###########################################################
#
#  Generate structure factors from this density ready for Amore
# Then delete the *bigdummy*maps - they are HUGE..
3:
sfall \
mapin  $SCRATCH/nat3_au5_hg2_dm_cent_bigdummycell.map \
hklout $SCRATCH/nat3_au5_hg2_dm_cent_bigdummycell.mtz \
<<eof
MODE SFCALC MAPIN
SYMM P1
RESO 37 2.5
LABO FC=FC1 PHIC=PHIC1
END
eof

#
#  Now run new Amore to read these SFS in and generatethe TABLE
#####################################################3
#    sorting run:
#####################################################3
#  mtz file contains cell and symmetry.
#
amore \
hklin $SCRATCH/nat3_au5_hg2_dm_cent_bigdummycell.mtz \
table1 $SCRATCH/nat3_au5_hg2_dm_cent_bigdummycell.tab  \
<<'END'
VERBOSE
TITLE   ** packing h k l F for crystal**

SORTFUN MODEL 100 3
LABI FC=FC1  PHIC=PHIC1
'END'

#
#
#!/bin/csh -f
goto rot
goto 2
###########################################################
#
# There are lots of alternative ways of getting a masked block of
density.
#  You first need a mask.
# This is the simplest technique I have used..

# Another way is to edit bones, then use bones_to_pdb to write out a
file of
# coordinates, and use ncsmask with that set, and the default atom
radius.
#  ( 3A I think..)
#
####################################################################
#  Make a spherical mask centred at the centroid of the chosen block of 
#  density.
#  You need to choose a volume completely contained within the P1 cell; 
#  ie all parts have coordinates between 0 and 1.
# This is important later on for the amore translation.
#   By choosing the right symmetry operator, I have always managed to do 
#  this.. although sometimes the block radius has had to be restricted a
bit.
#  This doesnt seem to matter - you will have most of the molecular
volume..
###########################################################
#  P65_block_com.pdb 
# REMARK COM of a pva block - 18A radii 
#REMARK X: 22to55/103 Y; 22to62/102 Z; 60 to 89/96 
#CRYSTL  208.400  208.400   96.200  90.00  90.00 120.00    P65
#SCALE1      0.004798  0.002770  0.000000       0.000000
#SCALE2      0.000000  0.005541  0.000000       0.000000
#SCALE3      0.000000  0.000000  0.010395       0.000000
#ATOM xcent Ycent Zcent
#
ncsmask \
xyzin ./P65_block_com.pdb \
mskout $SCRATCH/P65_block_com.msk \
<<eof
#  I have taken a 1A grid.
GRID  204  204   96
AXIS   Y    X    Z
RADIUS 18
END
eof
exit
#
2:
###########################################################
#3) extend the  DM map to the same limits as the msk;
#   you will have to look at the log of Step 1.
#  ( You can get the mask grid by typing 
#     prmap mapin $SCRATCH/P65_block_com.msk )
###########################################################
mapmask \
mapin /y/work2/suresh//nat3_au5_hg2_dm.map \
mapout $SCRATCH//nat3_au5_hg2_dm.ext \
<< eof
XYZLIM  57  93    62 101    56 91
END
eof
exit
rot:
###########################################################
#    Generate a pseudo map in a big cell to act as a "model" for maprot 
#    you will want to generate a list of structure factors 
#    on a fine grid for Amore, and this requires a big cell.
#    There must be other ways of doing it but this works..
#
# You will have to choose this cell sensibly, look at other amore
# TABFUN outputs for guidance
# Must be at least double the density block size
#
#  bigdummycell.pdb  - a dummy cell with only one atom
#  CRYSTL  120.000  120.000  120.000  90.00  90.00  90.00    1
#  REMARK CRYSTAL 259.992  250.904  125.504  90.00  90.00  90.00
#  ATOM      1  CB  ALA    13  1    1.974   3.548   9.307  1.00 61.57  
6
#
sfall \
xyzin ./bigdummycell.pdb \
mapout $SCRATCH/bigdummymap.map \
<<eof
MODE ATMMAP
#SCALE 0.0
SYMM P1
GRID 300 300 300
END
eof

###########################################################
#   Now the tricky bit - put the "good" density in the big P1 cell:
#   This takes a lot of core and crashes my little Indy!
#
rot2:
maprot \
mapin  $SCRATCH/bigdummymap.map \
wrkin $SCRATCH//nat3_au5_hg2_dm.ext \
mskin $SCRATCH/P65_block_com.msk \
mapout $SCRATCH/nat3_au5_hg2_dm_cent_bigdummycell.map \
<<eof
# "MODE TO" moves the WRKIN map ( after masking with MSKIN) to the MAPIN
grid.
MODE TO
#  No averaging; this is the identity..
SYMM P1
AVERAGE 1
ROTATE EULER 0 0 0
TRANS 0 0 0

END
eof
#
#
###########################################################
#
#  Generate structure factors from this density ready for Amore
# Then delete the *bigdummy*maps - they are HUGE..
3:
sfall \
mapin  $SCRATCH/nat3_au5_hg2_dm_cent_bigdummycell.map \
hklout $SCRATCH/nat3_au5_hg2_dm_cent_bigdummycell.mtz \
<<eof
MODE SFCALC MAPIN
SYMM P1
RESO 37 2.5
LABO FC=FC1 PHIC=PHIC1
END
eof

#
#  Now run new Amore to read these SFS in and generatethe TABLE
#####################################################3
#    sorting run:
#####################################################3
#  mtz file contains cell and symmetry.
#
amore \
hklin $SCRATCH/nat3_au5_hg2_dm_cent_bigdummycell.mtz \
table1 $SCRATCH/nat3_au5_hg2_dm_cent_bigdummycell.tab  \
<<'END'
VERBOSE
TITLE   ** packing h k l F for crystal**

SORTFUN MODEL 100 3
LABI FC=FC1  PHIC=PHIC1
'END'

#
#