1#  _________________________________________________________________________
2#
3#  Acro: A Common Repository for Optimizers
4#  Copyright (c) 2008 Sandia Corporation.
5#  This software is distributed under the BSD License.
6#  Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
7#  the U.S. Government retains certain rights in this software.
8#  For more information, see the README.txt file in the top Acro directory.
9#  _________________________________________________________________________
10
11import sys
12from random import *
13
14numAminoAcids=20
15numRotamers=4
16
17def energy():
18  return -1.0
19
20numPeptides = eval(sys.argv[1])
21ofilename = sys.argv[2]
22
23ofile = open(ofilename,'w')
24
25ofile.write("#\n")
26ofile.write("# Generated by gendata\n")
27ofile.write("# This file assumes that all rotamers are represented at all\n")
28ofile.write("# positions.  However, the input format can allow for a \n")
29ofile.write("# flexible representation, since each rotamer is labeled\n")
30ofile.write("# with the corresponding amino acid label.\n")
31ofile.write("#\n")
32ofile.write("\n")
33
34ofile.write("#\n")
35ofile.write("# Number of peptides\n")
36ofile.write("#\n")
37ofile.write("param n := " + `numPeptides` + ";\n")
38ofile.write("\n")
39
40ofile.write("#\n")
41ofile.write("# The amino acids that are considered for each side chain site\n")
42ofile.write("#\n")
43ofile.write("set ValidAminoAcids := \n")
44for i in range(0,numPeptides):
45  for j in range(0,20):
46    ofile.write("(" + `i+1` + "," + `j+1` + ")\n")
47ofile.write(";\n")
48ofile.write("\n")
49
50ofile.write("#\n")
51ofile.write("# Boltzman Protein-Rotamer energies\n")
52ofile.write("#\n")
53ofile.write("param B_inter := [*,*]\n")
54for i in range(0,numPeptides):
55  for j in range(0,20):
56    val = energy()
57    ofile.write(`i+1` + " " + `j+1` + " " + `val` + "\n")
58ofile.write(";\n")
59ofile.write("\n")
60
61ofile.write("#\n")
62ofile.write("# Boltzman Rotamer-Rotamer energies\n")
63ofile.write("#\n")
64ofile.write("param B_intra := [*,*,*,*]\n")
65for i in range(0,numPeptides):
66  for j in range(0,20):
67    for ii in range(0,numPeptides):
68      for jj in range(0,20):
69        if i < ii:
70	   val = energy()
71           ofile.write(`i+1` + " " + `j+1` + " " + `ii+1` + " " + `jj+1` + " " + `val` + "\n")
72ofile.write(";\n")
73ofile.write("\n")
74
75ofile.write("#\n")
76ofile.write("# Number of rotamers for each peptide\n")
77ofile.write("#\n")
78ofile.write("param rCount := \n")
79total=0
80for i in range(0,numAminoAcids):
81  total=total+numRotamers+i
82for i in range(0,numPeptides):
83  ofile.write(`i+1` + " " + `total` + "\n")
84ofile.write(";\n")
85ofile.write("\n")
86
87
88ofile.write("#\n")
89ofile.write("# Protein-Rotamer energies and Rotamer amino acid labels\n")
90ofile.write("#\n")
91ofile.write("param: ValidInterIndicesRR: E_inter RotamerLabel :=\n")
92for i in range(0,numPeptides):
93  k = 0
94  next = numRotamers
95  aa = 1
96  for j in range(0,total):
97    val = energy()
98    ofile.write(`i+1` + " " + `j+1` + " " + `val` + " " + `aa` + "\n")
99    k = k+1
100    if k == next:
101       next = next + numRotamers+aa
102       aa = aa + 1
103ofile.write(";\n")
104ofile.write("\n")
105
106ofile.write("#\n")
107ofile.write("# Rotamer-Rotamer energies\n")
108ofile.write("#\n")
109ofile.write("param: ValidIntraIndicesRR: E_intra := \n")
110for i in range(0,numPeptides):
111  for j in range(0,total):
112    for ii in range(0,numPeptides):
113      for jj in range(0,total):
114        if i < ii:
115	   val = energy()
116           ofile.write(`i+1` + " " + `j+1` + " " + `ii+1` + " " + `jj+1` + " " + `val` + "\n")
117ofile.write(";\n")
118ofile.write("\n")
119
120
121