From: Troels E. L. <tl...@gm...> - 2011-08-23 08:48:59
|
Hi. If one writes a pymol script, and calls an external function, the pymol script continues its operation before waiting for the "success" of the external function. Is it possible to give a keyword, so it "waits" for the external function before preceding? Kind of the same function with: fetch 1hp1, async=0 Best Troels |
From: Jason V. <jas...@sc...> - 2011-08-23 13:07:53
|
Hi Troels, Try putting your script inside a 'python' block: python your commands here... python end PyMOL also has a 'sync' command (http://pymolwiki.org/index.php/Sync). I prefer python blocks. Cheers, -- Jason 2011/8/23 Troels Emtekær Linnet <tl...@gm...>: > Hi. > > If one writes a pymol script, and calls an external function, the pymol > script continues its operation before waiting for the "success" of the > external function. > > Is it possible to give a keyword, so it "waits" for the external function > before preceding? > > Kind of the same function with: > fetch 1hp1, async=0 > > Best > Troels > > ------------------------------------------------------------------------------ > Get a FREE DOWNLOAD! and learn more about uberSVN rich system, > user administration capabilities and model configuration. Take > the hassle out of deploying and managing Subversion and the > tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 > > _______________________________________________ > PyMOL-users mailing list (PyM...@li...) > Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users > Archives: http://www.mail-archive.com/pym...@li... > -- Jason Vertrees, PhD PyMOL Product Manager Schrodinger, LLC (e) Jas...@sc... (o) +1 (603) 374-7120 |
From: Martin H. <ma...@bl...> - 2011-08-23 16:07:33
|
you may want to check out the Popen class from the subprocess module... hth Martin On 23.08.11 10:48, Troels Emtekær Linnet wrote: > Hi. > > If one writes a pymol script, and calls an external function, the > pymol script continues its operation before waiting for the "success" > of the external function. > > Is it possible to give a keyword, so it "waits" for the external > function before preceding? > > Kind of the same function with: > fetch 1hp1, async=0 > > Best > Troels > > > ------------------------------------------------------------------------------ > Get a FREE DOWNLOAD! and learn more about uberSVN rich system, > user administration capabilities and model configuration. Take > the hassle out of deploying and managing Subversion and the > tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 > > > _______________________________________________ > PyMOL-users mailing list (PyM...@li...) > Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users > Archives: http://www.mail-archive.com/pym...@li... |
From: Troels E. L. <tl...@gm...> - 2011-08-26 12:00:08
|
Well, I cant get it to work. Pymol speeds ahead of calling propka.propka Can you give an example of subprocess? --------------------------- import propka python resis = [["1bj6","36"],["1bj6","39"]] #resis = [["1bj6","36"],["1bj6","39"],["1bj6","49"],["1ag1","14"],["1gu9","133"],["1gu9","130"],["1omu","56"],["1khg","273"],["2trx","35"], #["1tde","32"],["1tde","35"],["2ovo","56"],["1m8b","56"],["1hic","39"],["1m8c","56"]] i = 0 for resi in resis: cmd.fetch(resi[0],async="0") cmd.refresh() # When we import a module in python, the namespace is normally: module.function # And we see, that propka expect resi to be in "str" format. # And we don't want the logtime function propka.propka(molecule=resi[0],resi=resi[1],logtime=i) cmd.refresh() i = i + 1 python end zoom all hth > Martin > > > On 23.08.11 10:48, Troels Emtekær Linnet wrote: > > Hi. > > If one writes a pymol script, and calls an external function, the pymol > script continues its operation before waiting for the "success" of the > external function. > > Is it possible to give a keyword, so it "waits" for the external function > before preceding? > > Kind of the same function with: > fetch 1hp1, async=0 > > Best > Troels > > > ------------------------------------------------------------------------------ > Get a FREE DOWNLOAD! and learn more about uberSVN rich system, > user administration capabilities and model configuration. Take > the hassle out of deploying and managing Subversion and the > tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 > > > _______________________________________________ > PyMOL-users mailing list (PyM...@li...) > Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users > Archives: http://www.mail-archive.com/pym...@li... > > > > ------------------------------------------------------------------------------ > Get a FREE DOWNLOAD! and learn more about uberSVN rich system, > user administration capabilities and model configuration. Take > the hassle out of deploying and managing Subversion and the > tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 > > _______________________________________________ > PyMOL-users mailing list (PyM...@li...) > Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users > Archives: http://www.mail-archive.com/pym...@li... > |
From: Troels E. L. <tl...@gm...> - 2011-08-28 17:24:36
|
Thanks Jason. But still no luck... So, I changed it to a python script. It was important that the ending of the file is .py :-) But, I can see from the list of objects, that PyMOL fetches the next protein before it has finished propka first. Does pymol run external script in some kind of asynchron mode as default? --------------------------------- import pymol from pymol import cmd import os os.chdir("/homes/linnet/Documents/Speciale/5NT-project/Mutant-construct/predict_reactivity/Comparison/Match") cmd.cartoon("auto") cmd.set("cartoon_fancy_helices","1") cmd.bg_color("white") cmd.set("fog","0") cmd.set("cartoon_transparency","0.7") cmd.set("auto_zoom","off") import propka #resis = [["1bj6","36"],["1bj6","39"],["1bj6","49"],["1ag1","14"],["1gu9","133"],["1gu9","130"],["1omu","56"],["1khg","273"],["2trx","35"], #["1tde","32"],["1tde","35"],["2ovo","56"],["1m8b","56"],["1hic","39"],["1m8c","56"],["1ppo","25"],["1qlp","232"]] resis = [["1ppo","25"],["1qlp","232"]] i = 0 results = [] for p,r in resis: cmd.fetch(p,async="0") cmd.refresh() # When we import a module in python, the namespace is normally: module.function # And we see, that propka expect resi to be in "str" format. # And we don't want the logtime function pkavalues = propka.propka(molecule=p,resi=r,resn="CYS",logtime=i) results.append(pkavalues) cmd.refresh() i = i + 1 cmd.zoom("all") print results[0] print results[1] 2011/8/28 Jason Vertrees <jas...@sc...> > Hi Troels, > > In PyMOL, it you try the following, what happens for you? > > # make this a file called chill.py > import time > def chill(): > rightThisSecond = time.time() > i = 0 > while time.time() < rightThisSecond + 3.0: > i+=1 > print "The farthest I could count in 3 seconds was %d." % i > > # make this a file called troels.py > import pymol > from pymol import cmd > import chill > resis = [ ["1bj6","36"], ["1bj6","39"], ["1bj6","49"], > ["1ag1","14"], > ["1gu9","133"], ["1gu9","130"], ] > for p,r in resis: > # fetch a protein > cmd.fetch(p,async=0) > print "-- Fetched %s" % p > # do something slow > chill.chill() > # some post processing > print "%s has %d atoms" % (p, cmd.count_atoms(p)) > print "%s/%s has %d atoms" % (p, r, cmd.count_atoms("%s and i. %s" % > (p,r))) > cmd.delete(p) > print "-- Deleted protien" > > > Now load PyMOL and try, > > run ~/troels.py > > Does PyMOL wait for the chill calls to finish? The idea is, wrap your > call in a module/file and import it. Then, call through that function. > > It's about 3 AM my time and I'm sure there's a better solution--but > this might work for now. > > Cheers, > > -- Jason > > > > > 2011/8/26 Troels Emtekær Linnet <tl...@gm...>: > > Well, I cant get it to work. > > Pymol speeds ahead of calling propka.propka > > > > Can you give an example of subprocess? > > --------------------------- > > > > import propka > > > > python > > resis = [["1bj6","36"],["1bj6","39"]] > > #resis = > > > [["1bj6","36"],["1bj6","39"],["1bj6","49"],["1ag1","14"],["1gu9","133"],["1gu9","130"],["1omu","56"],["1khg","273"],["2trx","35"], > > > #["1tde","32"],["1tde","35"],["2ovo","56"],["1m8b","56"],["1hic","39"],["1m8c","56"]] > > i = 0 > > for resi in resis: > > cmd.fetch(resi[0],async="0") > > cmd.refresh() > > # When we import a module in python, the namespace is normally: > > module.function > > # And we see, that propka expect resi to be in "str" format. > > # And we don't want the logtime function > > propka.propka(molecule=resi[0],resi=resi[1],logtime=i) > > cmd.refresh() > > i = i + 1 > > python end > > zoom all > > > > > >> hth > >> Martin > >> > >> On 23.08.11 10:48, Troels Emtekær Linnet wrote: > >> > >> Hi. > >> > >> If one writes a pymol script, and calls an external function, the pymol > >> script continues its operation before waiting for the "success" of the > >> external function. > >> > >> Is it possible to give a keyword, so it "waits" for the external > function > >> before preceding? > >> > >> Kind of the same function with: > >> fetch 1hp1, async=0 > >> > >> Best > >> Troels > >> > >> > >> > ------------------------------------------------------------------------------ > >> Get a FREE DOWNLOAD! and learn more about uberSVN rich system, > >> user administration capabilities and model configuration. Take > >> the hassle out of deploying and managing Subversion and the > >> tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 > >> > >> _______________________________________________ > >> PyMOL-users mailing list (PyM...@li...) > >> Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users > >> Archives: http://www.mail-archive.com/pym...@li... > >> > >> > >> > ------------------------------------------------------------------------------ > >> Get a FREE DOWNLOAD! and learn more about uberSVN rich system, > >> user administration capabilities and model configuration. Take > >> the hassle out of deploying and managing Subversion and the > >> tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 > >> > >> _______________________________________________ > >> PyMOL-users mailing list (PyM...@li...) > >> Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users > >> Archives: http://www.mail-archive.com/pym...@li... > > > > > > > ------------------------------------------------------------------------------ > > EMC VNX: the world's simplest storage, starting under $10K > > The only unified storage solution that offers unified management > > Up to 160% more powerful than alternatives and 25% more efficient. > > Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev > > _______________________________________________ > > PyMOL-users mailing list (PyM...@li...) > > Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users > > Archives: http://www.mail-archive.com/pym...@li... > > > > > > -- > Jason Vertrees, PhD > PyMOL Product Manager > Schrodinger, LLC > > (e) Jas...@sc... > (o) +1 (603) 374-7120 > |
From: Martin H. <ma...@bl...> - 2011-08-29 09:54:32
|
Try this. import subprocess # propkaprocess # shell=False controls that the process remains in the same thread. propkap = Popen(['propka'], stdin=open('1pdb.pdb', 'r') stdout=subprocess.PIPE stderr=subprocess.PIPE shell=False) propkap.stdout.read() Martin Hediger On 28.08.11 19:24, Troels Emtekær Linnet wrote: > Thanks Jason. But still no luck... > > So, I changed it to a python script. It was important that the ending > of the file is .py :-) > But, I can see from the list of objects, that PyMOL fetches the next > protein before it has finished propka first. > Does pymol run external script in some kind of asynchron mode as default? > > --------------------------------- > import pymol > from pymol import cmd > import os > os.chdir("/homes/linnet/Documents/Speciale/5NT-project/Mutant-construct/predict_reactivity/Comparison/Match") > > cmd.cartoon("auto") > cmd.set("cartoon_fancy_helices","1") > cmd.bg_color("white") > cmd.set("fog","0") > cmd.set("cartoon_transparency","0.7") > cmd.set("auto_zoom","off") > > import propka > #resis = > [["1bj6","36"],["1bj6","39"],["1bj6","49"],["1ag1","14"],["1gu9","133"],["1gu9","130"],["1omu","56"],["1khg","273"],["2trx","35"], > #["1tde","32"],["1tde","35"],["2ovo","56"],["1m8b","56"],["1hic","39"],["1m8c","56"],["1ppo","25"],["1qlp","232"]] > resis = [["1ppo","25"],["1qlp","232"]] > i = 0 > results = [] > for p,r in resis: > cmd.fetch(p,async="0") > cmd.refresh() > # When we import a module in python, the namespace is normally: > module.function > # And we see, that propka expect resi to be in "str" format. > # And we don't want the logtime function > pkavalues = propka.propka(molecule=p,resi=r,resn="CYS",logtime=i) > results.append(pkavalues) > cmd.refresh() > i = i + 1 > cmd.zoom("all") > print results[0] > print results[1] > > > > 2011/8/28 Jason Vertrees <jas...@sc... > <mailto:jas...@sc...>> > > Hi Troels, > > In PyMOL, it you try the following, what happens for you? > > # make this a file called chill.py > import time > def chill(): > rightThisSecond = time.time() > i = 0 > while time.time() < rightThisSecond + 3.0: > i+=1 > print "The farthest I could count in 3 seconds was %d." % i > > # make this a file called troels.py > import pymol > from pymol import cmd > import chill > resis = [ ["1bj6","36"], ["1bj6","39"], ["1bj6","49"], > ["1ag1","14"], > ["1gu9","133"], ["1gu9","130"], ] > for p,r in resis: > # fetch a protein > cmd.fetch(p,async=0) > print "-- Fetched %s" % p > # do something slow > chill.chill() > # some post processing > print "%s has %d atoms" % (p, cmd.count_atoms(p)) > print "%s/%s has %d atoms" % (p, r, cmd.count_atoms("%s and i. > %s" % (p,r))) > cmd.delete(p) > print "-- Deleted protien" > > > Now load PyMOL and try, > > run ~/troels.py > > Does PyMOL wait for the chill calls to finish? The idea is, wrap your > call in a module/file and import it. Then, call through that function. > > It's about 3 AM my time and I'm sure there's a better solution--but > this might work for now. > > Cheers, > > -- Jason > > > > > 2011/8/26 Troels Emtekær Linnet <tl...@gm... > <mailto:tl...@gm...>>: > > Well, I cant get it to work. > > Pymol speeds ahead of calling propka.propka > > > > Can you give an example of subprocess? > > --------------------------- > > > > import propka > > > > python > > resis = [["1bj6","36"],["1bj6","39"]] > > #resis = > > > [["1bj6","36"],["1bj6","39"],["1bj6","49"],["1ag1","14"],["1gu9","133"],["1gu9","130"],["1omu","56"],["1khg","273"],["2trx","35"], > > > #["1tde","32"],["1tde","35"],["2ovo","56"],["1m8b","56"],["1hic","39"],["1m8c","56"]] > > i = 0 > > for resi in resis: > > cmd.fetch(resi[0],async="0") > > cmd.refresh() > > # When we import a module in python, the namespace is normally: > > module.function > > # And we see, that propka expect resi to be in "str" format. > > # And we don't want the logtime function > > propka.propka(molecule=resi[0],resi=resi[1],logtime=i) > > cmd.refresh() > > i = i + 1 > > python end > > zoom all > > > > > >> hth > >> Martin > >> > >> On 23.08.11 10:48, Troels Emtekær Linnet wrote: > >> > >> Hi. > >> > >> If one writes a pymol script, and calls an external function, > the pymol > >> script continues its operation before waiting for the "success" > of the > >> external function. > >> > >> Is it possible to give a keyword, so it "waits" for the > external function > >> before preceding? > >> > >> Kind of the same function with: > >> fetch 1hp1, async=0 > >> > >> Best > >> Troels > >> > >> > >> > ------------------------------------------------------------------------------ > >> Get a FREE DOWNLOAD! and learn more about uberSVN rich system, > >> user administration capabilities and model configuration. Take > >> the hassle out of deploying and managing Subversion and the > >> tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 > >> > >> _______________________________________________ > >> PyMOL-users mailing list (PyM...@li... > <mailto:PyM...@li...>) > >> Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users > >> Archives: > http://www.mail-archive.com/pym...@li... > >> > >> > >> > ------------------------------------------------------------------------------ > >> Get a FREE DOWNLOAD! and learn more about uberSVN rich system, > >> user administration capabilities and model configuration. Take > >> the hassle out of deploying and managing Subversion and the > >> tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 > >> > >> _______________________________________________ > >> PyMOL-users mailing list (PyM...@li... > <mailto:PyM...@li...>) > >> Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users > >> Archives: > http://www.mail-archive.com/pym...@li... > > > > > > > ------------------------------------------------------------------------------ > > EMC VNX: the world's simplest storage, starting under $10K > > The only unified storage solution that offers unified management > > Up to 160% more powerful than alternatives and 25% more efficient. > > Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev > > _______________________________________________ > > PyMOL-users mailing list (PyM...@li... > <mailto:PyM...@li...>) > > Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users > > Archives: > http://www.mail-archive.com/pym...@li... > > > > > > -- > Jason Vertrees, PhD > PyMOL Product Manager > Schrodinger, LLC > > (e) Jas...@sc... > <mailto:Jas...@sc...> > (o) +1 (603) 374-7120 <tel:%2B1%20%28603%29%20374-7120> > > > > > ------------------------------------------------------------------------------ > EMC VNX: the world's simplest storage, starting under $10K > The only unified storage solution that offers unified management > Up to 160% more powerful than alternatives and 25% more efficient. > Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev > > > _______________________________________________ > PyMOL-users mailing list (PyM...@li...) > Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users > Archives: http://www.mail-archive.com/pym...@li... |