Hello,
I'm new to modeller and I'm eventually trying to make several hundred models using multiple cpus, however it seems I can't change anything in my script except number of models without causing the system to break and not work. No error pops up, it simply says the task completed instantaneously, doesn't make any models, and doesn't pop up the ok_model window. My script is below
from modeller import * from modeller.automodel import *
# ---------------------- namelist.dat -------------------------------- # A "namelist.dat" file contains the file names, which was output from # the Modeller dialog in Chimera based on user's selection. # The first line it the name of the target sequence, the remaining # lines are name of the template structures namelist = open( 'namelist.dat', 'r' ).read().split('\n') tarSeq = namelist[0] template = tuple( [ x.strip() for x in namelist[1:] if x != '' ] ) # ---------------------- namelist.dat --------------------------------
# This instructs Modeller to display all log output. log.verbose()
# create a new Modeller environment env = environ()
# Directory of atom/PDB/structure files. It is a relative path, inside # a temp folder generated by Chimera. User can modify it and add their # absolute path containing the structure files. env.io.atom_files_directory = ['.', './template_struc']
# create a subclass of automodel or loopmodel, MyModel. # user can further modify the MyModel class, to override certain routine. class MyModel(automodel): def customised_function(self): pass #code overrides the special_restraints method
#def special_restraints(self, aln):
#code overrides the special_patches method. # e.g. to include the addtional disulfides. #def special_patches(self, aln):
a = MyModel(env, sequence = tarSeq, # alignment file with template codes and target sequence alnfile = 'alignment.ali', # PDB codes of the templates knowns = template) # index of the first model a.starting_model = 1 # index of the last model a.ending_model = 5 loopRefinement = False
# Assesses the quality of models using # the DOPE (Discrete Optimized Protein Energy) method (Shen & Sali 2006) # and the GA341 method (Melo et al 2002, John & Sali 2003) a.assess_methods = (assess.GA341, assess.normalized_dope)
# ------------------------- build all models -------------------------- a.make()
I've tried changing the MyModel part to just be automodel, because I was told it was a custom subclass and needed special treatment, which broke the code. I also tried changing the knowns = template to knowns = my template ID. It also broke the code. Thanks.
On 6/11/20 4:01 PM, Casey Becker via modeller_usage wrote: > I'm new to modeller and I'm eventually trying to make several hundred > models using multiple cpus, however it seems I can't change anything in > my script except number of models without causing the system to break > and not work. No error pops up, it simply says the task completed > instantaneously, doesn't make any models, and doesn't pop up the > ok_model window.
Sorry, but nobody will be able to help you if you just say it "doesn't work". You will always get a Python exception if you introduce an error - there are simply no cases I can think of where "nothing" happens. I am a bit puzzled by your talk of windows popping up - Modeller is a command line tool so any output you receive will be in the terminal, not a separate window. How are you running your script?
BTW, your Python script is not correctly indented. It will certainly not work in this form. Perhaps your mail client mangled it, in which case it would make more sense to add it as an attachment rather than pasting it into your mail.
Ben Webb, Modeller Caretaker
participants (2)
-
Casey Becker
-
Modeller Caretaker