Hi Katherine,

You explain some of how you want to do it, but you don't explain what you're trying to do. What is the objective? It may well be that there's an easier way. As a sidenote, create can also make an object with multiple states. Check the help.

Hope it helps,

Tsjerk


On Wed, Dec 18, 2013 at 10:57 PM, Katherine Sippel <katherine.sippel@gmail.com> wrote:
Hi all,

I'm trying to load biological assemblies into my script. From old bulletin board messages I figured out that multiplex=1 would output the biological assembly as different states and objects. I worked out that cmd.group() would give a single object with multiple states. Then cmd.create() would make one object with one state. Unfortunately if you group a monomer with one state it gives you a selection of 0 atoms. There is a whole bunch of arithmetic on the back end of the script crashes with a divide by zero error for the monomeric ones. I thought I'd be smart and use count_states to build a conditional loop but I don't think I"m using it correctly because it isn't passing the multiple states into the loop.

Is there some requirement that I'm missing or not seeing here?

This might be easier to explain if I snip from scripts...

#Outputs the monomers correctly but doesn't account for the biological assembly so I get false negatives

cmd.set("all_states", 1)
for file in glob("*.pdb1"):
    cmd.load(file,'prot')
    cmd.select('allLigands', "het and (not resn HOH)") etc.

#
Outputs the multimers correctly but gives a divide by zero error for the monomers

cmd.set("all_states", 1)
for file in glob("*.pdb1"):

    cmd.load(file,'prot', multiplex =1)
    cmd.group('ens', 'prot'+'*')
    cmd.create('BA', 'ens')
    cmd.select('allLigands', "het and (not resn HOH)") etc.
   
#Outputs the monomers correctly but doesn't pass multimers into the conditional loop. I've also tried moving the cmd.group() before the if loop. That didn't work either.

cmd.set("all_states", 1)
for file in glob("*.pdb1"):
    cmd.load(file,'prot', multiplex=1)
    if cmd.count_states('prot') > 1:
        cmd.group('ens', 'prot')
        cmd.create('BA', 'ens')
        cmd.delete('ens')
    cmd.select('allLigands', "het and (not resn HOH)") etc.

Any help would be appreciated. I swear this is the last time I'll bother you. Thanks again.
Katherine



--
"Nil illegitimo carborundum" - Didactylos

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
PyMOL-users mailing list (PyMOL-users@lists.sourceforge.net)
Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users
Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net



--
Tsjerk A. Wassenaar, Ph.D.