I'm trying to use pyrosetta.rosetta.protocols.quantum_annealing.ExternalPackerResultLoader for a project of side-chain packing small peptides with a fixed backbone. I've gotten as far as building the Mover: instantiate the mover, giving it rebuild info and the string with selected rotamers.
The problem I run into comes when I try to apply it to the starting pose; I get a warning:
core.io.silent: [ WARNING ] Number of atoms in pose and silent file disagree! Attempting to continue ... core.io.silent: [ WARNING ] (in residue ALA:NtermProteinFull at 1 and atm_seqpos of 1 natoms_pose=7 natoms_struct=12 tag="empty") core.io.silent: [ WARNING ] Likely explanations: core.io.silent: [ WARNING ] 1. You are trying to extract, with residue type set A, a silent file created with residue type set B. core.io.silent: [ WARNING ] 2. You have specified a database with -database that is out of sync with your chosen executable. core.io.silent: [ WARNING ] 3. You have used different environment flags (e.g. -restore_talaris_behavior/-restore_pre_talaris_behavior) than the silent file was generated with. core.io.silent: [ WARNING ] 4. The database has been updated since your silent file was made, meaning the definition of this RT has drifted.
I've narrowed it down to explanation 1: the pose is full atom, and the mover, when applied, changes the pose to centroid representation.
The question is now how to best handle it:
1. Change the pose to centroid, apply the mover, then back to full atom to compare. But according to this tutorial: "Converting from full atom to centroid and back will not give you back the same structure, as sidechain building in Rosetta is not deterministic." Would it work anyways in this case?
2. Is there a way of changing the mover's silent file type to full atom? (I tried googling to no avail)
3. I'm comparing the final pose from the external packer with a pose packed by pyrosetta that is full atom. Is it the best idea to change just everything into centroid and score it that way?
Or is there another better way?