clearing the "rank" property also works for me, then the script should not
depend on retain_order anymore:
currentName = "%s_%s" % (solutionPymolString, currentChain)
cmd.alter(currentName, "chain='%s';rank=-1" % currentChain)
However, I think there is also a problem with your script, you're creating
copies of copies, every iteration will pick up the previously created chains
and create another copy of the whole thing. Creating the copies in a new object
will fix this:
newPymolString = 'newobj'
cmd.create(newPymolString, "none")
angle = 360.0/monomers
chains = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
"O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
for i in range(1, monomers):
currentChain = chains[i]
currentName = "%s_%s" % (solutionPymolString, currentChain)
cmd.create(currentName, solutionPymolString, 1, 1)
cmd.rotate([1, 0, 0], i * angle, currentName, 1, 0, None, [0, 0, 0])
cmd.alter(currentName, "chain='%s';rank=-1" % currentChain)
cmd.create(newPymolString, newPymolString + ' or ' + currentName, 1, 1)
cmd.delete(currentName)
Cheers,
Thomas
On 01 Mar 2017, at 14:10, Thomas Holder <[email protected]> wrote:
> Hi Gregor,
>
> Looks like retain_order is on for her. This should fix it:
>
> PyMOL> set retain_order, off
>
> https://pymolwiki.org/index.php/Retain_order
>
> Cheers,
> Thomas
>
> On 01 Mar 2017, at 10:28, Gregor Hagelüken <[email protected]> wrote:
>
>> Hi,
>>
>> I use a python script to copy an object, rotate it, alter its chain ID and
>> then merge it with the original object.
>> Here is the relevant part of my script:
>>
>> angle = 360.0/monomers
>> chains = ["A", "B", "C", "D", "E", "F", "G", "H", "I",
>> "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X",
>> "Y", "Z"]
>> for i in range(1, monomers):
>> currentChain = chains[i]
>> cmd.create("%s_%s" %(solutionPymolString,
>> currentChain), solutionPymolString, 1, 1)
>> cmd.rotate([1, 0, 0], i * angle, "%s_%s"
>> %(solutionPymolString, currentChain), 1, 0, None, [0, 0, 0])
>> cmd.alter("%s_%s" %(solutionPymolString,
>> currentChain), "chain='%s'" %currentChain)
>> cmd.create("%s" %(solutionPymolString), "%s or
>> %s_%s" %(solutionPymolString, solutionPymolString, currentChain), 1, 1)
>> cmd.delete("%s_%s" %(solutionPymolString,
>> currentChain))
>>
>> This works fine with PyMOL 1.8.3 and 1.8.5 on my computer (macOS Sierra).
>>
>> I have given the script to another person and for her it produces a very
>> strange result.
>> The resulting structure is only visible in lines or sticks mode. And it
>> looks like this in the sequence viewer:
>> <PastedGraphic-2.tiff>
>>
>> She used the same input structure as I did but she has PyMOL 1.8.4 and uses
>> Windows. Could this be a PyMOL bug?
>>
>> Cheers,
>> Gregor
>
> --
> Thomas Holder
> PyMOL Principal Developer
> Schrödinger, Inc.
--
Thomas Holder
PyMOL Principal Developer
Schrödinger, Inc.
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
PyMOL-users mailing list ([email protected])
Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users
Archives: http://www.mail-archive.com/[email protected]