= 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 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''' - pseudobond '''dashedStick''' (since TomG already added it), maybe '''solidStick''' and/or '''solidLine''' (if easy or already present) - surface (volume and molecular) '''solid, mesh''' - a default style or a few possibilities for ribbons/cartoons (say '''smooth''' and '''edged''' with default scaling; '''tube''' should be easier 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''' * '''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) == 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) * pseudobonds that could be intermodel (implying need for '''distance''') * '''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 ('''set''' if global, '''setattr''' if per-object; could also be an option in '''clip''' and/or '''mclip''') * single-layer transparency ('''set''' or other command control) * '''freeze''' or some other command to control model activation for motion (in Chimera1, '''freeze''' is something different) * '''help''' to bring up command documentation Expanded functionality of existing commands: * '''open''' (including fetch) cellPACK * '''select''' all, clear, invert Command accoutrements: * more built-in specs like '''protein, nucleic acid''',''etc.'' * 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... 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 * '''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) Expanded functionality of existing commands: * '''style''' options for pseudobonds (and maybe bonds) '''dottedStick, dashedStick, dotdashStick''' and I guess '''dottedLine, dashedLine, dotdashLine''' (but do we even need the lines any more?) 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 Expanded functionality of existing commands: * atoms/bonds ring fill, aromaticity, and bond multiplicity display (sub-options of '''style stick''' and/or settable with '''setattr''') * '''style''' option for cartoons, '''tube''' (similar to our current rounded licorice) == Eventually == * motion-scripting or other frame-argument commands (see [http://www.rbvi.ucsf.edu/chimera/docs/UsersGuide/movies.html#moviecommands Chimera1 movie-related commands])