File: RunTest.sh

package info (click to toggle)
cpptraj 5.1.0%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 139,188 kB
  • sloc: cpp: 145,622; ansic: 34,635; sh: 11,365; f90: 971; makefile: 770; awk: 242
file content (176 lines) | stat: -rwxr-xr-x 4,108 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
#!/bin/bash

. ../MasterTest.sh

CleanFiles for.in TRP.vec.dat TRP.rms.dat TRP.CA.dist.dat TRP.tocenter.dat \
           nh.dat rms.nofit.dat last10.dat distance.dat nested.agr \
           EndToEnd0.dat EndToEnd1.dat EndToEnd2.agr temp.*.dat \
           DataOut.dat testset.dist.dat

TESTNAME='Loop tests'
Requires netcdf maxthreads 10

INPUT='-i for.in'
cat > for.in <<EOF
set FNAME= ../tz2.nc
parm ../tz2.parm7
trajin \$FNAME 1 10
for residues T inmask :TRP nvec=1;nvec++
  vector v\$nvec \$T center out TRP.vec.dat
  rms RMS\$T first \$T out TRP.rms.dat
  for atoms A0 inmask @CA
    distance d\$T\$A0 \$T \$A0 out TRP.CA.dist.dat
  done
  distance dcenter\$T \$T :1-12 out TRP.tocenter.dat
done

for atoms A0 inmask :2-4@N atoms A1 inmask :2-4@H
  distance d\$A0\$A1 \$A0 \$A1 out nh.dat
done

rms :1-12&!@H=
for residues MyRes inmask :1-12 r=1;r++
  rms R\$r \$MyRes&!@H= nofit out rms.nofit.dat
done
show

# Print info for the last 10 atoms. This tests using data set values
# as script variables and replacement of multiple script variables
# in a single argument.
set Natom = atoms inmask *
last10 = \$Natom - 10
show
atoms "@\$last10 - \$Natom" out last10.dat
run

EOF
RunCpptraj "$TESTNAME"
DoTest TRP.vec.dat.save TRP.vec.dat
DoTest TRP.rms.dat.save TRP.rms.dat
DoTest TRP.CA.dist.dat.save TRP.CA.dist.dat
DoTest TRP.tocenter.dat.save TRP.tocenter.dat
DoTest nh.dat.save nh.dat
DoTest rms.nofit.dat.save rms.nofit.dat
DoTest last10.dat.save last10.dat

UNITNAME='Test set command'
CheckFor maxthreads 10
if [ $? -eq 0 ] ; then
  cat > for.in <<EOF
parm ../FtuFabI.NAD.TCL.parm7
trajin ../FtuFabI.NAD.TCL.nc

set NATOM = atoms inmask ^1
set NRES = residues inmask ^1
set NMOL = molecules inmask *
show

distance @1 @\$NATOM out testset.dist.dat
distance :1 :\$NRES  out testset.dist.dat
distance ^1 ^\$NMOL  out testset.dist.dat
EOF
  RunCpptraj "$UNITNAME"
  DoTest testset.dist.dat.save testset.dist.dat
fi

UNITNAME='Test reading comma-separated list of strings'
CheckFor maxthreads 4
if [ $? -eq 0 ] ; then
  cat > for.in <<EOF
parm ../tz2.parm7
# Test reading in a comma-separated list of strings
clear trajin
for TRAJ in ../tz2.nc,../tz2.crd,../tz2.pdb,../tz2.rst7
  trajin \$TRAJ lastframe
done
distance D1-12 :1 :12 out distance.dat
run
EOF
  RunCpptraj "$UNITNAME"
  DoTest distance.dat.save distance.dat
fi

UNITNAME='Test nested loops and variables in loops'
cat > for.in <<EOF
parm ../tz2.parm7
trajin ../tz2.nc

set maxval = 4
set maxval1 = 3
set val = 0
for i=1;i<\$maxval;i++ myval=0;myval+=10
  startj = \$i + 1
  for j=\$startj;j<=\$maxval1;j++
    distance d\$i\$j @\$i @\$j out nested.agr
  done
done
run
show
list
EOF
RunCpptraj "$UNITNAME"
DoTest nested.agr nested.agr.save

UNITNAME='Test loop over data set blocks'
CheckFor maxthreads 1
if [ $? -eq 0 ] ; then
  cat > for.in <<EOF
parm ../tz2.parm7

starttraj = 1
endtraj = 10
offset = 10
for i=1;i<=10;i++
  trajin ../tz2.nc \$starttraj \$endtraj
  distance EndToEnd\$endtraj :1 :12
  run
  starttraj = \$starttraj + \$offset
  endtraj = \$endtraj + \$offset
  clear trajin
done
writedata EndToEnd0.dat EndToEnd*

trajin ../tz2.nc 1 100
distance EndToEndAll :1 :12
run

for DS datasetblocks EndToEndAll blocksize 10 i=1;i++
  set WriteVars1 += " \$DS "
  show DS WriteVars1
done
writedata EndToEnd1.dat \$WriteVars1 

for ES datasetblocks EndToEndAll blocksize 10 firstblock 50 cumulative j=\$i;j++
  set WriteVars2 += " \$ES "
  show ES WriteVars2
done
writedata EndToEnd2.agr \$WriteVars2
list
EOF
  RunCpptraj "$UNITNAME"
  DoTest EndToEnd1.dat.save EndToEnd1.dat
  DoTest EndToEnd2.agr.save EndToEnd2.agr
fi

UNITNAME='Test for filename wildcards and oversets'
CheckFor notos windows
if [ $? -eq 0 ] ; then
  cat > for.in <<EOF
for FILE in distance.dat.save,last10.dat.save,doesnot*,TRP.*.dat.save
  readdata \$FILE
done

for SET1 oversets TRP.rms.dat.save* SET2 oversets TRP.tocenter.dat.save* i=1;i++
  show SET1 SET2
  NewSet\$i = \$SET1 + \$SET2
  set DataOut += " NewSet\$i "
done
writedata DataOut.dat \$DataOut
list datasets
EOF
  RunCpptraj "$UNITNAME"
  DoTest DataOut.dat.save DataOut.dat
fi

EndTest
exit 0