
-*-text-*-

   What's Planned for the Upcoming Coot Releases?

-----

  o Refine a cyclic peptide ligand.  Make links and modifications as needs.  Feel the pain.
    
  o 2xkm is problematic when reading/converting the data.

  o Do we use JLigand.scm in jligand interface script?

  


-----

    Release 0.6 and 0.7 [Sept 2009, Dec 2011]

   Top commitments:

  o Edit a SHELXL file before refinement
* Done.
  o backrub on rotamer search
* Done.
  o Helix fitting overshoots
  o PISA output display
* Done
  o In the restraints editor, the volume sign should be displayed as 
    a string (generated from volume_string_int)
* Done
  o Make ligand fitting work from a given position (find the blob
    centre close and do the orientation search there)
* Done.
  o P backbone mode
* Done.

  Like to do:
  o redo sequence view
* Done.
  o Fix 64-bit coot problem(s)
* Done.

   o Add "centre molecule here" check button for reading coordinates
     Kevin M.

* Done


   o Seg Ids (Mailing list issue):

      At least in these two situations, I think that COOT could make a
      very educated guess as to the correct SEGID.

       * In mutate (simple or otherwise), COOT could carry over what
         existed for the residue being mutated

       * In "insert after terminal residue" COOT could carry over what
         exists for the terminal residue

      These might not always be correct, but they should be 99+% of
      the time.

* Done.

   o enable --splash-screen

* Done.

   o "CA mode" for nucleic acids should draw a P and C1' trace. [VR]
     Priority: 10, Difficulty: 4

* Done.

   o Does the window stay constant size (on something other than a
     laptop) on start, exit, start exit cycling?
     Priority: 6: Difficulty: 4

   o The lib dir should be set with AC_CHECK_LIB, not just "lib". Tim Fenn.
 
*  Let's hear from Tim Fenn.  OK, he replied.  Non-trivial.  OK, Punt to 0.6
   Done.

   o update map without generating a new molecule.
     Perhaps the NCS maps, or read a new map from MTZ updating a
     already existing map.

* Done.

  o Consider setting the "handled" flag only for key pressed that did
    something, e.g. we could then use the "B" and "S" keys, because they
    are not often used.  Maybe "A" too. Punt.

* Done.

  o Check out the virtualbox page on the ubuntu wiki for info about how
    to set it up. Punt.

  o What's crashing on using NCS in Bill's 0.5 build?  No idea.

* Problem gone now, I think.

   o Mails from Phil Evans, Stephen Graham, Early April 2008 about SEG
     ids.  Doing a NCS loop with Seg ids.  Doing a mutation with Segids
     (might be the same issue).  The segid for the new atoms should be
     inherited from those of the rest of the residue (if they are
     consistent).

* Done.

   o Give the user a chance to edit the ins file before it is sent off
     for refinement [Tobias Beck].  Not doing so, as currently,
     practically makes the shelxl refine in Coot useless if the user
     needs to modify the file.  Fire up a text widget with the .ins file
     in it.

* Done.

   o Rotamer plots need to update on multiple do/undos.

   o Now that we have sequence aligmment, how about supporting the
     mutation (to the assocated sequence residue type) of the residue
     that I'm looking at [James Whittle] - needs a function
     (associated-sequence-residue-type imol chain-id resno ins-code)
     -> 3-letter code or #f

   o in coot_toolbuttons.py Bernhard registers the icons.  Does that
     make them smooth?

* Not relevant now.

   o Phil Evans wants colour by chain as the default.  Can you make
     this the default at coordinates read time (similarly, others want
     CA mode).

   o Put globularize protein into Coot.  Make it a bit more clever?

   o Garib wants a function to move waters close to the protein.

* Done.

   o Do the tutorial.  Are the blob numbers correct? (EJD 1008 May 23
     suggests not).

* Seems fine

   o check the "movie" interface

* Is OK now.

   o Use LSQ for NCS matrices - need to be user setable option.

* Done.

   o Add the reading of a good map and a CNS map to tests.

* Done.

   o Backrub-based auto-fit rotamer search.  Question: how do I test
     this? Synthetic map?  How does it work when we do this for an alt
     conf too?  Man, this will be powerful, if I can make it work. Don't
     forget to also rotate the mainchain hydrogens.  Does
     is_mainchain_atom() working for mainchain hydrogens?

* Done.

   o Investigate interupting long fitting/Post MR tools [JED request]

* Done.

   o add a mechanism where we can register functions to run after
     refinement and/or regularization. 

* Done.
  
     or deleting things says JED.  In fact, a funtion to run that is
      attached to a molecule (somehow) on any update/change/manipulation.

* Done.

   o Fix the DNA/RNA names test (penelope gtk2 old-tests).  1hd

* see what cootbb says...  Bill says add it (currently is skipped).

   o Bill: This might be hard to implement, but in case it isn't, I
     thought it might be worth suggesting...

     It would be great to be able to click on a nucleotide base in a
     single strand of DNA or RNA and generate its W/C partner...

* Done.

   o Fix up mini-RSR so that it compiles properly.

   o Use libglade

* Done.

   o Rotate Translate: Add an additional GUI (possibly in the toolbar)
     to specify the type of R/T entity, a zone (default) a chain, a
     whole molecule.

   o Move widget functions in c-interface-build.cc to
     c-interface-gui.cc (or consider new c-interface-build-gui.cc).

   o Dynamic distances define need a pick cursor.

   o Put refine-zone and regularize-zone into the history.

   o multiple residue ranges, glycosylation, covalent bond entities
  
* Done.

   o Redo sequence view 

* Done.

   o check that the puckers of the ideal RNA/DNA is correct for A form
     and B form.  Try to find matrix example nucs for Z form.

* Done.

   o Centos/RHEL 4.6, has gtk2 version 2.4.13, fails to compile
     guile-gtk-2.1 out of the box. It didn't know about GtkAboutDialog,
     I think.  Also there were some extranaeous ^:^s in the .x
     files. 4hd.  
    
     Not going to get the hardware in before 0.5 is released.  Punt for 0.6.

* Done.

   o Hydrogens from a SHELXL molecule.  [What does this mean?]

   o Mouse bindings, consistency with MG.  Can we drag using middle
     mouse, instead of ctrl left mouse?  Needs abstraction of state in
     that function, I think.

   o helix fitting overshoots.  Try, amongst others, closed-monomer-works.map


   o Fix the DNA/RNA names test (penelope gtk2 old-tests).  1hd

* see what cootbb says...  Bill says add a thymine. 

   o consider making bonds to hydrogens thinner.  A spike needed to
     test for bonds split on thickness or colour most deeply.

   o Problem SHELX .ins file, enable bonds to symmetry atoms?

   o check for updates?

   o push back the rotation centre (for hardware stereo mode) in the
     viewport? [Mark Mayer 20080527].

   o Revisit CCP4mg button

   o Gtk2 coot: set the colour patch in the map properties and
     symmetry molecule colouring (needs version 2.6).  There is some
     problem in the update, how do I set continuous updates on the
     resulting colour chooser?

   o (un)Label atoms in given atom selection

   o More work on ligand bonding
       Things with Cl etc, 
       O->P bonds
       faster bonding with many molecules

   o colour by B-factor CA mode

   o Lasso (perhaps) active atoms to select atoms for R/Ting?  
     So that fragments of monomers can be moved independently

   o Update python files

   o Thymine in RNA: check string, "are you sure?" on finding a t.  If
     yes, sure add a Tr.  Need to add an O2' somehow to the reference Tr.

   o How about a post-swig command to add #ifdef USE_PYTHON around 
     coot_wrap_python.cc (or is it coot_wrap_python_pre.cc?)

     Is that necessary now?  In build-coot-fc4-gtk2,
     coot_wrap_python.cc is generated and so is an practically empty
     coot_wrap_python.lo

   o rotamer-score function needs to be filled

* Done.

   o "Find Waters" sometimes does not to put waters in what seems sensible
     places - why is that?

* Done.

   o Calculate NCS matrices from molecules created by
     new_molecule_by_atom_selection()

   o Check the distribution of selection of phi/psis from
     random-phi-psi function matches a Ramachandran plot

   o Randy's side-by-side frame drawing?

* Forget.

   o Investigate communcation with PISA

* Done.

   o "Fit ligand here" which gets a monomer then does a ligand search
     based on the blob at the current position.

* Done.

   o Non-bonded contacts.  Can they be speeded up.  What about nbcs
     with Hydrogens.  Are they good?  Refine 50 residues and profile.

   o Why does loop fitting fail on residue 96A of tutorial-modern.pdb?

   o Make fit-loop work backward.  

   o Profile the bonding on reading in a ribosome fragment. 2 minutes? 
     Not good.

* It's not the bonding, it's in the mmdb read function.

   o Make a demo script that downloads data and runs it - add it to
     the package and make it available to run from extensions.

   o Fit a ligand.  Use write_connectivity to generate its hydrogens.
     Use reduce and probe to make ligand interactions (and render them).

* Done.

   o Display ligand diapoles using charges from cif file.

* Done.

   o consider a function generator for dialog box of buttons.  Because
     we need a function that accepts args for close-dialog and one
     that does not.  A macro maybe.

   o Rotate/Translate a whole protein (many chains)

* Done.

   o When there is a non-square GL context, the axes become skewed.
     Needs othogonalizing.

   o Geometric distortions graph for alt confs - currently broken?

   o Update stand-alone refinement program. 
     (Write a test for it?)

* Update done. Tried test.  Problem in greg child process. Upgrade to
  guile-1.8.3.  Does that fix the greg child process problem?  If not,
  mail list.  And give up.  Check how greg behaves on compile/build - 
  it tests itself before install.

   o The zooming in out out of a Ramachandran plot is inelegant.
     Needs fixing.

   o Integrate scripting functions into main documentation somehow

* Done.

   o I want to be able to interupt those MR Extensions - not have to
     wait.

* Done.

   o When fitting waters in a low resolution(ish) map (from buccaneer
     tutorial), the water were often placed in protein density - it was
     missing the fact that the "water" density was connected to the
     protein density - because we only look at the masked map.
     (see bucca-tut on memory stick)

   o Use LSQ not SSM for NCS ghost matrix.
     (Make a speed test.)

* Done.

   o *create* a molecule by symmetry, not (just) write it out.
      Consider a dialog to Write/Create a symmetry molecule.

* Done.

   o RNA backbone plot by connecting phosphates

* Done.

   o NCS bone skeleton search - like ncs6d?.  Can be punted, if needed.

   o a test for write connectivity 1hd

* Don't know how to test this.

   o Add to scripting layer: add-alt-conf that will work on the active
     residue.  Not sure if it should auto-accept.  I guess not. 

   o rsync to bubbles test data.

* No need.


   o "Add a NAG/XXX?" to this ASN. look at using spin-search.  OK, a
     new spin-search is needed, where we spin all of a given residue
     round a bond specified in another residue.  This will involved some
     code refactoring.   ::: 4

* Do it by searching against all ASN NAGs in the PDB.

   o Can we have a regularize-residues (as in "sphere") function?
     That would be cool for fixing molecular models. ::: 2

* Yes, done.

   o Gtk2 coot: set the colour patch in the map properties and
     symmetry molecule colouring (needs version 2.6).  There is some
     problem in the update, how do I set continuous updates on the
     resulting colour chooser?  ::: 2 


   o PRE: Minor irritation: if I display the molecule as CA atoms
     only, clicking for naming or centering will still pick up the
     invisible non-CA atoms. It would be Nice if it didn't.  [Perhaps
     he means CA + ligs mode?] ::: 2

* Done. 

   o Tips should have a "No more tips" checkbuttons (Coot behaves like
     a proper program).

 
   o Request from Antony Oliver: Put an indicator for the current
     refinement map in (well, next to) the status bar.  Consider greying
     it out if the map is undisplayed.

   o Request from JED: Make the EDS map getter have a cancel button.
     And a progress bar ideally.

   o We need a function that does a renumber and rechain at the same time
     e.g. B 20-30  -> A 10-20
     In such a case we can't renumber then change the chain id.  
     Use it in merge-solvent-chains, and make merge-solvent-chains not need
     to renumber-waters first.

    o EJD: I want to do a Ramachandran plot of only a selection of residues.

    o EJD: I want the Ramachandran plot to be marked up if the atoms
      have zero occupancy.

    o Rebecca Vorhees(?) multiple residue ranges for the atom
      selection for rotate/translate (first) and rigid body fit.  And a
      GUI to make the ranges.

* Done

    o why is 'doc/c-interface_8h.texi' in the repository?  It should
      be generated.

    o Make the Go To Atom button be in the toolbar [Maia Cherney]

    o The Download from EDS needs an abort button (and thus downloaded
      in a thread).



Punted from 0.6:

   o Ingo K.: Ctrl left-mouse dragging sometimes does not work for alt
     conf fragment residue.  Can't reproduce.  Punt.  Needs checking
     with Ingo.  (He means refinement?)

   o Does the window stay constant size (on something other than a
     laptop) on start, exit, start exit cycling?
     Priority: 6: Difficulty: 4  ::: 2

   o Fix up mini-RSR so that it compiles properly. ::: 4

* Done.

   o Put refine-zone and regularize-zone into the history. ::: 2


   o consider making bonds to hydrogens thinner.  A spike needed to
     test for bonds split on thickness or colour most deeply.  ::: 5

* Done.

   o Delay the reading of coords, mtzs, maps until after ~/.coot etc
     have been read (something like run_command_line_scripts()], see
     handle_command_line_data().  [Pete Meyer] ::: 2

   o Helix fitting overshoots - e.g.     
       1a02: place helix here at (9.2 36.6 28.3)
       1env: place helix here - many places.  Lots of errors.

       3cjb_sigmaa at (-22.9451 0.2204 20.011) fail.

       ::: 4


     o Markus Rudolf: 

  when updating to the latest gtk1 or gtk2 builds, we get this error:

  Gtk-WARNING **: invalid cast from `GtkLabel' to `GtkContainer'
  Gtk-CRITICAL **: file gtkcontainer.c: line 1119 (gtk_container_foreach): assertion `GTK_IS_CONTAINER (container)' failed.

  gtk1 build 1855 works fine. 

    Baah.  Can't reproduce.  Needs to be followed up. get startup
    script etc.

        ::: 1


   o Add add rep of a residue.  Change background to white.  Rotate
     view.  Ugliness! ::: 2 [Erik Vogan]

* Done.

   o Garib wants a function to move (symmetry-related) waters close to
     the protein. ::: 4

* Done.

   o Put the scripting window into the state file. How do we know if
     the scripting window is open at end time? ::: 1


   o Fixing atoms does not stop them from moving with
     rotate/translate.  Should it?  Yes, I think ::: 1

   o RNA/DNA backbone in symmetry.

* Done.

   o For spin-searching the carbohydrate you need to give an atom spec
     for the spin vector atoms.

   o *create* a molecule by symmetry, not (just) write it out.
      Consider a dialog to Write/Create a symmetry molecule.  ::: 2

*  You need to supply a RTop, not a string symmetry operator though.
   We should have both, I suppose.  Punt.  Look at the
   symm_card_composition_t class in coot-shelx.hh.  Call it with the 
   passed string, and the loot at x_element, y_element, z_element (and 
   the frac_trans) to make a fractional matrix, which can be used in 
   new-molecule-by-symmetry.

   o How about a "recover" .coot-recover file that contains the view
     the saved pdb file, the molecule name (and whatever else is needed)
     so that on a crash, coot can elegantly recover.  That would be cool.

   o ROT_TRANS_TYPE_MULTI_RANGE, so that we can make a "setup" of
     rigid body refine at the scritping layer (currently rot/trans setup
     is only done by clicking).
     SCM rotate_translate_residue_ranges(int imol, SCM residue_ranges)

* Done.

   o Env distances should have an "molecule number" attribute - when
     that molecule is not displayed, not show the env distances.

* Done.

   o Tim Fenn library thing. 
     Actually, this looks horrific
 
* Mostly done.

   o Add a residue at residue number 2300 say and see if the sequence
     view behaves OK.

   o Phil Evans: can I set the NCS peer molecules myself so that NCS
     modificiations are not set to molecules to which I think they don't
     apply?

* I suppose so. clear-ncs-ghost-matrices and add-ncs-matrix.  Or
  simply change the homology_level (bad name for variable).

   o make sure that PDB cif r2wousf.ent.gz (or some such, that you get
     from the PDB works slickly as a cif file with sigmma maps).

   o Residue Info window is not updated when an alt-conformation is
     added [Miguel] 

* Done.

   o Need to fix up the baton build interface to add start up only
     when there is a skeleton (or offer to do it).

   o Put guile-gui and net-http into main Coot package - this makes the 
     Ubuntu/Fedora packaging a lot easier.

   o Add an option to do sphere refinement in all molecule
     Ramachandran refinement

   o KH:
      In baton build, make it work more clearly when starting
      with no skeleton.
      ->  ask me to make a skeleton

   o Stephen Graham: the NCS Master chain id on the NCS edits is
     confusing.  see email 2009/09/16

* Done.

   o Validate ligand corresponds to dictionary.  Are supposedly bonded
     atoms within 3A or each other?  Do the atom names match?

   o in graphics_info_t::refine_residue() (or something) there is a
     copy of the xmap out of the imol-refinement-map.  Use a
     reference. ::: 1

   o JED: You should do RSR refinement on ligand fitting results to
     make the score more meaningful. [Do it for the top n fits? ] ::: 6

   o Make sulfurs yellow.  At least optionally.

   o Consider a "Validate" mode [checkbutton?] on reading coordinates
     (or command line option).  That displays Ramachandran plot, rotamer
     analysis for the given molecule.

   o "Fast Save" - save all models that have been changed to the
     default name.  ::: 2

* Done.

   o SBASE or split up chemical component library and use (something
     like?) get-monomer-from-dictionary()

   o Steven Sheriff: PHE and TYR swaps (test_and_fix_PHE_TYR_nomenclature_errors()) 
     should be written to console.

   o put a "fix nomenclature errors" button in the rotamer graph.

   o Steven Sheriff:: COOT is putting LINK records followed by SSBOND
     records. The PDB standard is SSBOND records followed by LINK
     records.

* Done. 


0.6.1 

   27.5 dev points

   o Check waters by difference map fails on Misty's waters.  Data on
     stick.   ::: 3

   o update guile :: 0.4

   o Use libcurl to get URLs.  It does proxies.  Stop using nethttp.
     ::: 3

* Done.

   o Quicksave: save all molecules (if they need saving) to default
     names and save state. ::: 1

* Done.

   o consider guile-lib's unit test, not greg.
     ::: 1

   o Need a keybinding for "regularize these 3 residues". ::: 0.5

* Done.

   o OXT in refinement (e.g. monomer-BCS.pdb) fails to reach
     convergence. ::: 3

* Done.

   o Baton-build mode needs to work better when starting with no
     skeleton.   ::: 1

   o Can baton mode work when the skeleton runs out? ::: 3

   o Fix the built-in help.  ::: 1

   o Find Waters: why does it miss some nice densities sometimes?  ::: 4

* Done.

   o Check hydrogens on ligands are generated by reduce? ::: 3

* Done.

   o fit-waters should have a mode where bumps to protein atoms are
     considered (not sphere refine - we don't want to move the protein
     atoms).  ::: 1

   o the get_clash_score() in backrub_rotamer should work with a
     (pre-generated) selection of residues - rather than the whole
     molecule - which should speed things up a lot (especially for large
     molecules). ::: 2

   o HK: I want a function to set the refinement weight for me, 
     i.e.  it should do a triple refine and look at the chi squareds.
     Keep doing that with different weights until we get to 1.0.  ::: 2

* Done.

   o Make python coot work on CentOS 4.  It does?  Needs testing.  ::: 2

* Done.

   o I am looking at a symmetry-related part of the molecule. Take me
     to the main molecule (try unapplying symmetry to get there). 
     ::: 2

* Done.

   o "Space" through waters.  Delete a water.  "space" recentres
     where?  Now do the same, but go through the waters backwards using
     "shift space" - Ingo Korndoerfer ::: 1

* Done.

   o Hydrogens should have thinner bonds.  (Not half bonds - all grey
     - more like molprobity/KING)

* Done.

  o the chi-squared dialog should have "the worst geometric feature"
    in the local refinement.  

  o Wiggly ligands for succrose in the CSH lysozyme data. Data on
    stick. Maybe a dictionary issue ::: 2

  o Rpath Library issues (Clemens message). ::: 2

  o search for, download, update binary.  Needs libcurl ::: 4

* Done.

  o extend ^g mechanism to comprehend a 3-letter triple e.g. AGL (or lower
    case) which refers to a position in the sequence.  Look in displayed
    molecules and go to the first one found. ::: 1

  o check that the rama plot plots residues with alt confs. :::  2

  o sort chains should create a model by copying chains.  that way
    headers don't get lost. [JED bug]  ::: 2

* Done?

  o rework clipper.m4 so that it uses clipper-config, once
    clipper-config is in place.  ::: 2

  o optimize_rotamer_by_atom_names() need to be thrown out and
    rewritten.  Use richardson rotamers (rotamer_probability_table) for
    optimisation.

  o alignment problems - Bob.
    Putting the test-target.pir sequence of 3lhj onto 2z7l
    (reference)

     ISP-FE
     LSRPFQ

     Still an issue?


 ------


 0.7 Priorities:

   o Does Ca Zone -> Backbone crash?  (or is that only trunk?) ::: 1 

   o read in 2Y0Z.pdb.  Ugliness reading UNK from sbase.

   o sphere refine doesn't work for alt confs.

   o Airlie's ensemble_merged.pdb give bad bonding in 0.7-pre

   o reading a cif from the PDB (e.g. 1X8B.cif) creates a molecule
     with atom elements 1-char.  Hence bonding fails.

     Maybe also importing molecules from SBase.

* Done.

   o change clipper macros to use clipper-config and not invent mmdb
     and fftw, ccp4 libraries.  clipper-config is broken (cctbx libs)
     grr. ::: 3  

   o difference map (given previous model and new obs MTZ file, run
     refmac no cyles to make a map, coot rigid-body per chain then
     refmac to make phases for new model - get cell from passed MTZ
     file, go to active site (passed value), create a view, pass 3
     orthogonal views to be rendered by ccp4mg).  Punted.

   o consider roll up/collapse addition representation in Display
     manager when they are not displayed.  Punted. ::: 2

   o Phil: I want to set in my ~/.coot file that all new molecules
     will be opened in "colour by chain" mode (not just the ones that
     I've already opened).

  o Can you mutate residues in alt confs?  BN ::: 3

* No.  Should we be able?  Yes, I think so.

   o coordination number of waters validataion check (punted) ::: 5 

* Done.

   o draw surface within x A of a ligand

* Done.

   o bonded_residues_conventional() need to check for other links in
     the selection.

   o check that SSBOND and LINK cards are valid on writing PDB.

   o chemical component library interface (punted) ::: 4

   o Generic Display Ojbect dialog should be scrollable (e.g. in use
     with PISA interfaces).

   o sphere-refine:  turn on rama restraints for restraints from residue_vec.
     make_link_restraints_by_linear() has
     if (do_rama_plot_restraints)
       add_rama_links(selHnd, geom);

    make_link_restraints_from_res_vec() has
    add_rama_links_from_res_vec(), but that is not filled.
    need something like bonded_residues_from_res_vec(), but for
    residue triples - returning 3 residues.
    ::: 3

   o anisotropic atom radius. Punted ::: 1

   o Environment distances turn off badly [JED].  Not sure if this is
     a problem or how to fix it.  Needs some thinking. Punted. ::: 1

   o white background with ball and stick models. Punted ::: 4

* Done.

   o Put "Modified Residue/Other" button in Mutate dialog that fires
     up the "Replace Residue" dialog - or something like that.

   o Rotate/Translate on dsDNA (for example)

* Done.

   o Move (symmetry-related) waters around protein (or has this been
     done by now?)

* Done.

   o CA (or CA + ligs?) mode, edit bond colours -> Changes the colour
     of the first chain only.   ::: 1

* Done.

   o Rotation for add terminal residue.  hari jayaram & Donald Raymond
   ::: 2

* Bleugh.  How about a keybinding that fires up the R/T dialog mode
  for the newly added residue?

   o mutate-by-overlap: if you have already loaded a molecule with a
     single residue with name XXX and you have read in a dictionary
     entry for XXX, then coot should use that. [ Tickle, 20090723]  ::: 3

* Done.

   o to make the rotamer probabilites smooth, FFT them like
     Otwinowski's Ramachachandran plots.  FFTW in mult-dimentions.  Hmm.
   
   o (consider) Luca Jovine: I want to do sphere regularization  ::: 2

* Done.

   o (consider) Add/generate HELIX and SHEET PDB header info.  ::: 3

   o consider changing auto-open behaviour, as Randy Read suggests.
     Or perhaps like Kevin suggests:  prefix.F and prefix.phi
      ::: 3

   o "Quick Bumps"

   o Find nomenclature errors on reading coordinates file and give a
     dialog to fix if necessary

   o "Flip" chirality restraint

* Done.

   o Put Sphere Refinement in modelling toolbar

* Done.

   o Bond ligand by dictionary

* Done.

   o symmetry-related pointer distances?

* Done.

   o handle_command_line_data() should happen in c_inner_main(), after
     reading ~/.coot (and other scripts, perhaps?).  Which means, I
     think, that graphics_info_t:: needs a static copy of the cld.

   o "click - click" to add a LINK (and LINK record)

* Done.

   o Ramachandran plots don't update on "undo"?   Punt.

*Maybe done, needs checking.

   o Rotamer plot doesn't update on sidechain 180?  Punt.

   o Martyn: http://2dx.org/documentation/mrc-software/mrc-documentation
     "23	ISPG     space group number 0 or 1 (default=0)".
     If spacegroup is 0, put the map into an nxmap.  ::: 6

   o when running from the "wrong" directory, do a better job at
     letting the user know there is a problem (an informative dialog,
     let's say) when running (say) search monomer library and pressing
     on a returned button.   ::: 1

   o residues in DNA from modern PDB files is DG, DA, DC, DT.  Need
     to map to refmac name, restraints don't work.

* Done.

    * The correct solution is to generate a dictionary for DG, DA
      etc from that GD.cif (Gd) (etc) as they are read in.  Note that in
      DT, C5M (in the dictionary) become C7 (new PDB coordinate
      format/convention).

* Done.

   o Phil Evans: "the Extensions->NCS->Copy NCS residue range only
     seems to work if the master chain is the same as that given in the
     NCS ghost control. Otherwise nothing happens and there's no error
     message."

* Added error message.

     We need a function to return the NCS masters of a given molecule
     (deep inspection of the target chains of the ghosts, I guess).
     Return a SCM: #f or a list of chain-ids (hopefully, just one
     item).

* Done.

   o update probe dots (probe-local-sphere) should do a merge with
     already existing dots - removing the overlaping dots.

* Done?

   o in simple_restraint::minimize() should we return traffic lights
     when the result has not terminated correctly?  Currently the return
     value from chi_squareds() is not saved (and returned).

* Done.

   o Add a NAG to this ASN (or ARG (less common)) (this is N-linked).
     Also consider O-link (on a SER, THR, TYR). Examine good N-linked
     NAGs in PDB structures and find the chi1, chi2, glycosylation link
     torsion angle.  Use these to same from. JB

   o I want to add a residue that has insertion code (e.g. add to
     residue 60 and residue 61 already exists).  JB.

    o Sue Roberts: when generating sfs from cif
      (run-refmac-for-phases), make it so that refmac doeesnt check the
      geometry of the ligand (or so) first.  Just generate sfs!  talk to
      garib about how to do that.

    o internal: c-interface map functions should be in
      c-interface-maps.cc

    o consider an option for refinement post-ligand.  Consider a
      command-line tool for this (shell script maybe).

    o Kevin NX map code for EM maps [11 Aug 2010: nxmap]

    o torsion on a NAD work (fix the dictionary)?

* Pending reply from Garib. 

    o clipper::Skeleton_basic::Neighbours neighb(xmap, 0.25, 1.75); // 3x3x3 cube, not centre

      this is not true: needs checking where such neighbours are set
      we pass square limits, i.e. 0.5 and 3.1 for 3x3x3 cube, not centre

    o consider adding dynamic add lib for write_connectivity, for the
      case where a ligand exists, but no (refmac) dictionary has yet
      been added (note that we only need the bonds for write_connectivity).

    o For em fitting: e.g. 2zvv in 1485 em, need rigid body fit molecule.

* Done.

    o sequence view for 1miu - not filled and lots of space on right.

* Done.

    o see how many times the bond drawing routine is called for
      modifications such as post-translate or post-rsr.  Should be 1,
      not 2.

 ------
    

    Release 0.8, Sept 2013

   o density fit analysis graph can use correlation coefficient?

     Seems so.  look at graphics-info-graphs:
     graphics_info_t::density_fit_from_residues()

     Punt for 0.8.

   o closest_atom() should do what it says.  rename current
     (user-level) function closest_atom_preferring_CA().

   o Pepflip: fails when there is a not a next N.  All we often want
     to do in such cases, is to rotate the carbonyl O 180 degrees about
     CA-C vector and we can do that without next N.
 
* Done.

   o control shift arrows to rotate residue

* Done.  Nice.

   o better density scoring peptide addtitions (score holes/lack of
     density).

   o Phil: I want colour by chain to be the default.
     How about a post-read hook? ::: 1

* Yes.  Stick it in handle_read_draw_molecule_with_recentre().  But
  punt for now.

   o Given an mtz, pdb, and SMILES.  Apply this ligand over ligand in 
     pdb and RSR the result (if the mtz file is given).

* Punted.

   o charge on lidia?

* Punt

   o density fit analysis graph can use correlation coefficient?

*    Seems so.  look at graphics-info-graphs:
     graphics_info_t::density_fit_from_residues()
     Punt.

   o colour-by-molecule hydrogens should be thin.

* Punted.

  o dot molecule-info-class dots functions in their own file.

  o when using link chirals in refinement, do check that the correct
    LINK anomer is being used when linking carboydrate monomers.  Write
    a test.

  o in lidia, if a residue has more than one bond to the ligand, then
    the ideal length should be lengthened a bit.

  * Split out graphics functions from c-interface.h. ::: 4

  * replace guile-gtk with guile-gnome ::: 15

   o Use gtk-builder.

   o Can lbg be called in command-line mode to make a picture?

* Yes.

   o Can the picture from lidia be double resolution?

   o consider: mmdb.cc:get_atom_selection() uses mdl_mol_to_asc(m).
     Can we get the bond orders from there and make minimal restraints?

  o residue -> 2d should work for prodrg route. Punted. ::: 2

  o When map is undefined choose the first non-difference map. Punted.

   o make minimol's addresidue() work with inscodes.  e.g. the 52A PRO
   in "Autofit Rotamer on Residues with Insertion codes" test. (see
   that an exception is thrown in backrub_rotamer search().)


    o MR:

       in case no refinement map is selected, asks you for one and
       real space refinement stays active, which is quite handy since
       it saves a click. Could you enable the same for the rigid body
       fit function in the model-fit-refine menu?

* Yes, but Punt.


   o put in additional restraints into Raster3D output.  On a white background with density.

* Punted

   o How does segmentation work on the ribosome map?  Pintilie(sp?) review of map segmentations.

* Punted.

   o Add Delete Link function (like add link)

* Punted.

   o remove the need for this patch:
     http://pkgs.fedoraproject.org/cgit/coot.git/tree/coot-user-manual.texi.patch

* Punted.

   o can I fix the need for this patch? 
     http://pkgs.fedoraproject.org/cgit/coot.git/tree/coot-guile.patch

* Punted.

   o 	We need to activate this: graphics_info_t::execute_add_terminal_residue
        // just shove it on without a map (i.e. add a residue with no map)


   o sort out the problem with the color wheel colour chooser from the
     colour-picker/patch widget for maps.  This needs to update the map 
     colour dynamically.

   o turn off ring torsions in conformer generation.

   o sort out the includes so that I use -I .. and
     #include "ideal/geometry.hh" etc.

   o consider --with-valgrind arg when configuring python

   o BN: Delete waters is not rejecting waters that are overlapping
   symmetry related molecules.  I just had a big rebuild that involved
   moving a large amount of main chain.  I didn't bother to detete the
   waters as I rebuilt the protein since I figured I would clean up at
   the end.  When I used the validat waters function and clicked over
   to delete, it only deleted a small number of waters, so I went
   looking to see why.  It looks like most of the waters which overlap
   with a symmetry copy of the molecule were not flagged or deleted.


   o when reading SBase/SRS? minimal restraints and then FLEVing - we
   miss aromatic ring detection.  Why?  We have kekulized bonds - but
   are atoms marked as aromatic and we are ignoring that? (typically
   we have restraints from prodrg that marks bonds as aromatic).  Can
   I say that a bond between aromatic atoms is aromatic?

   o handle links properly (as above).

   o multiple representations?
  
   o Add Terminal Residue should pick up from the assigned sequence.
     Should work for bases too.

   o Use LINKRs in restraints (punted from 0.7) ::: 2

   o "Isolate ligand" (i.e. ligand an neighbours) view.  Animated scale on application.

   o Fix leak and deprecated functions message.

* Half done


   o Add parentheses if they are missing from an interactive scripting
     command

   o RNA rotamer analysis "What is the rotamer of this suite here?"

   o modelling operations should preserve view and a text
     description. Undo should go to view and give a dialog about the
     operation.

   o Maia Cherney: 
 
     The general torsion function is not as good as the torsion in old
     X-fit. In x-fit you click on two atoms of a single bond and you
     can rotate the rest of the molecule around that bond. This bond
     can be in the middle of the main chain etc. It's a very useful
     function, if you need to rotate a polypeptide around a single
     bond. 

   o cross2 chiral restraints, HEC and HEA.

  * rework build script with guile-gnome dependencies (can of worms?)
    ::: 8

   o Fix various bondings of 2ldf mmCIF (for example).  Punted from 0.7

   o use COOT_N_PROCESSOR in the conformer and ligand search. Puntable


  o changing chain ids and residue numbers should change the header
    info (SSBOND, LINK, HELIX, SHEET, CISPEP, SITE etc). Punted from 0.7. 
    ::: 6

  o when using secondary structure representation, (CAs) on accepting
    atoms after refinement update the secondary structure. Punted.


  o consider better analysis of disulfides, bonding and refinement.
    Consider iron-sulfur clusters.  Punted ::: 3  


  o pointer distances should give distances to symmetry molecules too
  - punted. ::: 2


  o ligand in 3ti6 (I think) G39, hydrogenate, remove a H from the NH3+
  and view in LIDIA - ccp4 path - and it puts the H back (now NH3+
  in LIDIA)

  o sphere refine on alt confed ligands (ingo k)

* Too complicated to make work for 0.7.  refine-residues needs an alt-conf argument


   o read in components-PH2.cif and use Display mananger to delete the
      molecule. ::: 0.5

* This is hardly a problem - it creates an empty molecule 0.  I
  suppose ideally that it should create a normal model molecule.

   o FUN: Use net/pdbe to get SMILES string for given comp_id

   o Old backups dialog should be a transient. Could be tricky.
     Punted.

   o Sphere refine on an alt conf (say the 72 CYS of tutorial).  Check
     back-bone geometry. (JED).  refine-residues-with-alt-conf ::: 2

* Can't reproduce.

   o check for existance of pkg-config before running it.

* This is hard to do.  Why is it a problem?


   o if ssmlib is not installed, coot's configure should object (or
   conditionally compile ssmlib code (including ssm_align.h was the
   problem, I think)).

* I can't work it out.  All includes of ssm_align.h are protected by HAVE_SSMLIB

 
   Use vdw distances (look them up) and H-bond status to show
   interactions with Environment distances.  Different rules for
   hydrogenated molecule.  See the problem by turning up the Max Dist
   to 4 with a hydrogenated complex.

   o Helix fitting at low res: can you do a better job at reducing the ambiguity?

* Punted


   o make refmac from recent pdbe work with intensities.

* No. Punt. run-refmac will need to be substantially reworked (command line args)



------

   Release 0.8.2 

Think about:


   o 6BP is badly modelled.  Wrong partial charges on Restraints
     editor on reading the PDBe ligand cif.

   o I don't want to see the hydrogens, so I opened it in coot and hide the hydrogen. 
     But when I generate symmetry coordinate (my protein is tetramer with monomer in 
     each ASU), all the symmetry mates (with in 8A) have hydrogens and I can not hide 
     them. How can I hide the hydrogen in symmetry-related coordinates. 
                 -- Zhenwei Su.

* Looks OK to me.  Email him.

   o Improve the colours for density fit analysis - and note FEM map
     usage - Emilia Arturo

   o Dave Lodowski alt-conf H problem.

   o draw_generic_text() should have a user-setable font size.

   o CSHL:

       * Scaling of density fit analysis with very fine grid


   o compile a coot without python

   o Torsion fit this residue pyrogen-I79.pdb in 3rvb

   o Try glyco tree builder 528 on 4lxr. 

   o build NAG-NAG on 3bt1 on 172U ASN.

* Nasty - and interesting.

   o reading a pdbfile that is a directory causes mmdb2 to hang?

* Reported.  Check it at the user-level - makes sense.

   o jiggle fit leaves behind atoms that have zero occupancy? 
     e.g. jiggle-fit the acedrg output of Acedrg on I79.cif in 3rvb

----

   Release 0.9, Facelift-release [May 2015]

   o experiment: use Rdkit with pdb perception to generate molecules and 
     compare them with molecules generated from reading the cif.

   o Tom T CSHL 2015: When finding a helix [at high resolution], you
     expect the density down the middle to be low.  Hmm... this is not
     true at high resolution, so what is the radial distribution of
     density as a function of resolution?  Analyse structures of the PDB?

   o Tom T CSHL 2015: extend this fragment - rama based addition of residues

   o enum-type the bonds in the geometry dictionary.

   o Remove hydrogens from refinement.  Punt for 0.9

   o Add a residue selection for the ramachandran plot: Eleanor, Olvier Clarke


   o Can coot generate PDB annotated assemblies that are provided in
     the pdbx_struct_assembly* categories in the mmCIF file. -- Sameer V.
     (needs mmdb support).  Punted.

   o Make it easy to "accept current mode" early in a big sphere
     refine - Oliver Clarke

   o Oliver Clarke:

   > another suggestion/query - the view can be rotated/translated
   > with the mouse during selection of a zone for rigid body fit,
   > regularize zone etc, but this does not work when selecting a zone
   > for real space refinement. Is this intended?

   > I find the capacity to alter the viewpoint during definition of a
   > zone helpful, and I think it might be preferable if zone
   > selection for real space refine worked the same way as for the
   > other zone selection functions.

   > I know you can hold down the Ctrl key to rotate the view during
   > selection of a zone for real space refine, but I do not know of a
   > way to translate the view like one can do when selecting a zone
   > for rigid body fitting (and I dont see an obvious reason for the
   > inconsistency in behaviour between the two functions).

   o Torsion fit this residue pyrogen-I79.pdb in 3rvb.

   o in Jones' Rainbow for 2hvs, why can't I pick D125? (because it
     doesn't have a P)

     - punted.

   o Is there a way to enable pointer distance measurements to include nearby
     symmetry-equivalent molecules? [Aaron Finke]

   o Think about helical symmetry:
     http://www.ebi.ac.uk/pdbe/entry/pdb/4v3p/analysis

   o November project: 

     Make ligand fitting more automated - add RSR.

     there should be a details button/something in the refinement
     results where you can see individual distortions - sorted.

   o consolidate map_statistics_t and density_correlation_stats_info_t

   o make it easier to learn key-bindings.  

       Consolidate built-ins with custom?
       Add accelerator labels to buttons?

   o generic display objects needs an "All off/ All on" check button
     And a close button

   o can you make the double-line filter in contouring faster: using
     an index hash? (use long long) Write a test - scroll up and down
     a 20A sphere, say.

   o adding a water twice at the same position (after rbf?).  
     Can you stop this happening? Or alert user?  Or something?

   o Re-write ligand fitting tutorial using UJ6 from 4cgf (needs
     flexible fitting and consideration of chirality)

   o sharpen a Patterson. Kevin message

   o GLC pyranose 1-4 linked template.

   o jiggle fit should use a map that has masked out density for
     neighbour residues.  Punt.


   o column types are not set in mtz file written by mmcif_sfs_to_mtz().

* clipper bug.  Punt.

   o PISA Interfaces surface colours are wrong. 

   o add surface and ball and stick ligand to tutorial.

   o hydrophobicity surface for next year (that's 2014, right?)

   o Reconsider descision to disallow reading of molecules with
     different residues but the same residue number and insertion code.

   o Consider change to configure.ac ::: 1

   o Felix Frolow: (copy-residue-range-from-ncs-master-to-chains 0 "A" 1 500 (list "B" "C" "D" "E")) 
     but master chain is not A.
 
     :-( Sorry Felix.

   o interesting ligand series examples: 4cie..s 4cj4..5 4cje..p
     "The Sample Challange". Journal of Computer-aided molecular design.  Tom Peat.
     Anthony Nicholls (Open Eye) behind this.

     Also look at trypsin for the sample challenge.  Does it look like benzamidine?

     2xx series, e.g. 2xx7, 2xx8, 2xxh, 2xxi, 2xxj

   o in FLEV the carboxylate of ligand Q31 doesn't make a H-bond to
     the mainchain.  Why not?

   o Try Ramachandran restraints with hydrogen atoms, look at
     clash score, low resolution maps

   o new molecule from atom selection (Copy Fragment) should generate
     a PDB file that has a CRYST1 card.

   o the question is why the chemical features on the
      carboxylate are asymmetric.  undelocalize()?

   o test water_to_protein_distance_limits() use in find-waters
     in findwaters, allow the user to change the distance limits: 
     set_water_to_protein_distance_limits()

* This is just too boring - punted.

   o Lots of testing of add other solvent molecules, jiggle-fit, in
     low-resolution maps, perhaps?

    on mogul validation of MFX the 3rd time (after deleting hydrogens)

       (why does the residue pointer recover in 3?)

#0  __strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:31
#1  0x00007f0eff2bfa20 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) ()
   from /usr/lib/libstdc++.so.6
#2  0x0000000000594b56 in coot::fill_mogul_bonds_tab (mogul_bonds_treeview=<value optimised out>, mogul_results_dialog=<value optimised out>, m=..., 
    r=<value optimised out>) at ../../coot/trunk/src/c-interface-mogul.cc:269
#3  0x00000000005980ad in wrapped_create_mogul_geometry_dialog (m=..., residue=0x51d8c20) at ../../coot/trunk/src/c-interface-mogul.cc:221
#4  0x000000000059814f in show_mogul_geometry_dialog (m=..., residue=0xffffffffffffffff) at ../../coot/trunk/src/c-interface-mogul.cc:170
#5  0x0000000000598398 in mogul_markup (imol=<value optimised out>, chain_id=0x5b91c90 "", res_no=1, ins_code=0x5c23550 "", 
    mogul_out_file_name=<value optimised out>) at ../../coot/trunk/src/c-interface-mogul.cc:30

   o is 4CJN published yet?

   o The test-mogl.scm script needs to be updated. Do this at work.

   o lbg: get molecule needs to get comp-id (3 letter codes) (if caps
     or numbers)

   o Lots of testing of add other solvent molecules, jiggle-fit, in
     low-resolution maps, perhaps?

   o Charge function in Lidia 

   o I want to be able to set the path for reduce and probe in my
     .coot.py file (not .coot)

     I've forgotten why this was an issue.

   o conditional SWIG - at compile time - for ENHANCED_LIGAND.

* Done?  Needs to be checked - e.g. by Garib.  Maybe I can do it?

   o hydrogenate the N terminus of tutorial-modern, what is happening to H3?

   o set_monomer_restraints() for planes needs some thought about how
     to handle individual atom esds.

   o When (for example) with-ssmlib-prefix is specified, but the
     include/libs are not found, then we should exit configure with 
     an error

  * Wish: highlight bond/atom/angles of restraints selected in
    Restraints editor [DB via BL].

   o George S. Riding atom U problem

* Needs B factor from U checked.  And integrated into test/test-data.

   o bundle coot.probe and coot.reduce in the binaries

   o what's this: 

     Ooops fixed atom dialog has gone!

     (I had indeed dismissed the Fixed Atom Dialog)  

   o why is one of the N+ in the nitros chiral in the thumbnail of 128?

   o modified residue (e.g. oxidised Cys).  Mutate it back to CYS.
     It's still HETATMs.

   o Jim Brannigan wants to see alt conf phi/psi angles in Residue Info.

   o in the mmcif to mtz reader, if there are 2 cells, use the first
     one, not the last one!  --- needs a clipper patch --- bleugh.

   o Top right exit should not write a state file.

       --no-state-file should not write a state file.

    But what about starting with interactive no to state-file reading?

    That also should write a state file. (user can use quick-save-as
    if they want)

* Improved now?  Needs checking.

   o check that FE-CYS link "just works" in sphere refine.

   o build NH4 in lbg.  Is the N charged in the resulting mol file?

   o for ligand check, turn off flips in reduce.

* There are no FLIP args, maybe it's on by default? 

   o in FLEV 2D, click on a bond -> 3d view centre to middle of those
     2 interacting atom

   o Pavel message: Map D to H so that you can refine proteins vs neutron data.

   o fit_to_map_by_random_jiggle should return a valid value.

   o ALPHA2-3 link refinement is broken?

   o go to atom Atom list for residue with insertion codes: e.g. H 60 in 3biu.

   o FUC - alpha1-2 - b- galact beta-1-4 NAG

                          beta-1-3 NAG


   o We need FUC decorations and GAL (beta galactose) decorations

*Done.  Needs a test.

   o get flavin.mol - and write a python script to show the bond
     properties (including aromaticity of bonds).  C10-C4X should be
     aromatic, shouldn't it?

* Sort of.  It'll do for now.

   o Tim G: AFIX problems.

   o remove graphics_info_t from molecule_class_info_t::update_symmetry().

   o Ethan Merrit: 4l2e ligand what is lldf from the VTF validation
     report?

   o Think about orienting a ligand for nice graphics view.  Attach it
     to the GUI Ligand button.

   o make refmac from recent pdbe work with intensities.

   o get rid of SWIG_FLAGS, see configure.in

   o lbg: get molecule needs to get comp-id (3 letter codes) (if caps
     or numbers)

* Nice but punt.

   o give me a function:

     distance_pairs(imol, chain_id_1, chain_id_2, bin_width)

      or maybe use atom selction in the general case

    which returns a histogram of the distances.

    bin_width is typically 1A.   

   give me an interface so that I can mmake a graph of this - and
   compare it to my own data.
                              - Thomas Grant


   o Tim Gruene: I have 2 maps, same grid etc, contour one map and
     colour by the values in the other - in a rainbow sort of way. 

   o Handle Oxidized cysine - with a modification

   o Alex Luso: Thu 14 May 01:42:09 2009 BST
     I wonder if adding the function as buttons on the
     baton window would be useful? (i.e. "Build Backwards" and "Build
     Forwards" - perhaps asking for user input as to the relevant
     res-num or guessing it). I think O does that. Just a thought.

* Done.

   o Clean up menu items, use Preferences.

* Done.

   o Internationalize (enable translations)

   o Switch to GTk2, guile1.8.  Dump Gtk1 interface, 

   o re-write build-it script

* Done.

   o read multiple files from shift and ctrl clicking in the file selection.

* Done.

   o check that refmac can run before starting PDBe (note that you
     need to handle the cached case) ::: 1


-----
 
   Release 1.0 [Christmas 2017]

