
purge:
	rm -f *.*

initall: purge
	cp mindata/* .
	cp trjdata/* .

####
#### PART I - setting up and running a simulation
####

# Generate topology
# protein is charged +6 !
prep:
	echo -e "2\n" \
	| pdb2gmx -ignh -f bpti.pdb -p bpti.top -o bpti.gro 

# minimization
em:
	grompp -v -f em_vide -c bpti -o em_vide -p bpti
	mdrun  -v -s em_vide -o em_vide -c after_em_vide -g em_videlog

emnrj:
	echo -e "9\n0\n" \
	| g_energy -f ener -o out -w

md:
	grompp -v -f md_vide -o md_vide -c after_em_vide -p bpti
	mdrun -v -s md_vide -e md_vide -o md_vide -c after_md_vide -g flog

mdcheck:
	echo -e "8\n0\n" \
	| g_energy -f md_vide -o pot
	echo -e "35\n0\n" \
	| g_energy -f md_vide -o tem
	xmgrace pot.xvg -graph 1 tem.xvg  -pexec "arrange (2,1,.1,.1,.1,ON,ON,ON)"

####
#### PART II - simulation in water, setup
####

# Make periodic box
box:
	editconf -f bpti -o -d 0.5
	cp bpti.top bpti_w.top
	genbox -cp out -cs -p bpti_w -o b4em

# Energy minimization of the protein in water

emw:
	grompp -v -f em -c b4em -o em -p bpti_w
	mdrun -v -s em -o em -c after_em -g emlog

emnrjw:
	echo -e "9\n0\n" \
	| g_energy -f ener -o out -w

# Add ions to neutralize the total charge of the system
ions:
	tpbconv -s em.tpr -f em.trr -o ion.tpr
	echo -e "12\n" \
	| genion -s ion -o bpti_ion -nname Cl -nn 6 -g bpti_ion

###
### Position restrain protein and equilibrate water
###

ppr:
	echo -e '/\#include \"ffG43a1.itp\"/a \\' \
	> tmp.sed
	echo -e "\#include \"ions.itp\"" \
	>> tmp.sed
	cat bpti_w.top \
	| grep -v SOL \
	| sed -f tmp.sed \
	> bpti_ion.top
	cat bpti_w.top \
	| grep  SOL \
	| awk   '{print $$1 "              " $$2-6}' \
	>> bpti_ion.top
	echo "CL-                 6" \
	>> bpti_ion.top
	grompp -f pr -o pr -c bpti_ion -r bpti_ion -p bpti_ion
#	grompp -np 2 -f pr -o pr -c bpti_ion -r bpti_ion -p bpti_ion

pr:
	mdrun -v -s pr -e pr -o pr -c after_pr -g prlog
#	mpirun C mdrun_mpi -np 2 -v -s pr -e pr -o pr -c after_pr -g prlog

prnrj:
	echo -e "9\n0\n" \
	| g_energy -f pr -o out -w

vpr:
	vmd -e pr.vmd

###
### Molecular dynamics production run
###

mdw:
	grompp -v -f full -o full -c after_pr -p bpti_ion
	mdrun -v -s full -e full -o full -c after_full -g flog


####
#### PART III - Analysis
####

enrj:
	echo -e "4 5 6 7 8 0\n" \
	| g_energy -f full.edr -o energy.xvg
	xg.pl energy.xvg

# show trajectory in VMD
vis:
	vmd -e vis_full.vmd

# calc & vis radius of gyration
gyr:
	echo -e "1\n" \
	| g_gyrate -f full.trr -s full.tpr -o gyrate.xvg
	xg.pl gyrate.xvg

# calc & vis rmsd
rms:
	echo -e "1\n2\n1\n3\n" \
	| g_rms -f full.trr -s full.tpr -o rmsd.xvg
	xg.pl rmsd.xvg

# calc & vis distance matrix
dmat:
	echo -e "3\n" \
	| g_mdmat -f full.trr -s full.tpr -mean dm_average
	xpm2ps -rainbow red -bx 7 -by 7 -f dm_average.xpm -o dm_average.eps
	gv dm_average.eps
#	| g_mdmat -f full.trr -s full.tpr -mean dm_average -frames dm_frame -dt 100 
#	xpm2ps -f dm_frame.xpm -o dm_frame.eps
#	gv dm_frame.eps

# calc & vis second
dssp:
	echo -e "5\n" \
	| do_dssp -f full.trr -s full.tpr
	xg.pl scount.xvg &
	xpm2ps -by 3 -bx 2 -f ss.xpm -o ss.eps
	gv ss.eps

# calc full rama plot, then show 2 examples
rama:
	g_rama -f full.trr -s full.tpr -o rama.xvg
	egrep "(ARG-20|@)" rama.xvg > rama_ARG20.xvg
	egrep "(CYS2-38|@)" rama.xvg > rama_CYS2.xvg
	xmgrace rama_ARG20.xvg &
	xmgrace  rama_CYS2.xvg

# how to visualize ??

rama2:
	xrama -f full.trr -s full.tpr

#more after_full.gro|egrep "(  N  |  H  )"|egrep "^   ( 3|14|38|51|58)"
corr:
	g_rotacf -f full.trr -s full.tpr -n NH_3 -o NH_3_ACF.xvg -d
	g_rotacf -f full.trr -s full.tpr -n NH_14 -o NH_14_ACF.xvg -d
	g_rotacf -f full.trr -s full.tpr -n NH_38 -o NH_38_ACF.xvg -d
	g_rotacf -f full.trr -s full.tpr -n NH_51 -o NH_51_ACF.xvg -d
	g_rotacf -f full.trr -s full.tpr -n NH_58 -o NH_58_ACF.xvg -d
	xmgrace NH_14_ACF.xvg NH_38_ACF.xvg NH_3_ACF.xvg NH_51_ACF.xvg NH_58_ACF.xvg

#more after_full.gro |grep 38CYS|egrep "(N|CA|CB|SG)"
corr2:
	g_angle -f full.trr -s full.tpr -n C38_chi1 -oc C38_chi1_corr -ov C38_chi1_average -type dihedral -binwidth 0.5 -od C38_chi1_distribution
	xmgrace -pexec "arrange (3,1,.1,.1,.6,ON,ON,ON)" -nxy C38_chi1_distribution.xvg -graph 1 C38_chi1_corr.xvg -graph 2 C38_chi1_average.xvg



# g_saltbr
# g_traj

# maybe ? maybe not ?
# g_enemat
