You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
bugfix: PSFContents.remove_ignored_residues crashed with TypeError: 'PSFAtom' object is not subscriptable because it wrongly indexed the result of BaseObjList.get() with [0]; get() returns the matched object directly when there is exactly one match (which is always the case for an atom-by-serial lookup), so the trailing [0] was indexing into the atom itself
bugfix: AsymmetricUnit extended ignored_residues twice with the same more_ignored_residues list (a copy-paste duplicate around the intervening grafts.assign_residues call), causing PSFContents.remove_ignored_residues to be called for the same residues twice and crash on the second pass when self.atoms.get() returned None (atoms already removed) and self.atoms.remove(None) invoked PSFAtom.__eq__ against None.serial
bugfix: continuation+psfgen builds that inserted protein residues at glycosylation sites (e.g. extending the HIV-1 gp41 ectodomain from MPER residue 685 through TM residue 710 on a pre-built glycoprotein) emitted glycan-link patches against the protein segment (patch 14ba A:1222 A:1223) instead of the glycan segment (patch 14ba AG01:1222 AG01:1223), causing psfgen to abort with no residue X of segment A / MOLECULE DESTROYED BY FATAL ERROR; two related issues were fixed: (a) Link._from_psflinkpatch populated chainID1/chainID2 from the psfgen segname but left segname1/segname2 unset, so when chainID1 was later remapped from the segname (AG01) to the biological chainID (A) so the lookup against PDB-derived residues could succeed, the writer at PsfgenScripter.write_link (which prefers L.segname1 over L.residue1.chainID) had nothing but the biological chainID to fall back on; (b) ResidueList.renumber, when renaming a glycan residue whose resid collided with a newly inserted protein residue (glycan A:686 → A:1324 after inserting protein A:686), only propagated the resid update to links keyed by biological chainID and skipped links from PSF REMARKS whose chainID1/chainID2 carried the psfgen segname, so those stale links became orphans and the orphan cleanup at LinkList.assign_residues removed the entire glycan tree from the residue list — leaving segment AG01 with only the renumbered root and stripping the patches' target residues; renumber now also keys its mapper_by_chain by segname when segname differs from chainID