On Tue, 12 Feb 2002, Nat wrote: > > Forgive my ignorance, but what would be the best way to add secondary > structure data to a PDB file, or coerce it into some format that PyMOL can > read? I've been fiddling around with STRIDE and DSSP, but the outputs > from these need to be parsed into the official PDB format for > secondary structure annotation (which I assume from the manual that PyMol > can use). Is there some better (e.g. quicker) way to do this? I've found > util.ss() works fine, but Warren has repeatedly said not to use it and > these images will be presented.
You can bypass the requirement for having secondary structure in the PDB file by explicitly assigning secondary structure using the alter command. load tst.pdb alter tst & */ca, ss='L' alter tst & 5-30/ca, ss='H' alter tst & 35-40/ca, ss='S' alter tst & 42-47/ca, ss='S' cartoon auto show cartoon > On a related note, if I do get a script to parse STRIDE data working, > what's the minimum amount of annotation that PyMOL requires for a sheet? > PDB seems to use a lot more data which I don't believe I can supply, like > which sheets are parallel/antiparallel to eachother. PyMOL just stores one bit of secondary structure information per residue (the "ss" property of the CA atom). Just remember to set cartoon mode to "auto" after making changes in order to force an update of the graphical cartoons. It should be pretty straighforward to write a Python script which assigns secondary structure based on any file format. Of course, from a Python python script, the above commands would look like from pymol import cmd cmd.load("tst.pdb") cmd.alter("tst & */ca","ss='L'") cmd.alter("tst & 5-30/ca","ss='H'") cmd.alter("tst & 35-40/ca","ss='L'") cmd.alter("tst & 42-37/ca","ss='L'") cmd.cartoon("auto") cmd.show("cartoon") ...and you'd replace those fixed strings with string expressions if you were dynamically parsing a file. It would be great if someone would volunteer to investigate how different util.ss is compared to DSSP. The reason I caution against using it is that it doesn't conform to any published criterion and hasn't been adequately tested or validated. Like nearly every other feature in PyMOL, it was cooked up on the fly to solve an immediate need, without much in the way of rigorous follow-up. Cheers, Warren