Home Linus Helper Programs Examples File Descriptions Index

Sample LINUS Run Files

 

Minimal Run File

Multiple Simulation Run File

Read Weights Run File

Read Mesostate Run File

All Options Run File


LINUS

 

This example LINUS run file contains all the available options with annotation.

Make a copy of this file in your working directory and edit appropriately for your case.


from pylinus_1_0 import linusSim, ran

def gen_seeds():
    from random import uniform
    s1 = long(uniform(1.0, ran.M1))
    s2 = long(uniform(1.0, ran.M1))
    s3 = long(uniform(1.0, ran.M1))
    s4 = long(uniform(1.0, ran.M2))
    s5 = long(uniform(1.0, ran.M2))
    s6 = long(uniform(1.0, ran.M2))
    return s1, s2, s3, s4, s5, s6

#Note extra msfile argument here
def run(file, seed=None, msfile=None):
    if seed is None:
        gen = apply(ran.generator, gen_seeds())
    else:
        gen = apply(ran.generator, seed)
        
    sim = linusSim.Linus(file, gen)

#Here is where the ms file is
    if msfile is not None:
        msfile = os.path.abspath(msfile)
        sim.load_mesostates(msfile)
    
#Beginning of parameter section 

#Default conformational weights = "smart move set"
    sim.set_weights("helix", 0.25,"all")
    sim.set_weights("strand", 0.25,"all")
    sim.set_weights("turn1", 0.125,"all")
    sim.set_weights("turn2", 0.125,"all")
    sim.set_weights("coil", 0.25,"all")

#Next command is only necessary if above do not total 1.0
    sim.normalize_weights()

#Save structures every 100 cycles
    sim.set_simulation_parameters(numsave=100, 
                                  numcycle=1000,
                                  write_rc=0,
#Set temperature to 25 degC with beta=2.0
# (a beta=2.8 is approximately 4 degC)
                                  beta=2.0, 
                                  updateweights=1, 
                                  trials=1, 
                                  reset_conformation=0)
    sim.set_hbond_parameters(use_hbond=1, 
                             hbond_distance=3.5,
                             hbond_probe=1.5,
                             hbond_score_short=0.5,
                             hbond_score_long=1.0,
                             hbond_torsion=140.0,
                             hbond_winmin=2,
                             hbond_winmax=6,
                             use_sidechain_hbond=1,
                             sidechain_hbond_distance=3.5,
                             sidechain_hbond_score=1.0,
                             sidechain_hbond_torsion=140.0,
                             use_hbs_local=0)
    sim.set_contact_parameters(use_contact=1, 
                               contact_probe=2.8, 
                               contact_scale=1.0,
                               contact_winmin=2,
                               contact_winmax=6)
    sim.set_torsion_parameters(use_torsion= 1,
                                torsion_penalty= 1.0)
    sim.set_chasa_parameters(use_chasa=0)

#Include next line only if there is a "weights" file
    sim.read_weights_from_file('weights')
#End of parameter section

#Run simulation in two stages with local interactions only in first
# and super-secondary structure interactions in second
#Weights and conformation from first stage carried over to second
    for delta in (6, 18):
        sim.set_hbond_parameters(hbond_winmax=delta)
        sim.set_contact_parameters(contact_winmax=delta)
        sim.run()

if __name__ == "__main__":

#Use JIT compiler if it is available
    try:
        import psyco
    except ImportError:
        pass
    else:
        psyco.bind(run)  
    import sys, os

#Name of PDB file
    filename = sys.argv[1]

#Look for name of ms file
    try:
        msfile = sys.argv[2]

#If no msfile label it None
    except IndexError:
        msfile = None

#If there is an msfile get full path
    else:
        msfile = os.path.abspath(msfile)
    basedir = os.getcwd()

#Full path of PDB file
    file = os.path.basename(filename)

#Do 5 separate simulations and put output of each in different 
# subdirector, sim_1, sim_2, etc.
#Each new simulation starts with default conformational weights (or from "weights" file)
# and structure in initial PDB file
    for i in range(5):
        curdir = basedir + os.sep + 'sim_' + `i+1`
        os.mkdir(curdir)
        os.link(filename, curdir+os.sep+file)

#Include next line only if there is a "weights" file
        os.link('weights', curdir+os.sep+'weights')
        os.chdir(curdir)
        run(file, msfile=msfile)