From: <gre...@un...> - 2005-08-08 10:38:35
|
Hello List, =20 Maybe useful, maybe not=85 Here is a small py script for filling = nucleotides with colored CGO objects. I just tried it on the pdb file 127D. Of course not as efficient as Nuccyl!!! But I couldn=92t find out how to = run perl scripts on my Windows-running PC, and this is exactly (and only) = what I needed. =20 Just run the script, and type =91DrawNT=92 in the PyMol command line. =20 Cheers, Greg =20 =20 =20 =20 =20 from pymol import cmd from pymol.cgo import * from Numeric import * import sys,re =20 # COLOR SETTINGS: AColor=3D[0.2,1,0.2] TColor=3D[1,0.2,0.2] CColor=3D[0.3,0.3,1] GColor=3D[1,0.55,0.15] =20 def DrawNT(select=3D"all"): CurrentView =3D cmd.get_view(1) CurrentResi =3D 0 FirstRun =3D 1 NTPlate =3D [BEGIN,TRIANGLE_FAN] =20 # THYMINE BaseT =3D cmd.get_model("resn T") for atoms in BaseT.atom: if (CurrentResi !=3D atoms.resi): CurrentResi =3D atoms.resi if FirstRun =3D=3D 0: NTPlate.append(END) NTPlate.extend([BEGIN,TRIANGLE_FAN]) NTPlate.extend([COLOR]+TColor) else: NTPlate.extend([COLOR]+TColor) FirstRun =3D 0 if (atoms.name =3D=3D "N1") or (atoms.name =3D=3D "C2") or = (atoms.name =3D=3D "N3") or (atoms.name =3D=3D "C4") or (atoms.name =3D=3D "C5") or = (atoms.name =3D=3D "C6"): =20 NTPlate.extend([VERTEX] + atoms.coord) =20 # ADENINE BaseA =3D cmd.get_model("resn A") for atoms in BaseA.atom: if (CurrentResi !=3D atoms.resi): CurrentResi =3D atoms.resi if FirstRun =3D=3D 0: NTPlate.append(END) NTPlate.extend([BEGIN,TRIANGLE_FAN]) NTPlate.extend([COLOR]+AColor) else: NTPlate.extend([COLOR]+AColor) FirstRun =3D 0 if (atoms.name =3D=3D "N1") or (atoms.name =3D=3D "C2") or = (atoms.name =3D=3D "N3") or (atoms.name =3D=3D "C4") or (atoms.name =3D=3D "C5") or = (atoms.name =3D=3D "C6"): =20 NTPlate.extend([VERTEX] + atoms.coord) if (atoms.name =3D=3D "C4"): TmpC4 =3D atoms.coord elif (atoms.name =3D=3D "C5"): TmpC5 =3D atoms.coord elif (atoms.name =3D=3D "N7"): NTPlate.append(END) NTPlate.extend([BEGIN,TRIANGLE_FAN]) NTPlate.extend([COLOR]+AColor) NTPlate.extend([VERTEX] + TmpC4) NTPlate.extend([VERTEX] + TmpC5) NTPlate.extend([VERTEX] + atoms.coord) elif (atoms.name =3D=3D "C8") or (atoms.name =3D=3D "N9"): NTPlate.extend([VERTEX] + atoms.coord) =20 # CYTOSINE BaseC =3D cmd.get_model("resn C") for atoms in BaseC.atom: if (CurrentResi !=3D atoms.resi): CurrentResi =3D atoms.resi if FirstRun =3D=3D 0: NTPlate.append(END) NTPlate.extend([BEGIN,TRIANGLE_FAN]) NTPlate.extend([COLOR]+CColor) else: NTPlate.extend([COLOR]+CColor) FirstRun =3D 0 if (atoms.name =3D=3D "N1") or (atoms.name =3D=3D "C2") or = (atoms.name =3D=3D "N3") or (atoms.name =3D=3D "C4") or (atoms.name =3D=3D "C5") or = (atoms.name =3D=3D "C6"): =20 NTPlate.extend([VERTEX] + atoms.coord) =20 # GUANINE BaseG =3D cmd.get_model("resn G") for atoms in BaseG.atom: if (CurrentResi !=3D atoms.resi): CurrentResi =3D atoms.resi if FirstRun =3D=3D 0: NTPlate.append(END) NTPlate.extend([BEGIN,TRIANGLE_FAN]) NTPlate.extend([COLOR]+GColor) else: NTPlate.extend([COLOR]+GColor) FirstRun =3D 0 if (atoms.name =3D=3D "N1") or (atoms.name =3D=3D "C2") or = (atoms.name =3D=3D "N3") or (atoms.name =3D=3D "C4") or (atoms.name =3D=3D "C5") or = (atoms.name =3D=3D "C6"): NTPlate.extend([VERTEX] + atoms.coord) if (atoms.name =3D=3D "C4"): TmpC4 =3D atoms.coord elif (atoms.name =3D=3D "C5"): TmpC5 =3D atoms.coord elif (atoms.name =3D=3D "N7"): NTPlate.append(END) NTPlate.extend([BEGIN,TRIANGLE_FAN]) NTPlate.extend([COLOR]+GColor) NTPlate.extend([VERTEX] + TmpC4) NTPlate.extend([VERTEX] + TmpC5) NTPlate.extend([VERTEX] + atoms.coord) elif (atoms.name =3D=3D "C8") or (atoms.name =3D=3D "N9"): NTPlate.extend([VERTEX] + atoms.coord) NTPlate.append(END) cmd.load_cgo(NTPlate,"PLAIN_NT") cmd.select("chain1", "name C3*+C4*+C5*+O5*+P+O3*") cmd.show("cartoon", "chain1") cmd.cartoon("dumbbell", "chain1") cmd.delete("chain1") cmd.set_view(CurrentView) cmd.extend("DrawNT",DrawNT) |
From: <gre...@un...> - 2005-08-10 00:55:45
|
Same script, but with hydrogen bonds between nucleotides. Load the pdb file 127D, run the script and type =91DrawNT=92 in PyMol = command line=85 =20 =20 I have a question, maybe Warren you can answer: I wanted to use the set_color command to define a new color for the = Hydrogen bonds (MyRGBColor =3D [x,y,z] and then cmd.set_color(=93MyColor=94, = MyRGBColor)) And finally apply the created color to the Hydrogen bonds (cmd.distance('MyDistance', Selection1, Selection2) and then cmd.color("MyColor", "MyDistance")) The question is: how can I then delete the created MyColor object? I = tried the cmd.delete command, it does not generate an error but apparently the color is still defined=85 Any idea?! =20 =20 =20 Cheers, Greg =20 =20 =20 =20 from pymol import cmd from pymol.cgo import * from Numeric import * import sys,re =20 # COLOR SETTINGS: AColor=3D[0.2,1,0.2] TColor=3D[1,0.2,0.2] CColor=3D[0.3,0.3,1] GColor=3D[1,0.55,0.15] HColor=3D=94magenta=94 =20 def DrawNT(select=3D"all"): CurrentView =3D cmd.get_view(1) CurrentResi =3D 0 FirstRun =3D 1 NTPlate =3D [BEGIN,TRIANGLE_FAN] =20 # THYMINE BaseT =3D cmd.get_model("resn T") for atoms in BaseT.atom: if (CurrentResi !=3D atoms.resi): CurrentResi =3D atoms.resi if FirstRun =3D=3D 0: NTPlate.append(END) NTPlate.extend([BEGIN,TRIANGLE_FAN]) NTPlate.extend([COLOR]+TColor) else: NTPlate.extend([COLOR]+TColor) FirstRun =3D 0 if (atoms.name =3D=3D "N1") or (atoms.name =3D=3D "C2") or = (atoms.name =3D=3D "N3") or (atoms.name =3D=3D "C4") or (atoms.name =3D=3D "C5") or = (atoms.name =3D=3D "C6"): =20 NTPlate.extend([VERTEX] + atoms.coord) if atoms.name =3D=3D "N3": Sel1 =3D '%s/%s/%s/%s'%(atoms.segi,atoms.chain,atoms.resi,atoms.name) cmd.select('Sel2','%s around 3.1 and name N1 and not chain %s'%(Sel1,atoms.chain)) cmd.distance('Dst', Sel1, "Sel2") elif atoms.name =3D=3D "O4": Sel1 =3D '%s/%s/%s/%s'%(atoms.segi,atoms.chain,atoms.resi,atoms.name) cmd.select('Sel2','%s around 3.1 and name N6 and not chain %s'%(Sel1,atoms.chain)) cmd.distance('Dst', Sel1, "Sel2") # ADENINE BaseA =3D cmd.get_model("resn A") for atoms in BaseA.atom: if (CurrentResi !=3D atoms.resi): CurrentResi =3D atoms.resi if FirstRun =3D=3D 0: NTPlate.append(END) NTPlate.extend([BEGIN,TRIANGLE_FAN]) NTPlate.extend([COLOR]+AColor) else: NTPlate.extend([COLOR]+AColor) FirstRun =3D 0 if (atoms.name =3D=3D "N1") or (atoms.name =3D=3D "C2") or = (atoms.name =3D=3D "N3") or (atoms.name =3D=3D "C4") or (atoms.name =3D=3D "C5") or = (atoms.name =3D=3D "C6"): =20 NTPlate.extend([VERTEX] + atoms.coord) if (atoms.name =3D=3D "C4"): TmpC4 =3D atoms.coord elif (atoms.name =3D=3D "C5"): TmpC5 =3D atoms.coord elif (atoms.name =3D=3D "N7"): NTPlate.append(END) NTPlate.extend([BEGIN,TRIANGLE_FAN]) NTPlate.extend([COLOR]+AColor) NTPlate.extend([VERTEX] + TmpC4) NTPlate.extend([VERTEX] + TmpC5) NTPlate.extend([VERTEX] + atoms.coord) elif (atoms.name =3D=3D "C8") or (atoms.name =3D=3D "N9"): NTPlate.extend([VERTEX] + atoms.coord) =20 # CYTOSINE BaseC =3D cmd.get_model("resn C") for atoms in BaseC.atom: if (CurrentResi !=3D atoms.resi): CurrentResi =3D atoms.resi if FirstRun =3D=3D 0: NTPlate.append(END) NTPlate.extend([BEGIN,TRIANGLE_FAN]) NTPlate.extend([COLOR]+CColor) else: NTPlate.extend([COLOR]+CColor) FirstRun =3D 0 if (atoms.name =3D=3D "N1") or (atoms.name =3D=3D "C2") or = (atoms.name =3D=3D "N3") or (atoms.name =3D=3D "C4") or (atoms.name =3D=3D "C5") or = (atoms.name =3D=3D "C6"): =20 NTPlate.extend([VERTEX] + atoms.coord) if atoms.name =3D=3D "O2": Sel1 =3D '%s/%s/%s/%s'%(atoms.segi,atoms.chain,atoms.resi,atoms.name) cmd.select('Sel2','%s around 3.1 and name N2 and not chain %s'%(Sel1,atoms.chain)) cmd.distance('Dst', Sel1, "Sel2") elif atoms.name =3D=3D "N3": Sel1 =3D '%s/%s/%s/%s'%(atoms.segi,atoms.chain,atoms.resi,atoms.name) cmd.select('Sel2','%s around 3.1 and name N1 and not chain %s'%(Sel1,atoms.chain)) cmd.distance('Dst', Sel1, "Sel2") elif atoms.name =3D=3D "N4": Sel1 =3D '%s/%s/%s/%s'%(atoms.segi,atoms.chain,atoms.resi,atoms.name) cmd.select('Sel2','%s around 3.1 and name O6 and not chain %s'%(Sel1,atoms.chain)) cmd.distance('Dst', Sel1, "Sel2") =20 # GUANINE BaseG =3D cmd.get_model("resn G") for atoms in BaseG.atom: if (CurrentResi !=3D atoms.resi): CurrentResi =3D atoms.resi if FirstRun =3D=3D 0: NTPlate.append(END) NTPlate.extend([BEGIN,TRIANGLE_FAN]) NTPlate.extend([COLOR]+GColor) else: NTPlate.extend([COLOR]+GColor) FirstRun =3D 0 if (atoms.name =3D=3D "N1") or (atoms.name =3D=3D "C2") or = (atoms.name =3D=3D "N3") or (atoms.name =3D=3D "C4") or (atoms.name =3D=3D "C5") or = (atoms.name =3D=3D "C6"): NTPlate.extend([VERTEX] + atoms.coord) if (atoms.name =3D=3D "C4"): TmpC4 =3D atoms.coord elif (atoms.name =3D=3D "C5"): TmpC5 =3D atoms.coord elif (atoms.name =3D=3D "N7"): NTPlate.append(END) NTPlate.extend([BEGIN,TRIANGLE_FAN]) NTPlate.extend([COLOR]+GColor) NTPlate.extend([VERTEX] + TmpC4) NTPlate.extend([VERTEX] + TmpC5) NTPlate.extend([VERTEX] + atoms.coord) elif (atoms.name =3D=3D "C8") or (atoms.name =3D=3D "N9"): NTPlate.extend([VERTEX] + atoms.coord) NTPlate.append(END) cmd.load_cgo(NTPlate,"PLAIN_NT") cmd.select("chain1", "name C3*+C4*+C5*+O5*+P+O3*") cmd.show("cartoon", "chain1") cmd.cartoon("dumbbell", "chain1") cmd.set("cartoon_nucleic_acid_mode", 1, "chain1") cmd.delete("chain1") cmd.hide("label", "Dst") cmd.color(HColor, "Dst") cmd.delete("Sel2") cmd.set_view(CurrentView) cmd.extend("DrawNT",DrawNT) |
From: James R. G. <jam...@ma...> - 2005-08-10 23:30:36
|
Hello, This may be slightly off-topic, but I was wondering whether PyMol would allow one to enter a peptide sequence (generally short in length) to create a template structure that can then be used for structural refinements (minimizations, etc.) elsewhere. If PyMol cannot do this, is anyone aware of any program (preferably Mac OS X or linux compatible) that would be able to do this? Any info would be greatly appreciated. And apologies if this question is too far off-topic. Regards, james |
From: Joel T. <joe...@ot...> - 2005-08-10 23:42:56
|
Hi James, Sounds like you want a homology model type set up, ie generate coordinates based on a template. Modeller can do this and an easier way is via the swissmodel http://swissmodel.expasy.org//SWISS-MODEL.html If however you want a relatively random structure then pymol _can_ do this. Click on builder (top right og GUI) and then select protein. From here you can generate any sequence you want. You can then export this and use the program of your choice to run dynamics etc Hope this helps J James R. Graham wrote: > Hello, > > This may be slightly off-topic, but I was wondering whether PyMol > would allow one to enter a peptide sequence (generally short in > length) to create a template structure that can then be used for > structural refinements (minimizations, etc.) elsewhere. > > If PyMol cannot do this, is anyone aware of any program (preferably > Mac OS X or linux compatible) that would be able to do this? > > Any info would be greatly appreciated. > > And apologies if this question is too far off-topic. > > Regards, > james > > > > > ------------------------------------------------------- > SF.Net email is Sponsored by the Better Software Conference & EXPO > September 19-22, 2005 * San Francisco, CA * Development Lifecycle > Practices > Agile & Plan-Driven Development * Managing Projects & Teams * Testing > & QA > Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf > _______________________________________________ > PyMOL-users mailing list > PyM...@li... > https://lists.sourceforge.net/lists/listinfo/pymol-users > -- Joel Tyndall, PhD Lecturer National School of Pharmacy University of Otago PO Box 913 Dunedin New Zealand Pukenga Te Kura Taiwhanga Putaiao Te Whare Wananga o Otago Pouaka Poutapeta 913 Otepoti Aotearoa Ph / Waea +64 3 4797293 Fax / Waeawhakaahua +64 3 4797034 |
From: James R. G. <jam...@ma...> - 2005-08-11 00:10:42
|
Thanks for the prompt responses, Warren and Joe! Works like a charm! Now, I just wish that my Kensington Expert Mouse could function as a true three button mouse...is there a keystroke that mimics the third mouse button? Thanks again, james |
From: James R. G. <jam...@ma...> - 2005-08-15 15:37:10
|
Hello All, How "physiological" are the structures that are produced from builder? Meaning, how are the angles, etc. determined? Might such a resulting structure mimic a chemically-synthesized peptide? I have taken peptides I created using builder and done some MD simulations and the structures certainly change, but I wonder whether the changes are limited by the initial starting structure...which is, of course, a question for another mailing list, I suppose. ;) james |
From: Jim N. <jn...@em...> - 2005-08-15 15:49:12
|
Hello James, There is really a lot of room for discussion regarding your questions. Considering peptide conformations is complicated business and there is generally not "a" structure. There is great conformational flexibility even for small, constrained, cyclic peptides. As for the MD - yes, a classical MD trajectory is entirely determined by the starting structure. One can introduce random number seeds, high temperature, etc ... to explore greater space, but where you start is definitely worthy of thoughtful consideration. I can send references and more discussion off list, if you are interested. Cheers, Jim N. ________________________________________________________ James Nettles, Ph. D. Computational Pharmacology Liotta/Snyder Group, Modeling Division, Department of Chemistry Emory University 1515 Pierce Dr. Atlanta, Ga. 30322 jn...@em... TEL: (404)966-4617 FAX: (404)728-0991 ________________________________________________________ On Aug 15, 2005, at 11:36 AM, James R. Graham wrote: > Hello All, > > How "physiological" are the structures that are produced from builder? > Meaning, how are the angles, etc. determined? Might such a resulting > structure mimic a chemically-synthesized peptide? > > I have taken peptides I created using builder and done some MD > simulations and the structures certainly change, but I wonder whether > the changes are limited by the initial starting structure...which is, > of course, a question for another mailing list, I suppose. ;) > > james > > > ------------------------------------------------------- > SF.Net email is Sponsored by the Better Software Conference & EXPO > September 19-22, 2005 * San Francisco, CA * Development Lifecycle > Practices > Agile & Plan-Driven Development * Managing Projects & Teams * Testing > & QA > Security * Process Improvement & Measurement * > http://www.sqe.com/bsce5sf > _______________________________________________ > PyMOL-users mailing list > PyM...@li... > https://lists.sourceforge.net/lists/listinfo/pymol-users |