= Needed Command Functionality = Chimera2 command functionality needed for early release(s) based on [[EarlyReleaseRequirements]]. This is somewhat high-level; more detailed guidelines and examples are in [http://www.cgl.ucsf.edu/home/meng/chi2/command-structure.html Chimera2 Command-Structure Thoughts]. == Late summer release == Initial versions (not necessarily full implementations, could be partial) of: * '''open''' (suggest same general syntax as Chimera1, possibly adjusting prefixes; covers both local files and web-fetch) * '''display''', '''modeldisplay''' (suggest replacing with '''show/hide''') - this could control pseudobonds indirectly if they are hidden automatically when endpoint atoms are hidden, but we may want to make it act on them directly, or else '''setattr''' (see below) might be the only way * '''ribbon''' (suggest replacing with '''cartoon''' and including spline, path smoothing, whether backbone atoms can be shown, and any other whole-chain parameters as options to this command; see [http://www.cgl.ucsf.edu/home/meng/chi2/ribbons.html ribbons writeup]) - for this release, just ribbons (not cylinders or worms) * '''surface''' - see [[SurfaceCategories]] discussion of categories and command design on wiki - see [http://www.cgl.ucsf.edu/home/meng/chi2/surface.html surface manpage mockup] based on subsequent discussion * '''repr''', '''ribrepr''', '''ribscale''', '''surfrepr''' (maybe consolidate into a new '''style''' command, generalizing ribbon to cartoon as per [http://www.cgl.ucsf.edu/home/meng/chi2/ribbons.html ribbons writeup], and including pseudobonds; I'm not sure consolidation is better, however, since consolidation makes longer commands, and for such frequently used functionality we need easy-to-type commands) - styles for this release include atom/bond '''stick, bs, sphere'''; surface '''solid, mesh'''; and at least a default style or a few possibilities for ribbons/cartoons (I suggest rounded and edged with default scaling, and rounded with licorice scaling, i.e. thin tube) * '''color''' (leaving color-by-attr '''rangecolor''' and color-by-scalar-field '''scolor''' separate; '''rainbow''' might be merged with those two) * '''volume''' control over isosurface display (redundancy with show/hide/color etc. OK with me, but should review structure and keywords ''vs.'' the negotiable [http://www.cgl.ucsf.edu/home/meng/chi2/command-structure.html command guidelines]) * some way to adjust subdivision/smoothness; any global setting could be covered by '''set''' (see below) and any attribute by '''setattr''', but there could also be options in '''surface''', '''volume''', '''cartoon''' and/or a top-level '''quality''' command Extremely useful catchalls that I suggest retaining as permanent commands even though there will be some redundancy: * '''set''' global settings; for this release: silhouettes, background color, depth-cuing amount and color, interactive shadows, lighting (ambient occlusion, ambient-only, N-point) (if many sub-options, e.g. lighting, could make a separate top-level command; also keeping a redundant but longer '''set''' command is OK with me) * '''setattr''' attribute values GUI-only, or do we need commands? * '''select''' (including up/down) * save/restore session, could be '''save session''' with restore covered by '''open''', or '''session (save|restore)''' * '''save image''' (or '''image save''') with supersampling option Command accoutrements: * decide on keyword conventions (see [http://www.cgl.ucsf.edu/home/meng/chi2/command-structure.html command guidelines]) * decide on what kinds of colorspecs are allowed, ''e.g.'' can color names include spaces? * set of built-in color names == December release == The following functionality is listed for the December release, but not necessarily as commands: * '''transparency''' (similar to '''color'''; takes care of individual settings, whereas '''set''' or another command would be used for related global parameters) * '''freeze''' or something like that to control model activation for motion (in Chimera1, '''freeze''' is something different) * '''clip''', '''section''', '''thickness''' (suggest combining into single command to control global clipping, say '''clip''' or '''gclip''') * '''mclip''' per-model clipping * '''distance''' pseudobonds that could be intermodel * '''sop cap''' or equivalent (unless global options in '''clip''' would suffice) * single-layer transparency ('''set''' or other command control) Command accoutrements: * more built-in specs like ions, ligand, helix, strand, protein, ''etc.'' * full atomspecs (see [http://www.cgl.ucsf.edu/home/meng/chi2/frameatom_spec2.html Chimera2 atomspec writeup]) == Highly desirable == Again listed but not necessarily as commands: * '''findhbond''' * '''rangecolor''' or equivalent for color-by-attribute * '''scolor''' or equivalent for color-by-scalar (radial, volume value, ''etc.'') - logical to merge '''rangecolor''' and '''scolor''', maybe also '''rainbow''', but what's a good name? - color-by-scalar might only apply to surfaces and atoms * '''sop hideDust''' or equivalent * '''define''' geometric objects based on atomic coordinates: axes, planes, centroids, ellipsoids * '''shape''' or other way of defining geometric objects arbitrarily - I suggest BILD-like position specification; Chimera1 '''shape''' position specification is much too difficult * '''scene''' save, restore, list * fancy-shaped clipping (if global add options to '''clip''', otherwise to '''mclip''' if feasible; Chimera1 has octant stuff in '''vop''' subcommands) * '''label''' (possibly merge with '''rlabel'''; takes care of individual settings, whereas '''set''' or another command would set related global parameters) - whether global or not, I'd like a command control for font/fontsize (this isn't in mentioned in the features list, though) * '''2dlabels''' * '''colorkey''' * adjustable material properties ('''setattr''' or other) * background color-gradient ('''set''' or top-level '''background''' command) * multiple-layer transparency ('''set''' or other command control) * '''save/export''' PDB, volume data, ''etc.'' (question: what is the distinction between save and export? I don't understand how various programs divide output into these categories) Command accoutrements: * more built-in specs like functional groups, amino acid categories, element symbols, ''etc.'' == Would be nice == Again listed but not necessarily as commands: * '''cartoon''' (or whatever we're calling the ribbons-plus command) options for cylinders/pipes, planks * tube option(s) for cartoon '''style''' * ring fill, aromaticity, bond multiplicity options for atom '''style''' * '''surface''' provisions for multiple surfaces on same atoms, including SAS and/or SES == Eventually == * motion-scripting or other frame-argument commands (see [http://www.rbvi.ucsf.edu/chimera/docs/UsersGuide/movies.html#moviecommands Chimera1 movie-related commands])