MOSAICS is designed to delete specific residues and atoms within the program and calculate scores from there. This has been successfuly implemented. however, actually tracking the order in which chains are deleted is challenging.
Chain order:
Currently, MOSAICS uses a chain_order defined by mmdf indexing of chains, which often differs from the order in ChimeraX, where templates can be manipulated. There is no good way to track the order of chains, especially if the chain order is randomized using the randomize_chain_order parameter. by dumping the chain_ids parameter to a json file using MosaicsManager.model_dump(), this may be solved, as this parameter is no longer a private variable like _chain_order was.
Residue order:
MOSAICS uses a sliding window iterator to delete certain residues along a chain, and uses the mmdf residue_ids column to index the residues. However, to index the residues, one needs to recreate the sliding window iterator themselves. In the case of skipped residues, this can be quite confusing. A way around this is to store a variable in ResidueTemplateIterator, a residue_ids variable that can be used to define the start and stop of a residue deletion window.
MOSAICS is designed to delete specific residues and atoms within the program and calculate scores from there. This has been successfuly implemented. however, actually tracking the order in which chains are deleted is challenging.
Chain order:
Currently, MOSAICS uses a chain_order defined by
mmdfindexing of chains, which often differs from the order in ChimeraX, where templates can be manipulated. There is no good way to track the order of chains, especially if the chain order is randomized using therandomize_chain_orderparameter. by dumping thechain_idsparameter to a json file usingMosaicsManager.model_dump(), this may be solved, as this parameter is no longer a private variable like _chain_order was.Residue order:
MOSAICS uses a sliding window iterator to delete certain residues along a chain, and uses the
mmdfresidue_idscolumn to index the residues. However, to index the residues, one needs to recreate the sliding window iterator themselves. In the case of skipped residues, this can be quite confusing. A way around this is to store a variable inResidueTemplateIterator, aresidue_idsvariable that can be used to define the start and stop of a residue deletion window.