1o9u.pdb (Renum - 1, Water & Ligand Remove) : 1. Extract The Residues Sequence by Using The Following Script
1o9u.pdb (Renum - 1, Water & Ligand Remove) : 1. Extract The Residues Sequence by Using The Following Script
e = Environ()
m = Model(e, file=code)
aln = Alignment(e)
aln.append_model(m, align_codes=code)
aln.write(file=code+'.pir')
Result-
env = Environ()
aln = Alignment(env)
mdl = Model(env, file='1o9u', model_segment=('FIRST:@','END:'))
aln.append_model(mdl, align_codes='1o9u', atom_files='1o9u.pdb')
aln.append(file='1o9u_bjoin.pir', align_codes='1o9u_bjoin')
aln.align2d()
aln.write(file='alignment.ali', alignment_format='PIR')
Result-
log.verbose()
# Residues 4, 6, 10 in chain A:
# return Selection(self.residues['4:A'], self.residues['6:A'],
# self.residues['10:A'])
env = Environ()
# directories for input atom files
env.io.atom_files_directory = ['.', '../atom_files']
# selected atoms do not feel the neighborhood
env.edat.nonbonded_sel_atoms = 2
Result-
1o9u_bjoin.B99990003.pdb
#
# mutate_model.py
#
# Usage: python mutate_model.py modelname respos resname chain > logfile
#
# Example: python mutate_model.py 1t29 1699 LEU A > 1t29.log
#
#
# Creates a single in silico point mutation to sidechain type and at residue position
# input by the user, in the structure whose file is modelname.pdb
# The conformation of the mutant sidechain is optimized by conjugate gradient and
# refined using some MD.
#
# Note: if the model has no chain identifier, specify "" for the chain argument.
#
#molecular dynamics
def refine(atmsel):
# at T=1000, max_atom_shift for 4fs is cca 0.15 A.
md = MolecularDynamics(cap_atom_shift=0.39, md_time_step=4.0,
md_return='FINAL')
init_vel = True
for (its, equil, temps) in ((200, 20, (150.0, 250.0, 400.0, 700.0, 1000.0)),
(200, 600,
(1000.0, 800.0, 600.0, 500.0, 400.0, 300.0))):
for temp in temps:
md.optimize(atmsel, init_velocities=init_vel, temperature=temp,
max_iterations=its, equilibrate=equil)
init_vel = False
#first argument
modelname, respos, restyp, chain, = sys.argv[1:]
log.verbose()
env.io.hetatm = True
#soft sphere potential
env.edat.dynamic_sphere=False
#lennard-jones potential (more accurate)
env.edat.dynamic_lennard=True
env.edat.contact_shell = 4.0
env.edat.update_dynamic = 0.39
# Read the original PDB file and copy its sequence to the alignment array:
mdl1 = Model(env, file=modelname)
ali = Alignment(env)
ali.append_model(mdl1, atom_files=modelname, align_codes=modelname)
# Transfer all the coordinates you can from the template native structure
# to the mutant (this works even if the order of atoms in the native PDB
# file is not standard):
#here we are generating the model by reading the template coordinates
mdl1.transfer_xyz(ali)
#required to do a transfer_res_numb
#ali.append_model(mdl2, atom_files=modelname, align_codes=modelname)
#transfers from "model 2" to "model 1"
mdl1.res_num_from(mdl2,ali)
#It is usually necessary to write the mutated sequence out and read it in
#before proceeding, because not all sequence related information about MODEL
#is changed by this command (e.g., internal coordinates, charges, and atom
#types and radii are not updated).
mdl1.write(file=modelname+restyp+respos+'.tmp')
mdl1.read(file=modelname+restyp+respos+'.tmp')
sched = autosched.loop.make_for_model(mdl1)
#only optimize the selected residue (in first pass, just atoms in selected
#residue, in second pass, include nonbonded neighboring atoms)
#set up the mutate residue selection segment
s = Selection(mdl1.chains[chain].residues[respos])
mdl1.restraints.unpick_all()
mdl1.restraints.pick(s)
s.energy()
s.randomize_xyz(deviation=4.0)
mdl1.env.edat.nonbonded_sel_atoms=2
optimize(s, sched)
#feels environment (energy computed on pairs that have at least one member
#in the selected)
mdl1.env.edat.nonbonded_sel_atoms=1
optimize(s, sched)
s.energy()
Result-
1o9u_bjoin.B99990003GLY232.pdb
5. Loop refinement
log.verbose()
env = Environ()
m = MyLoop(env,
inimodel='1o9u_bjoin.B99990003GLY232.pdb', # initial model of the target
sequence='1o9u_bjoin', # code of the target
loop_assess_methods=assess.DOPE) # assess loops with DOPE
# loop_assess_methods=soap_loop.Scorer()) # assess with SOAP-Loop
m.make()
Result-
1o9u_bjoin.BL00230001.pdb
DOPE Score = -1349.11682
RMSD = 0.00