Lua functions that allow direct Rama manipulation like these would be very useful:
GetPhi(seg_idx)
GetPsi(seg_idx)
SetPhi(seg_idx, phi)
SetPsi(seg_idx, psi)
These would allow scripters to make their own "idealize" methods and allow for direct sculpting of desired shapes.
Also useful, although could be built in LUA, would be a method (or two) that would return for a given AA, phi and psi, the ABEGO color and intensity.
Thanks,
Chris
Add band to guide might be useful, one could load up solution of their own or a teammates and band some or all segments/atoms to their corresponding guide element. This would allow the structure to get close enough to a known structure that is in a local minimum but taking a different path to get there could break through that barrier. Or you could use a similar concept to the breathing bands script and that might break through the local minimum.
Suggestion
Hi Chris Klassen–thank you so much for the suggestion. I have passed this along to our team.
Some filters are given for information with no points. But a value is given (e.g. number unburied bonds). Give us the possibility to retrieve this information.
Lua Function
Hey Chris–thank you for this suggestion!
Lua functions for setting the Ramachandran point (phi/psi angles) of a residue would be very powerful
SetPsi(residue_position, psi)
SetPhi(residue_position, phi)
At the moment we can only change the phi/psi angle indirectly by wiggling
Cheers!
Some way to tell if a given segment has a hydrogen bond, and to what: maybe
structure.GetBondInfo(segment)
it could return a list of (my_atom#, to_segment, to_atom#) tuples that say where any bonds go.
Then if I want to increase my bonds from my protein to a target I can look if a given segment
already has a bond, or not, etc.
Also a way to get, say, the list of segments a filter is concerned with; for example the
segments that are BUNS from the BUNS filter;
One down!
How to tell within Lua recipes if an autosave/quicksave-slot is already occupied?
See save.QuicksaveEmpty
Cool ! many of them are implemented. Thanks !
boolean freeze.IsSidechainFrozen(integer segmentIndex)
boolean freeze.IsBackboneFrozen(integer segmentIndex)
Sometimes for Hbond puzzles, I want to let sidechain frozen in order to avoid mutations.
But set.aminoacid(integer segmentIndex, string aminoAcid) overwrites the freezes.
Recipes use to check if it's froozen or not using:
boolean freeze.IsFrozen(integer segmentIndex) that returns wheter backbone and/or sidechain is frozen.
The following script by spvincent seems to work:
seg_backbone_frozen, seg_sidechain_frozen = freeze.IsFrozen ( integer segmentIndex )–Returns whether the backbone and/or sidechain is frozen.
I really don't understand why it works.