= 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) - for this release: PDB, PDB/mmCIF, density maps * '''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, 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 pipes/cylinders or worm-by-attr) * '''surface''' solvent-excluded molecular surface - see [[SurfaceCategories]] discussion of categories and command design - 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 these will be used frequently); styles for this release: - atom/bond '''stick, bs, sphere''' (and '''line'''?) - pseudobond '''dashedStick''' (since TomG already added it; could be named something else) - '''stick''' and '''line''' (if we even have the latter) would apply to both atoms/bonds and pseudobonds - surface (volume isosurface and molecular surface) '''solid, mesh''' - a default style or a few possibilities for ribbons/cartoons (say '''smooth''' and '''edged''' with default scaling; '''tube''' should be easier to implement than those, even though it's down in the '''Would be nice''' section) - each style could have sub-options (''e.g.'' stick radius), or if it's too complicated to include them in the '''style''' command, they could be adjusted with '''setattr''' - see [http://www.cgl.ucsf.edu/home/meng/chi2/command-structure.html#examples command examples] for more detailed thoughts * '''color''' (leaving color-by-attr as in '''rangecolor''', color-by-scalar-field as in '''scolor''', and '''rainbow''' for later and separate from '''color''') * '''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) see [http://www.rbvi.ucsf.edu/chimera/docs/UsersGuide/selection.html#expandselect Chimera1 selection cascades] * 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 * built-in specs '''solvent, ions, ligand, main, helix, strand, coil''' (needed for molecular surface and ribbon anyway, might as well make them available for command-line use) * built-in specs for element and/or atom type, if already needed for setting radii for molecular surface calculation anyway * basic hierarchical atomspecs (see [http://www.cgl.ucsf.edu/home/meng/chi2/frameatom_spec2.html Chimera2 atomspec writeup]) == 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) - single-layer transparency ('''set''' or other command control) * '''clip''', '''section''', '''thickness''' (suggest combining into single command to control global clipping, say '''clip''' or '''gclip''') * '''mclip''' per-model clipping, plane or slab - capping of all solid objects, including surfaces, cartoons, atoms/bonds ('''set''' if global, '''setattr''' if per-object; could also be an option in '''clip''' and/or '''mclip''') * pseudobonds that could be intermodel (implying need for '''distance''') * '''active/~active, freeze/~freeze''' or some other command to control model activation for motion (in Chimera1, '''freeze''' is something different) * '''help''' to bring up command documentation * '''delete''' Expanded functionality of existing commands: * '''open''' (including fetch) cellPACK, which would elicit interface for exploring hierarchy * '''select''' all, clear, invert * '''set''' and '''setattr''' as mentioned in the previous section Command accoutrements: * command documentation * full atomspecs (see [http://www.cgl.ucsf.edu/home/meng/chi2/frameatom_spec2.html Chimera2 atomspec writeup]) * translation of menu actions into commands (if needed for full logging and replay... maybe it's not?) == Highly desirable == Again listed but not necessarily as commands: * smart molecule display (does that imply '''preset''' functionality?) * '''findhbond''' * '''rangecolor''' or equivalent for color-by-attribute - then '''defattr''' would be useful * '''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, unless we want cartoons to show residue values derived from the substituent atomic values * '''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 * '''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''' * '''sop hideDust''' or equivalent (I suggest below it might be a '''volume''' option) Expanded functionality of existing commands: * '''style''' options for pseudobonds: dotted and dashed sticks, dotted and dashed lines (but do we really need the latter any more?) * fancy-shaped selection and clipping (if global add options to '''clip''', otherwise to '''mclip''' if feasible; Chimera1 has octant stuff in '''vop''' subcommands) * '''volume''' isosurface smoothing, and maybe an option equivalent to '''sop hideDust''' (is this used for anything other than isosurfaces?) * '''save''' PDB, volume data, ''etc.'' * '''set''' (or other command) global settings: background color gradient, multiple-layer transparency (correctly rendered even for multiple models) * '''setattr''' (or other command) attributes: material properties Command accoutrements: * more built-in specs like '''protein, nucleic acid,''' functional groups, amino acid categories, element symbols, atom types, ''etc.'' (the latter two may have been needed for molecular surface and/or H-bond calculations anyway) == Would be nice == Again listed but not necessarily as commands: * '''nucleotides''' base-slab, sugar-tube, and ladder - need better defaults than in Chimera1, at least for smart display Expanded functionality of existing commands: * '''cartoon''' options for cylinders/pipes and planks (or should these be '''style''' options for existing cartoons instead? should also integrate with helix axes, ''i.e.'' the pipes=axes could be used in measurements) - I'm thinking cylinders could be a distinct option for helices, but that we don't really need perfectly box-shaped planks if there is an option for well-smoothed strands (like our default B spline strands in Chimera1) * '''style''' option for cartoons, '''tube''' (similar to our current rounded licorice) * '''surface''' provisions for multiple surfaces on same atoms, including SAS and/or SES * atoms/bonds ring fill, aromaticity, and bond multiplicity display (sub-options of '''style stick''' and/or settable with '''setattr''') == Eventually == * motion-scripting or other frame-argument commands (see [http://www.rbvi.ucsf.edu/chimera/docs/UsersGuide/movies.html#moviecommands Chimera1 movie-related commands])