Updated "Fixed issues with designing in scaffoldguided mode" original PR 386 (#426)
The original PR for this was #386 from
[OrangeCatzhang](https://github.com/OrangeCatzhang). This PR is to fix
the error "AttributeError: 'bool' object has no attribute
'scaffold_list'" when running in scaffoldguided mode.
The first error is fixed by passing the full composed config object
(conf) into BlockAdjacency instead of passing the scaffoldguided
sub-node. BlockAdjacency expects the full config and to access
conf.scaffoldguided.<fields> internally, so passing the sub-node caused
self.conf.scaffoldguided to resolve to the nested boolean field
(scaffoldguided.scaffoldguided), which produced the AttributeError when
code tried to read .scaffold_list. Passing teh full conf fixes that
mismatch.
The other fix is to add initialization of cyclic_reses to
ScaffoldedSampler. I have slightly updated what was in the original PR
to avoid code duplication. I added a helper function to the Sampler
class and then call that in both Sampler and ScaffoldedSampler to
initialize cyclic_reses. I also removed the changes to the
scaffoldedguided flag from the original PR, so the CLI stays the same.
Fix workflow tests that are failing (#410)
This PR updates the tests so that all the examples run and if an example
fails then the test results in a failure as well. Changes include:
- Reformatting design_macrocyclic_binder.sh and
design_macrocyclic_monomer.sh to be submitted correctly by
test_diffusion.py
- Reducing the total length in design_tetrahedral_oligos.sh to reduce
run time of this test
- Changes to test_diffusion.py and main.yml to be able to run the
examples in different chunks so examples can run in parallel and to make
sure that if an example errors out, that the tests does not pass.
Currently design_ppi_scaffolded, design_timbarrel, and
design_ppi_flexible_peptide_with_secondarystructure_specification are
failing which should be addressed in other, future PRs.
Retain chain and residue numbering in RFdiffusion (#348)
A number of issues (e.g., #103 , #171 ,
https://github.com/RosettaCommons/RFdiffusion/issues/312 , #315 ) have
mentioned that RFdiffusion will change the chain IDs and residue
numbering of the input structure. The designed chain ends up as chain
"A", and the fixed chain(s) end up as chain "B". The numbering is also
reset to start at 1. This can be particularly problematic in cases where
comparisons to structures are needed, as well as multi-chain situations
where all of the chains get fused.
Inspired by @GCS-ZHN 's comment and solution referenced in Issue #103 ,
I've modified the code to maintain chain and residue numbering. In
particular:
Chains that are not "designable" will retain their original chain ID
letters and residue numbers.
Chains that are partially fixed (e.g., motif re-scaffolding) will retain
their original chain ID letters. Residues will be re-numbered from 1 to
length of chain. (It was not clear to me what the "correct" behaviour of
chain residue numbering should be, given that the length of the chain
and the position of any fixed residues might change.)
Chains that are being fully generated de novo will be assigned the first
available chain ID in the alphabet not used by any other chain. Residues
will be numbered from 1 to length of chain.
Update README.md (#365)
Update README to point to new [documentation
resource](https://sites.google.com/omsf.io/rfdiffusion/overview).
I also added some text in the Installation section to 1) specify that
Sergey O.'s colab notebook only contains some of the features of
RFdiffusion and 2) that there is now a Rosetta Commons-maintained docker
image.