Exemplo n.º 1
0
Input: 
    coords.prmtop ( for number of atoms ) 
    min.data, ts.data, extractedmin, extractedts    
    
Output: 
    storage.sqlite 

"""

# determine number of atoms from prmtop 
prmtop = AmberPrmtopFile( 'coords.prmtop' )  # TOSET 
natoms = prmtop.topology._numAtoms

# open database 
db = Database(db="storage.sqlite")   # TOSET 

def read_coords(filee):
    coords = np.zeros(3*natoms)
    for i in xrange(natoms):
        x = filee.readline().split()
        coords[i*3:i*3+3] = [float(y) for y in x]
    return coords 

# counter to keep track of added minima
mini=1
minima={}

# for timing
tt = t0 = time.time()
Exemplo n.º 2
0
step1 = takestep.AdaptiveStepsize(OXDNATakestep(displace=parameters.displace,
                                                rotate=0.),
                                  frequency=50)
step2 = takestep.AdaptiveStepsize(OXDNATakestep(displace=0.,
                                                rotate=parameters.rotate),
                                  frequency=50)
group.addBlock(100, step1)
group.addBlock(100, step2)
# with a generate random configuration
genrandom = OXDNAReseed()
# in a reseeding takestep procedure
reseed = takestep.Reseeding(group, genrandom, maxnoimprove=parameters.reseed)

# store all minima in a database
db = Database(db="storage.sqlite", accuracy=1e-2)

# create Basinhopping object
opt = BasinHopping(coords,
                   potential,
                   reseed,
                   db.minimum_adder(),
                   temperature=parameters.temperature)

# run for 100 steps
opt.run(parameters.nsteps)

# now dump all the minima
i = 0
for m in db.minima():
    i += 1
Exemplo n.º 3
0
def main():
    # add some program options
    parser = OptionParser(usage="usage: %prog [options] storage")

    parser.add_option(
        "--write-disconnect",
        dest="writeDPS",
        action="store_true",
        help="generate min.dat and ts.dat to use with disconnectDPS")
    parser.add_option("-m",
                      dest="writeMinima",
                      action="store_true",
                      help="dump minima to screen")
    parser.add_option("-t",
                      dest="writeTS",
                      action="store_true",
                      help="dump transition states to screen")
    parser.add_option("--cif",
                      dest="writeCIF",
                      action="store_true",
                      help="export cif files")
    parser.add_option("--cif-dir",
                      dest="cifDir",
                      default=".",
                      action="store",
                      type="string",
                      help="directory to write cifs to")

    (options, args) = parser.parse_args()

    # print help if no input file is given
    if (len(args) != 1):
        parser.print_help()
        exit(-1)

    db = Database(db=args[0])

    if (options.writeMinima):
        print "List of minima:"
        print "---------------"
        for m in db.minima():
            print "%f\t\tid %d" % (m.energy, m._id)
        print "END\n"

    if (options.writeTS):
        print "List of transition states:"
        print "--------------------------"
        for ts in db.transition_states():
            print "%d\t<->\t%d\tid %d\tenergies %f %f %f"%\
                (ts.minimum1._id, ts.minimum2._id, ts._id, ts.minimum1.energy, ts.energy, ts.minimum2.energy)
        print "END\n"

    if (options.writeDPS):
        writeDPS(db)

    if (options.writeCIF):
        GMIN.initialize()
        i = 0
        for m in db.minima():
            i += 1
            filename = options.cifDir + "/lowest%03d.cif" % (i)
            print "minimum", i, "energy", m.energy, "to", filename
            GMIN.writeCIF(filename, m.coords, "E" + str(m.energy))
Exemplo n.º 4
0
    dumpcoords = False
    opts, args = getopt.gnu_getopt(sys.argv[1:], "h",
                                   ["help", "dist", "dump-coords="])
    for o, a in opts:
        if o == "--dist":
            printdist = True
        elif o in ("-h", "--help"):
            print usage
            exit(1)
        elif o == "--dump-coords":
            dumpcoords = True
            id = int(a)
        else:
            assert False, "unhandled option"

    if len(args) == 0:
        print usage
        exit()
    else:
        dbfile = args[0]

    database = Database(dbfile)

    if dumpcoords:
        printCoords(id, database)
        exit(1)

    if printe: printEnergies(database)
    if printts: printTS(database)
    if printdist: printDist(database)