Opened 8 years ago
Closed 8 years ago
#910 closed defect (not a bug)
"rungs" hiding options seem to have problems
Reported by: | Elaine Meng | Owned by: | Tom Goddard |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | Depiction | Version: | |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Notify when closed: | Platform: | all | |
Project: | ChimeraX |
Description
Not that one would use the "rungs" setting to NOT hide atoms often, but it exists so I tried it.
open 1bna
rungs hideat f
rungs hide
.... also hides some of the atoms (?? it should just hide the rungs model, as when I uncheck "S" in the model panel). Now if I try to turn the atoms back on, I get the rungs back too:
show nucleic
I am also confused by the "hidehbonds" option. Depending on how I test it (requires not hiding atoms), unclear as to whether it is default true or default false. It should just hide the hbonds model, right? But even though the hbonds disappear (usually) the "S" box is still shown as checked for this model in the model panel.
Change History (7)
comment:1 by , 8 years ago
comment:2 by , 8 years ago
Oh I see ~struts no longer works. I'm pretty sure it used to work, since I'd put it in the docs!
comment:3 by , 8 years ago
Unfortunately the behavior you observe is intended. The reason "rungs hide" hides the atoms that are the endpoints of the rung pseudobonds is because the usual use is that no atoms of the residue are shown (ie hideAtoms true) except then pseudobond end-point atoms (those must be shown for the pseudobond to be shown). So if "rungs hide" did not hide the endpoint atoms in the usual case then you would see two the lone pseudobond atoms which is not what you wanted. Granted this behavior is not good if you used "hideAtoms false".
Your suggestion that "rungs hide" should hide the rungs pseodobond group is not how it works. This is because "rungs hide <atomspec>" takes an atom spec in which case it hides just the pseudobonds ending on those atoms. "rungs hide" with no atomspec implicitly means the atomspec is all atoms and it hides all the individual pseudobonds but does not hide the pseudobond group. We could special-case it so the group is hidden instead of the individual pseudobonds if no atomspec is given. But in general (many commands are like this) we do not special-case and give a different behavior (what level hiding occurs at) because this can be confusing, for example if I just have one model "rungs hide" and "rungs hide #1" behaving differently is bizarre.
The rungs hideHbonds option has default true. I suspect the intent is to avoid showing a hydrogen bond between two rung tips as that is usually not desired.
The "show nucleic" brings back the pseudobonds because atomspec "nucleic" refers to the end-point atoms and implicitly every atomspec includes the intra-atom pseudobonds (a change I think you requested a few weeks ago).
I don't see what changes can be made to improve the behavior. I agree the behavior is weird and bad but you are using the command in very rare ways. The rungs command should ultimately be removed, replaced by Greg's nucleotides stuff.
I've aliased "~rungs" to "rungs hide".
I'll check ~struts -- that should be a different ticket.
comment:4 by , 8 years ago
Not sure there ever was a "~struts" command. "usage struts" shows a "struts delete" command. I've added an alias for ~struts to "struts delete".
follow-up: 5 comment:5 by , 8 years ago
~rungs and ~struts don’t work with nonblank atomspecs, e.g. open 1bna rungs ~rungs /a …gives error “Expected fewer arguments” instead of being expanded to “rungs hide /a” (which works correctly). There is a similar problem with ~struts atomspec not being expanded to “struts delete atomspec” but the latter doesn’t work anyway, gives a traceback. I’ll make a separate ticket for that. Elaine
comment:6 by , 8 years ago
Fixed ~rungs and ~struts. The alias wasn't defined correctly, needed $* to pass all arguments.
comment:7 by , 8 years ago
Resolution: | → not a bug |
---|---|
Status: | assigned → closed |
I think the current rungs hide behavior which hides the atoms is reasonable given the typical use case where side-chain atoms are not being shown. I side-chain atoms are shown it behaves badly. But I don't see a sensible way to avoid this, and this case seems exceedingly unlikely -- the point of showing the rungs is to have a less detailed depiction than showing all atoms.
Would be useful to have ~rungs (like ~struts, ~hbonds etc.) especially since it is easy to confuse "rungs hide" with "rungs hideAtoms" etc.