That's an interesting idea. Jmol already reads the SITE records and assigns
variable names to those. So, for example, in 1AI6 we have:

SITE     1 CAA  6 ASP B  73  VAL B  75  ASP B  76  GLU A
152
SITE     2 CAA  6 PRO B 205  ASP B
252
SITE     1 CAT  4 SER B   1  ALA B  69  GLN B  23  ASN B
241
SITE     1 AC1  6 GLU A 152  ASP B  73  VAL B  75  ASP B
76
SITE     2 AC1  6 PRO B 205  ASP B
252
SITE     1 AC2  9 MET A 142  PHE A 146  SER B   1  PHE B
24
SITE     2 AC2  9 SER B  67  ALA B  69  ILE B 177  ASN B
241
SITE     3 AC2  9 HOH B
572

and then:

load =1ai6
$ show site?
  site_ac1 = [GLU]152:A
[ASP]73:B
[VAL]75:B
[ASP]76:B
[PRO]205:B
[ASP]252:B
;
  site_ac2 = [MET]142:A
[PHE]146:A
[SER]1:B
[PHE]24:B
[SER]67:B
[ALA]69:B
[ILE]177:B
[ASN]241:B
[HOH]572:B
;
  site_caa = [ASP]73:B
[VAL]75:B
[ASP]76:B
[GLU]152:A
[PRO]205:B
[ASP]252:B
;
  site_cat = [SER]1:B
[ALA]69:B
[GLN]23:B
[ASN]241:B
;
  site_list = site_AC1
site_CAA
site_CAT
site_AC2
;

and then,

select site_AC1

selects those specific atoms, for instance.

I suspect the distinctions among UNK, UNX, UNL are lost to general PDB
users. I've only seen UNK, and it could be anything. So I think you can
just use that.

The idea of "labeling" a site with its REMARK 800 description is not
impossible right now. A relatively simple Jmol script could do that. It
would look something like this:

function labelSite(id) {
  var desc = getProperty("fileinfo.remark800").split("SITE_IDENTIFIER:
"+id+\n")[2].split("SITE_DESCRIPTION: ")[2].split("\n")[1];
  select @{"site_"+id};
  set echo @{"label_"+id}  {selected}
  echo @id
}

As for modifying PDB files and re-saving them, that's not what Jmol is for,
and I doubt there is much interest in going there. Some cleverly written
Perl scripts could probably do that, though. No need for Jmol. Or, no need
to do that *in* Jmol. But, if you wanted to use Jmol for that, you could do
that by loading the file into a variable, using something like that
function to find the specific line in the file with the description, and
then write that modified variable back to a file. Not impossible.

Bob








On Mon, Jun 3, 2013 at 12:31 PM, James Ryley <ja...@ryley.com> wrote:

> [I sent this from a different account previously. I don't think it got
> posted -- sorry if it is a duplicate]****
>
> ** **
>
> Greetings,****
>
> ** **
>
> A few weeks ago I posed some questions about being able to use annotations
> and labels via a .pdb file. I've been revisiting this possibility, going
> over the pdb spec, and searching for programs that might provide useful
> guidance in the way they implement such features. I finally found one, the
> ICM Browser (http://www.molsoft.com/icm_browser.html). This program (in
> terms of data usage, it's graphical implementation leaves something to be
> desired) does exactly what I was thinking.****
>
> ** **
>
> Specifically, it takes pdb SITE records and labels the relevant residues
> with, by default, the siteID field of the SITE record. A sample SITE record
> looks like this:****
>
> ** **
>
> SITE 1 AC1 3 HIS A 94 HIS A 96 HIS A 119****
>
> ** **
>
> Which means: Site 1 is called AC1, is composed of 3 residues, which are,
> in this case, all on the "A" chain, and are Histidines at sequence numbers
> 94, 96 and 119.****
>
> ** **
>
> Per the pdb spec, each SITE record must be associated with a REMARK 800
> record, which contains a SITE_DESCRIPTION entry, like:****
>
> ** **
>
> REMARK 800****
>
> REMARK 800 SITE****
>
> REMARK 800 SITE_IDENTIFIER: FREE TEXT GOES HERE.****
>
> REMARK 800 EVIDENCE_CODE: (AUTHOR or SOFTWARE or UNKNOWN)****
>
> REMARK 800 SITE_DESCRIPTION: FREE TEXT GOES HERE.****
>
> ** **
>
> ICM Browser can switch between labeling a site with siteID and
> SITE_DESCRIPTION. Since SITE_DESCRIPTION can be free form text of arbitrary
> length, this provides a way to label a residue with essentially anything
> you want, within the confines of the pdb format.****
>
> ** **
>
> However, labeling a residue, if "residue" is taken to mean an amino acid,
> isn't sufficient, and during the previous conversations on this topic it
> was mentioned that the pdb format does not support per-atom annotation.
> Here I start to guess a bit, but I think it can support per-atom annotation.
> ****
>
> ** **
>
> While residues are typically amino acids, they do not have to be. A HET
> record can be used to describe non-standard residues, and HET residues can
> (in addition to a dictionary of known non-standard residues) be named UNL
> ("Unknown Ligand"), UNK ("Unknown Amino Acid"), or UNX ("Unknown atom").
> So, arbitrary residues seem to be provided for, and those residues can be a
> single atom, which implies the ability to associate a SITE, and hence a
> SITE_DESCRIPTION, with any atom or atoms you choose.****
>
> ** **
>
> Certainly there are details that I've missed, in terms of complying with
> the pdb spec, and perhaps for users who are concerned with ADIT validation.
> Also, there may be consequences to using an arbitrary residue name to alias
> an atom to a SITE_DESCRIPTION. For example, what if you also need to put
> that atom into a "real" residue? Can you list an ATOM/HETATM twice, as part
> of two different residues? Or could you create a dummy atom at the same
> coordinates as the "real" atom, as a placeholder for a label? ("DUM" seems
> to be an atom abbreviation used for this purpose, although it is not
> referenced in the latest spec). I don't know the answers to those
> questions, but at least for my purposes these details are not all that
> important. It would seem that the pdb format can support arbitrary
> labeling/annotation of atoms, and presumably such information, being part
> of a standard pdb file, would survive a round-trip to any other software
> that at least read and wrote anything it saw in the file, even if it did
> not offer the ability to act upon all the data.****
>
> ** **
>
> I'd like to suggest that JMol add an ICM Browser-like ability to display
> and edit SITE/REMARK 800 information (graphically -- I know JMol already
> reads at least SITE information, which is accessible through scripting).**
> **
>
> ** **
>
> Regardless of whether this suggestion is implemented graphically, perhaps
> scripting can accomplish these tasks already. Is it possible to go from an
> ATOM/HETATM to a SITE entry, to a REMARK 800 entry, get the
> SITE_DESCRIPTION, alter it, and have the alterations be saved when the pdb
> file is saved?****
>
> ** **
>
> Sincerely,
> James Ryley****
>
> ** **
>
>
> ------------------------------------------------------------------------------
> Get 100% visibility into Java/.NET code with AppDynamics Lite
> It's a free troubleshooting tool designed for production
> Get down to code-level detail for bottlenecks, with <2% overhead.
> Download for free and get started troubleshooting in minutes.
> http://p.sf.net/sfu/appdyn_d2d_ap2
> _______________________________________________
> Jmol-users mailing list
> Jmol-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jmol-users
>
>


-- 
Robert M. Hanson
Larson-Anderson Professor of Chemistry
Chair, Chemistry Department
St. Olaf College
Northfield, MN
http://www.stolaf.edu/people/hansonr


If nature does not answer first what we want,
it is better to take what answer we get.

-- Josiah Willard Gibbs, Lecture XXX, Monday, February 5, 1900
------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
Jmol-users mailing list
Jmol-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-users

Reply via email to