Friday, July 14, 2006

installing scipy and numpy with analysis

scipy and numpy provide sophisticated and fast mathematical routines for python and installing them with analysis should be a breeze. However, it wasn't quite as simple as it seemed ;-) Specifically analysis is built with narrow unicode support and scipy/numpy require wide support....

so you have to add --enable-unicode=ucs4 to the python configure command line when compiling python for analysis using the supplied python. This command this is at about line 346 in fro analysis 1.0.10

cmds = []
cmds.append('./configure --enable-unicode=ucs4 --prefix=%s/%s' % (top_dir,python_rel_dir))
cmds.append('make install')

in the function def compilePython(x11_abs_dir, tcl_abs_dir, tk_abs_dir):

Monday, June 26, 2006

what to do if an update fails

ccp analysis has a very nice update feature. However, if it fails you can get in a state where you can't start analysis to get the updates. So here are two simple cures (one is from Tim and uses a python interface, the second is just how to get to the update site with a web browser to pull down raw files).

To run the update agent without analysis running

  1. initialise you analysis environment so the ccpn root directory is set e.g. setenv
    CCPN_HOME ... in csh syntax or export CCPN_HOME='...' in sh syntax
  2. if need be setup you pythonpath to include the ccpn directories
  3. python $CCPN_HOME/python/ccpnmr/update/ and proceed as usual

to use a web browser...

  2. this directory will contain files of the form where would be Util for for example
  3. download save and install

Monday, June 12, 2006

analysis on dapper drake & Edgy Eft

Installing analysis on ubuntu dapper drake (ubuntu 6.06LTS) is not a clean affair for various murky reasons (none of which are to do with the ccpn chaps by the way just life and code rot).

So here goes


  1. you need gcc and g++ installed (packages gcc and g++-4.0)
  2. you need glut installed (packages freeglut3, freeglut3-dev)
  3. you need the x development headers and extension installed (packages libext6 and libxext-dev libx11-dev; more on this later)
  4. you must have build-essential installed if you want to compile your own python

  1. don't try to use the installation of tcl/tk that comee from ubuntu they don't play well with the ccpn installation script (tcl/tk lib and include are not both under the same directory)
  2. don't use the tcl/tk 8.3 files that come with ccpnmr 1.0.10 tas hey have configure scripts that are broken under the latest versions of bash
  3. get tcl8.4.13-src.tar.gz and tk8.4.13-src.tar.gz
  4. mkdir tk8.4 and tcl8.4 in ccpnmr1.0
  5. place thetcl/tk tar files in their respective directories
  6. gunzip them
  7. remove the -src part of the name e.g. tk8.4.13-src.tar.gz -> tk8.4.13.tar.gz
now edit the installation script
  1. line 27 tcltk_version = '8.4' #was tcltk_version = '8.3'
  2. line 28 tcltk_release = '8.4.13' #was tcltk_release = '8.3...'
fiddle with the X extension libraries

  1. /usr/lib/ doesn't exists
  2. so become root
  3. ln -s
setup the environment variables changing tcl /tk 8.3 to 8.4

  1. setenv LD_LIBRARY_PATH\ ${CCPNMR_TOP_DIR}/tcl8.4/lib:${CCPNMR_TOP_DIR}/tk8.4/lib
  2. setenv TCL_LIBRARY {$CCPNMR_TOP_DIR}/tcl8.4/lib/tcl8.4
  3. setenv TK_LIBRARY {$CCPNMR_TOP_DIR}/tk8.4/lib/tk8.4

carry out your normal installation using

all done and here is the proof (and no I didn't fake it in photoshop ;-))

  1. all paths entered have to be absolute
  2. the X11 directory is /usr

Saturday, May 20, 2006

Minimise menu bar problem

Under KDE you can minimise the Analysis window. However, it doesn't have an entry in KDE's list of windows (only spectra get this), so you can't maximise it again. Workround top.deiconify() in the shell...

Chains and LinkSequentialSpinSystemsPopup

LinkSequentialSpinSystemsPopup ddidn't report chains for residues if there is more than one chain in the MolSystem. It does now ;-)

However, I have only modified it so chains will show when there are multiple chains present...

Friday, May 12, 2006

A feature with backup

If you have auto backup on in analysis and the directory you backup to is missing. If you try to switch auto backup off it will ask you if you want to create the directory... if you then say no it will say the directory can't be created and so it is not setting up automatic backups... If you say yes and you are on the wrong computer of course it will fail to create the directory and throw an error.

conclusion it seems to be doing input validation at the wrong places and assuming all exits require validation

Strange ones

A couple of strange corners in the ccpn datamodel

  1. Project doesn't have a parent Object field
  2. there are isotopes and isotopecodes
    1. isotopes are objects
    2. isotope codes are fixed length strings of the form 1H 13C etc
  3. you can't get an isotopecode from an isotope and vice versa without coding...

Friday, April 28, 2006

munging readline in analysis

some programs such as IPython and faetures such as command line hcacking require gnu readline. Here is what I did under ubuntu to get it going

  1. all this is using the version of python that you use to run analysis (you may need to set the environment variables TCL_LIBRARY etc to get i to work (see $CCPNMR_TOP_DIR/bin/analysis)
  2. this is using ccpns own downloaded python
  3. change to $CCPNMR_TOP_DIR/python2.4/Python-2.4.2/Modules/
  4. edit Setup and uncomment line at about line 160 which reads 'readline readline.c -lreadline -ltermcap'
  5. cd to $CCPNMR_TOP_DIR/python2.4/Python-2.4.2
  6. run python install

Get ipython in analysis

  1. download ipython
  2. extract to your ccpnm directory tar ipython-0.7.1.fix1.tar.gz
  3. go to tar ipython-0.7.1
  4. type install where is the python you used to install analysis
  5. edit $CCPNMR_TOP_DIR/ccpnmr1.0/python/ccpnmr/analysis/
  6. at about line 52 after import Tkinter put import IPython on a new line
  7. at about line 105 add:
    from IPython.Shell import IPShellEmbed

    ipshell = IPShellEmbed()


Thursday, April 20, 2006

analysis tables widget

Two problems here
  1. the tables widget creates new rows on the fly (I guess) so the widths of the columns are constantly jumping around
  2. if you hide the rows in a table widget you get nice little + signs but which column is which when you want to reexpand them. Wouldn't a popup be better in general....

analysis spin systems editor

analysis, edit spin system dialog: you can display strips and display cells... So why is it missing a button with a name something like 'display resonances'.

Friday, April 07, 2006


Let there be light