Bugs item #3363306, was opened at 2011-07-11 13:21
Message generated for change (Settings changed) made by hansonr
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=379133&aid=3363306&group_id=23629

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: File Input/Output
Group: HEAD
Status: Open
>Resolution: Fixed
Priority: 5
Private: No
Submitted By: NickEngland (nickengland)
Assigned to: Bob Hanson (hansonr)
Summary: CML atoms with ids of \"a1\" and \"a1_1\" cause error

Initial Comment:
XmlCmlReader.java line 394 sets isSerial to true if it reads an atom with id 
"a1". If there are atoms with ids which are not serial later in the document 
(eg, "a1_1") then the bonds do not load correctly.

Renaming all the ids from aX to bX cause the moelcule to load correctly.

----------------------------------------------------------------------

Comment By: Bob Hanson (hansonr)
Date: 2011-07-13 13:57

Message:
I don't think it's quite that simple. PDB files (translated to CML?) refer
to atoms for their bonding as serial numbers, not atom names. Not a problem
for a single-model file, but PDB files with multiple models have CONECT
records that are multi-model. Of course, CML is not PDB, and I can't
remember exactly why I thought that was important. This was added in
revision 12204, and although I don't remember the specifics of why, I doubt
I would have added that if there weren't a file that had the problems. 

----------------------------------------------------------------------

Comment By: Bob Hanson (hansonr)
Date: 2011-07-13 13:41

Message:
fixed for 12.1.51 and 12.0.48

----------------------------------------------------------------------

Comment By: NickEngland (nickengland)
Date: 2011-07-12 11:34

Message:
Commenting out the lines:
        if (!checkedSerial) {
          // this is important because the atomName may not be unique
          // (as in PDB files)
          isSerial = (id != null && id.length() > 1 && id.startsWith("a")
              && Parser.parseInt(id.substring(1)) != Integer.MIN_VALUE);
          checkedSerial = true;
        } 
        if (isSerial)
          atom.atomSerial = Parser.parseInt(id.substring(1));

fixes the issue, and all the units tests still seem to pass. AtomIds
should be unique in CML, so I am unsure what PDB files the comment is
talking about.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=379133&aid=3363306&group_id=23629

------------------------------------------------------------------------------
AppSumo Presents a FREE Video for the SourceForge Community by Eric 
Ries, the creator of the Lean Startup Methodology on "Lean Startup 
Secrets Revealed." This video shows you how to validate your ideas, 
optimize your ideas and identify your business strategy.
http://p.sf.net/sfu/appsumosfdev2dev
_______________________________________________
Jmol-developers mailing list
Jmol-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-developers

Reply via email to