A script that defines something after the molecule is loaded, but before the Mol Info Tab is to appear can be added to makeView1Spt() (scripts.js), e.g. cf. makeDefineIncompleteSidechainsSpt(). This is where I added makeFindIsopepNOSBSpt() for FG 3.3. To add something done once after the model is loaded, consider putting it in modeldat.js getAtomCounts() An alert in getAtomCounts() appears before either left panel is loaded. I did this for "save structure authorstructure"; (?? later moved ??) I did this for getMissingCount() to get bmMissingCount in time for initial rendering. An alert at the end of setupControlPanelTabs() in controls.js appears after the control panel but before the intro help appears. Best place for something to happen after loading is completed and both panels are filled: msgcall.js near end of processPDBHeader(). SEE >>>>>>> doPostLoadActions() TOP.JS <<<<<<<<<<< [initially it had only alertUnusual(); now also label incomplete sidechains] called by processPDBHeader() in msgcall.js BUT this was apparently TOO EARLY to toggle quality off, see quality.txt. ----------------------- putJmolApplet() in moldoc.js starts Jmol with makeJmolScript(), which is defined in scripts.js: debugging options view1SptPrefix (scripts.js) echos "Jmol loading completed" load command SCRIPTS.JS 633 30 : finalSpt += "load " + top.pdbURL + ";" + makeView1Spt() + makeEchoPdbIdSpt("black"); // for consurf, the real view1 script is from // makeConsurfViewSpt() in consurf/scriptsc.js makeView1Spt(): if (processHeaderBeforeMolView) // for consurf just make the gray echo "processing header" Message (4 lines) including "found biomolecule" reports molecule loaded. (msgcall.js) in top.js, processHeaderBeforeMolView is false unless the PDB filename contains "consurf" or another Tel Aviv server name. Therefore, for a non-consurf PDB file, too much redesign would seem to be needed to query Jmol for missing residues before the initial view appears. ------------------------ When a message goes thru messageCallback signalling the end of the PDB header, call processPDBHeader() in consurf/msgcall.js calls writeConsurfControls() calls makeConsurfControls2() calls makeInfoLinks() else if not consurf calls setupControlPanelTabs() + returnToIntro() ***showFGControls() called in consurf/ calls setupControlPanelTabs(); in controls.js showFGControls() (used only when doing so from the ConSurf control panel) calls writeFGControls() calls makeInfoLinks() -------------------------- FG 3.7 ConSurf -> FG tabs: showFGControls() first time: startupPanels() getHeaderBlocks() if no header, asks re: AlphaFold startupPanels2() setupControlPanelTabs() + intro if not consurf + doPostLoadActions() if not first time, headerBlocksGotten setupControlPanelTabs()