See kludge at bottom. pdbHeader was gathered by messaging the header with beginFetchPDBHeader() (in msgcall.js) #3: which runs in JSmol makeGetPDBFileHeaderSpt() (scripts.js) which collectMessages = true, then "show pdbheader" bracketed by messageMarkBeginHeader and messageMarkEndHeader. When messageMarkEndHeader is received in jmolMessageCallback() #34 it calls processPDBHeader() (msgcall.js) #7a which sets collectMessages = false, then using *** pdbHeader *** getPIPEBlock() which does lots of things if pipeBlock exists and if telAvivMode does lots more, then makeConsurfHelp() <<<< if !telAvivMode, setupPanels(). <<<< ------------------ RoseTTAFold detection -> pdbHeaderToAtom: (See comments in jgetfi() in moltab.js) In RoseTTAFold PDB files, MODEL 1 precedes the REMARK containing "RoseTTAFold". jgetfi(key) used jmolGetPropertyAsString("fileInfo", key) stops at MODEL 1, thereby preventing RoseTTAFold from being detected. This required getHeaderToAtom() (moltab.js) which gets *** pdbHeaderToAtom *** which stops at the first ATOM or HETATM record. Thus, in FG 4.6, we had two header variables, pdbHeader and pdbHeaderToAtom. --------------- startupPanels() (controls.js) calls getHeaderBlocks() (moltab.js) #64 which immediately calls getHeaderToAtom() (moltab.js) generating *** pdbHeaderToAtom *** and which decides whether pdbNoHeader. --------------- In FG 4.7: In jgetfi(), jmolGetPropertyAsString("fileInfo", key) FAILED with noFormulPDB. (It seemed to be looking for a file on disk via XMLHttpRequest.open.) Therefore I replaced it with getHeaderRecords(key) which uses pdbHeaderToAtom. --------------- BUG in FG 4.7 (consurf in temperature): 1sva (not consurf) initially displays capsid with no bug. Then showing the AU also no bug. 1sva-1-consurf-colab.pdb initially displays the AU with no bug. BUG: Then showing the capsid MESSAGES pdbHeaderToAtom (WHERE? WHY?). Since REMARK 3 in the header has multiple lines containing "ERROR", this generates a msgcall alert. The bug occurs between msgcall #3 (beginFetchPDBHeader()) and msgcall #34 (receipt of messageMarkEndHeader) thus while collectMessages is true. After spending several hours trying to find where and how pdbHeaderToAtom gets messaged to JSmol, I used a kludge: msgcall.js looks for "header to atom" and when present, suppresses the error alert.