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