I've just seen your next mail. Again, it looks like the wrong python libraries are some how being picked up. Would it be possible for you to email one of us the relevant (PYTHON) parts of your environment.txt file so we can have a look to see what's going on? Thanks, Dan On 5 Nov 2008, at 21:25, Wayne Boucher wrote: > I just downloaded and checked the 2.6 source code and the first > couple of > functions that it's complaining about still exist. It looks like you > might have tried to run the installation script on an existing < 2.6 > compiled version?? If so then do > > cd ccpnmr2.0/c > make clean > cd ../.. > > and then run the installation script again. > > Note that there are 2.6 compatibility issues that Dan discovered > (because > he downloaded 2.6 awhile ago). I forget if they have all been > sorted out > in the Analysis code that is released. (The one problem I remember is > that the variable name "as", e.g. short-hand for atomSet, is no longer > allowed in 2.6 because it's now a Python keyword.) > > Wayne > > On Wed, 5 Nov 2008, Johnny Croy wrote: > >> Wayne, >> >> Okay, things seem to be really screwed up. I updated my fink >> environment and with it came python 2.6. Now when I try and >> recompile >> analysis, I get the following error. >> >> Messages will be logged in "log_Analysis_2.txt" >> Assuming your platform is darwin >> Found X11 include match: /usr/X11R6/include/X11/Xlib.h >> Found X11 lib match: /usr/X11R6/lib/libX11.6.2.0.dylib >> Need to know where X11 directory is, in order to compile Analysis >> This directory should contain [include/*/X11/Xlib.h, lib*/*/ >> libX11.*], >> and as seen, /usr/X11R6 does >> Guess X11 dir = "/usr/X11R6", is this correct (y or n)? y >> CCPN Tcl gzipped tar file not found, assuming using existing Tcl >> Found Tcl include match: /sw/include/tcl.h >> Found Tcl lib match: /sw/lib/tclConfig.sh >> Need to know where Tcl directory is, in order to compile Analysis >> This directory should contain [include/*/tcl.h, lib*/*/tclConfig.sh], >> and as seen, /sw does >> Guess Tcl dir = "/sw", is this correct (y or n)? y >> Guess Tcl version = 8.4 (by looking), is this ok (y or n) (reply y >> unless sure otherwise)? y >> CCPN Tk gzipped tar file not found, assuming using existing Tk >> Found Tk include match: /sw/include/tk.h >> Found Tk lib match: /sw/lib/tkConfig.sh >> Need to know where Tk directory is, in order to compile Analysis >> This directory should contain [include/*/tk.h, lib*/*/tkConfig.sh], >> and as seen, /sw does >> Guess Tk dir = "/sw", is this correct (y or n)? y >> Assuming Tk version is also 8.4 >> CCPN Python gzipped tar file not found, assuming using existing >> Python >> Found Python include match: /sw/include/python2.5 >> Found Python lib match: /sw/lib/python2.5 >> Need to know where Python directory is, in order to compile Analysis >> This directory should contain [include/*/python2.*, lib*/*/ >> python2.*], >> and as seen, /sw does >> Guess Python dir = "/sw", is this correct (y or n)? y >> Guess Python version = 2.6 (by looking), is this ok (y or n) (reply y >> unless sure otherwise)? y >> Do you want OpenGL used in Analysis (y or n) (n means only get Tk)? n >> Compile and install Analysis code (y or n)? y >> You can create environment file from scratch (this does not copy it >> from environment_default.txt) >> If you have already created it and edited it by hand you probably do >> not want to create it again here. >> Create environment file (y or n) (answer y unless you know >> otherwise)? y >> Use -fPIC compiler flag (y or n) (if gcc compiler y, otherwise n; >> answer y unless you know otherwise)? y >> Backing up ccpnmr2.0/c/environment.txt to ccpnmr2.0/c/environment.bak >> cd memops/global; make >> cc -L/sw/lib -bundle -bundle_loader /sw/bin/python2.6 -o >> BlockFile.so >> utility.o python_util.o hash_list.o hash_table.o mem_cache.o mutex.o >> py_mem_cache.o block_file.o shape_file.o int_array.o py_block_file.o >> py_shape_file.o >> Undefined symbols: >> "_PyTuple_Size", referenced from: >> _get_python_list_size in python_util.o >> _get_python_int_array in python_util.o >> _get_python_int_alloc_array in python_util.o >> _get_python_float_array in python_util.o >> _get_python_float_alloc_array in python_util.o >> _get_python_float_alloc_matrix in python_util.o >> _get_python_float_alloc_cube in python_util.o >> _get_python_double_array in python_util.o >> _get_python_double_alloc_array in python_util.o >> _get_python_double_alloc_matrix in python_util.o >> _set_python_float_matrix in python_util.o >> _set_python_double_matrix in python_util.o >> _set_python_float_cube in python_util.o >> "_PyList_New", referenced from: >> _get_python_int_list in python_util.o >> _get_python_float_list in python_util.o >> _get_python_double_list in python_util.o >> _get_python_float_matrix in python_util.o >> _get_python_float_matrix in python_util.o >> _create_python_float_array in python_util.o >> "_PyFloat_Type", referenced from: >> _PyFloat_Type$non_lazy_ptr in python_util.o >> "_PyModule_GetDict", referenced from: >> _initMemCache in py_mem_cache.o >> _initBlockFile in py_block_file.o >> _initShapeFile in py_shape_file.o >> "_PyInt_FromLong", referenced from: >> _get_python_int_list in python_util.o >> "_PyInt_AsLong", referenced from: >> _get_python_int_array in python_util.o >> _get_python_int_alloc_array in python_util.o >> _get_python_float_array in python_util.o >> _get_python_float_alloc_array in python_util.o >> _get_python_double_array in python_util.o >> _get_python_double_alloc_array in python_util.o >> "_PyErr_Occurred", referenced from: >> _initMemCache in py_mem_cache.o >> _initBlockFile in py_block_file.o >> _initShapeFile in py_shape_file.o >> "_PyList_GetItem", referenced from: >> _get_python_object_by_index in python_util.o >> _get_python_int_array in python_util.o >> _get_python_int_alloc_array in python_util.o >> _get_python_float_array in python_util.o >> _get_python_float_alloc_array in python_util.o >> _get_python_float_alloc_matrix in python_util.o >> _get_python_float_alloc_cube in python_util.o >> _get_python_double_array in python_util.o >> _get_python_double_alloc_array in python_util.o >> _get_python_double_alloc_matrix in python_util.o >> _set_python_float_matrix in python_util.o >> _set_python_double_matrix in python_util.o >> _set_python_float_cube in python_util.o >> "_PyList_SetItem", referenced from: >> _get_python_int_list in python_util.o >> _get_python_float_list in python_util.o >> _get_python_double_list in python_util.o >> _get_python_float_matrix in python_util.o >> _get_python_float_matrix in python_util.o >> _set_python_float_array in python_util.o >> _set_python_double_array in python_util.o >> "_PyFloat_AsDouble", referenced from: >> _get_python_float_array in python_util.o >> _get_python_float_alloc_array in python_util.o >> _get_python_double_array in python_util.o >> _get_python_double_alloc_array in python_util.o >> "__Py_NoneStruct", referenced from: >> __Py_NoneStruct$non_lazy_ptr in py_mem_cache.o >> __Py_NoneStruct$non_lazy_ptr in py_block_file.o >> __Py_NoneStruct$non_lazy_ptr in py_shape_file.o >> "_PyObject_Init", referenced from: >> _init_Py_Mem_cache in py_mem_cache.o >> _init_Py_Block_file in py_block_file.o >> _init_Py_Shape_block_file in py_block_file.o >> _init_Py_Shape_file in py_shape_file.o >> "_PyType_IsSubtype", referenced from: >> _get_python_float_array in python_util.o >> _get_python_float_array in python_util.o >> _get_python_float_alloc_array in python_util.o >> _get_python_float_alloc_array in python_util.o >> _get_python_double_array in python_util.o >> _get_python_double_array in python_util.o >> _get_python_double_alloc_array in python_util.o >> _get_python_double_alloc_array in python_util.o >> "_Py_BuildValue", referenced from: >> _initMemCache in py_mem_cache.o >> _havePeak in py_block_file.o >> _maxValue in py_block_file.o >> _minValue in py_block_file.o >> _getValue in py_block_file.o >> _getPointValue in py_block_file.o >> _getattr_py_block_file in py_block_file.o >> _compareSlices in py_block_file.o >> _initBlockFile in py_block_file.o >> _getattr_py_shape_file in py_shape_file.o >> _getattr_py_shape_file in py_shape_file.o >> _initShapeFile in py_shape_file.o >> "_Py_FatalError", referenced from: >> _initMemCache in py_mem_cache.o >> _initBlockFile in py_block_file.o >> _initShapeFile in py_shape_file.o >> "_PyTuple_GetItem", referenced from: >> _get_python_object_by_index in python_util.o >> _get_python_int_array in python_util.o >> _get_python_int_alloc_array in python_util.o >> _get_python_float_array in python_util.o >> _get_python_float_alloc_array in python_util.o >> _get_python_float_alloc_matrix in python_util.o >> _get_python_float_alloc_cube in python_util.o >> _get_python_double_array in python_util.o >> _get_python_double_alloc_array in python_util.o >> _get_python_double_alloc_matrix in python_util.o >> _set_python_float_matrix in python_util.o >> _set_python_double_matrix in python_util.o >> _set_python_float_cube in python_util.o >> "_PyObject_Free", referenced from: >> _delete_py_mem_cache in py_mem_cache.o >> _delete_py_block_file in py_block_file.o >> _delete_py_shape_file in py_shape_file.o >> "_PyList_Size", referenced from: >> _get_python_list_size in python_util.o >> _get_python_int_array in python_util.o >> _get_python_int_alloc_array in python_util.o >> _get_python_float_array in python_util.o >> _get_python_float_alloc_array in python_util.o >> _get_python_float_alloc_matrix in python_util.o >> _get_python_float_alloc_cube in python_util.o >> _get_python_double_array in python_util.o >> _get_python_double_alloc_array in python_util.o >> _get_python_double_alloc_matrix in python_util.o >> _set_python_float_array in python_util.o >> _set_python_double_array in python_util.o >> _set_python_float_matrix in python_util.o >> _set_python_double_matrix in python_util.o >> _set_python_float_cube in python_util.o >> "_PyType_Type", referenced from: >> _Mem_cache_type in py_mem_cache.o >> _Shape_block_file_type in py_block_file.o >> _Block_file_type in py_block_file.o >> _Shape_file_type in py_shape_file.o >> "_PyFloat_FromDouble", referenced from: >> _get_python_float_list in python_util.o >> _get_python_double_list in python_util.o >> _get_python_float_matrix in python_util.o >> _set_python_float_array in python_util.o >> _set_python_double_array in python_util.o >> "_PyArg_ParseTuple", referenced from: >> _resize in py_mem_cache.o >> _init_Py_Mem_cache in py_mem_cache.o >> _maxValue in py_block_file.o >> _minValue in py_block_file.o >> _getValue in py_block_file.o >> _getPointValue in py_block_file.o >> _getValues in py_block_file.o >> _setValue in py_block_file.o >> _setValues in py_block_file.o >> _save in py_block_file.o >> _planeProduct in py_block_file.o >> _planeProduct in py_block_file.o >> _init_Py_Block_file in py_block_file.o >> _init_Py_Shape_block_file in py_block_file.o >> _compareSlices in py_block_file.o >> _setComponentAmplitude in py_shape_file.o >> _setShapeData in py_shape_file.o >> _init_Py_Shape_file in py_shape_file.o >> "_PyDict_SetItemString", referenced from: >> _initMemCache in py_mem_cache.o >> _initBlockFile in py_block_file.o >> _initShapeFile in py_shape_file.o >> "_Py_FindMethod", referenced from: >> _getattr_py_mem_cache in py_mem_cache.o >> _getattr_py_block_file in py_block_file.o >> _getattr_py_shape_file in py_shape_file.o >> "_PyErr_SetString", referenced from: >> _resize in py_mem_cache.o >> _resize in py_mem_cache.o >> _init_Py_Mem_cache in py_mem_cache.o >> _init_Py_Mem_cache in py_mem_cache.o >> _init_Py_Mem_cache in py_mem_cache.o >> _openFile in py_block_file.o >> _havePeak in py_block_file.o >> _havePeak in py_block_file.o >> _havePeak in py_block_file.o >> _havePeak in py_block_file.o >> _maxValue in py_block_file.o >> _maxValue in py_block_file.o >> _maxValue in py_block_file.o >> _maxValue in py_block_file.o >> _minValue in py_block_file.o >> _minValue in py_block_file.o >> _minValue in py_block_file.o >> _minValue in py_block_file.o >> _getValue in py_block_file.o >> _getValue in py_block_file.o >> _getValue in py_block_file.o >> _getPointValue in py_block_file.o >> _getPointValue in py_block_file.o >> _getPointValue in py_block_file.o >> _getValues in py_block_file.o >> _getValues in py_block_file.o >> _getValues in py_block_file.o >> _getValues in py_block_file.o >> _getValues in py_block_file.o >> _setValue in py_block_file.o >> _setValue in py_block_file.o >> _setValue in py_block_file.o >> _setValues in py_block_file.o >> _setValues in py_block_file.o >> _setValues in py_block_file.o >> _setValues in py_block_file.o >> _setValues in py_block_file.o >> _save in py_block_file.o >> _save in py_block_file.o >> _check in py_block_file.o >> _planeProduct in py_block_file.o >> _planeProduct in py_block_file.o >> _planeProduct in py_block_file.o >> _planeProduct in py_block_file.o >> _planeProduct in py_block_file.o >> _planeProduct in py_block_file.o >> _planeProduct in py_block_file.o >> _planeProduct in py_block_file.o >> _init_Py_Block_file in py_block_file.o >> _init_Py_Block_file in py_block_file.o >> _init_Py_Block_file in py_block_file.o >> _init_Py_Block_file in py_block_file.o >> _init_Py_Block_file in py_block_file.o >> _init_Py_Block_file in py_block_file.o >> _init_Py_Block_file in py_block_file.o >> _init_Py_Shape_block_file in py_block_file.o >> _init_Py_Shape_block_file in py_block_file.o >> _init_Py_Shape_block_file in py_block_file.o >> _init_Py_Shape_block_file in py_block_file.o >> _init_Py_Shape_block_file in py_block_file.o >> _init_Py_Shape_block_file in py_block_file.o >> _init_Py_Shape_block_file in py_block_file.o >> _compareSlices in py_block_file.o >> _compareSlices in py_block_file.o >> _compareSlices in py_block_file.o >> _compareSlices in py_block_file.o >> _compareSlices in py_block_file.o >> _compareSlices in py_block_file.o >> _setComponentAmplitude in py_shape_file.o >> _setComponentAmplitude in py_shape_file.o >> _setShapeData in py_shape_file.o >> _setShapeData in py_shape_file.o >> _setShapeData in py_shape_file.o >> _init_Py_Shape_file in py_shape_file.o >> _init_Py_Shape_file in py_shape_file.o >> _init_Py_Shape_file in py_shape_file.o >> _init_Py_Shape_file in py_shape_file.o >> "_Py_InitModule4", referenced from: >> _initMemCache in py_mem_cache.o >> _initBlockFile in py_block_file.o >> _initShapeFile in py_shape_file.o >> "_PyObject_Malloc", referenced from: >> _init_Py_Mem_cache in py_mem_cache.o >> _init_Py_Block_file in py_block_file.o >> _init_Py_Shape_block_file in py_block_file.o >> _init_Py_Shape_file in py_shape_file.o >> "_PyArg_ParseTupleAndKeywords", referenced from: >> _havePeak in py_block_file.o >> ld: symbol(s) not found >> collect2: ld returned 1 exit status >> make[1]: *** [BlockFile.so] Error 1 >> make: *** [global] Error 2 >> Uncommenting future import in Converters.py >> Uncommenting future import in part2/Converters2.py >> >> >> Any ideas. >> >> J >> On Nov 5, 2008, at 11:13 AM, Wayne Boucher wrote: >> >>> Right, it turns out the string wasn't "" but " " so I needed to add >>> something extra to strip the string before it is checked. So that >>> should >>> work now (it opened your project ok here, anyway). (With the latest >>> update.) >>> >>> Wayne >>> >>> On Wed, 5 Nov 2008, Johnny Croy wrote: >>> >>>> Wayne, >>>> >>>> Here's a bit more information on what I did to screw things up. I >>>> opened up my converted project and I got errors telling me that it >>>> couldn't find certain spectra. However, analysis fired up and I >>>> didn't have any problems. I then saved the project in 2.0 and >>>> tried >>>> to reopen. Then I got a pop-p window saying "edit project data >>>> paths". The missing spectra are highlighted in orange. I then >>>> click >>>> on the red x at the bottom of the pop-up window and then the error >>>> pops up. I cant attach the tarball (16 MB). Its a big project >>>> that >>>> contains all of my collected NMR data. Anyway to send it via FTP/ >>>> SFTP >>>> to you? >>>> >>>> J >>>> >>>> >>>> On Nov 5, 2008, at 10:34 AM, Wayne Boucher wrote: >>>> >>>>> Hmmm, that error message doesn't make sense to me now. The "if >>>>> level" >>>>> should explictly stop empty strings getting to the float(). Can >>>>> you >>>>> send >>>>> me your project directory (not the spectra), and I'll look at >>>>> that. >>>>> >>>>> Thanks, Wayne >>>>> >>>>> On Wed, 5 Nov 2008, Johnny Croy wrote: >>>>> >>>>>> Wayne, >>>>>> >>>>>> Still getting the same error. Here is the traceback after I have >>>>>> upgraded. >>>>>> >>>>>>>>> Warning: spectrum (T1_b_0, nmrPipe): data file None not >>>>>>>>> accessible >>>>>> ValueError: empty string for float() >>>>>> File "/Applications/ccpnmr/ccpnmr2.0/python/memops/editor/ >>>>>> OpenProjectPopup.py", line 204, in apply >>>>>> self.callback(self.project) >>>>>> File "/Applications/ccpnmr/ccpnmr2.0/python/ccpnmr/analysis/ >>>>>> AnalysisPopup.py", line 997, in initProject >>>>>> Analysis.initProject(self, project) >>>>>> File "/Applications/ccpnmr/ccpnmr2.0/python/ccpnmr/analysis/ >>>>>> Analysis.py", line 264, in initProject >>>>>> self.initSpectra() >>>>>> File "/Applications/ccpnmr/ccpnmr2.0/python/ccpnmr/analysis/ >>>>>> Analysis.py", line 900, in initSpectra >>>>>> self.initPeakList(peakList, initialising=True) >>>>>> File "/Applications/ccpnmr/ccpnmr2.0/python/ccpnmr/analysis/ >>>>>> Analysis.py", line 1679, in initPeakList >>>>>> view = WindowBasic.getSpectrumWindowView(window, spectrum) >>>>>> File "/Applications/ccpnmr/ccpnmr2.0/python/ccpnmr/analysis/core/ >>>>>> WindowBasic.py", line 384, in getSpectrumWindowView >>>>>> analysisSpectrum = Util.getAnalysisSpectrum(spectrum) >>>>>> File "/Applications/ccpnmr/ccpnmr2.0/python/ccpnmr/analysis/core/ >>>>>> Util.py", line 161, in getAnalysisSpectrum >>>>>> setupAnalysisSpectrum(analysisSpectrum) >>>>>> File "/Applications/ccpnmr/ccpnmr2.0/python/ccpnmr/analysis/core/ >>>>>> Util.py", line 174, in setupAnalysisSpectrum >>>>>> levels = getSpectrumContourLevels(spectrum) >>>>>> File "/Applications/ccpnmr/ccpnmr2.0/python/ccpnmr/analysis/core/ >>>>>> Util.py", line 739, in getSpectrumContourLevels >>>>>> levels = [float(level) for level in >>>>>> levels.split(spectrum_contour_separator) if level] >>>>>> logout >>>>>> >>>>>> On Nov 5, 2008, at 1:59 AM, Wayne Boucher wrote: >>>>>> >>>>>>> Right, hopefully that is fixed now. >>>>>>> >>>>>>> This error was finally picked up because of fixing that problem >>>>>>> for >>>>>>> Vicky >>>>>>> yesterday. There might be other similar problems now cropping >>>>>>> up. >>>>>>> Also, >>>>>>> I forgot to metion that I have now set it up so that old appData >>>>>>> that is >>>>>>> v1 specific and not needed in v2 should now be deleted if it is >>>>>>> accessed >>>>>>> (but that might not happen if you've already saved a project in >>>>>>> v2). >>>>>>> This might also start to pick up some new bugs. >>>>>>> >>>>>>> Wayne >>>>>>> >>>>>>> On Tue, 4 Nov 2008, Johnny Croy wrote: >>>>>>> >>>>>>>> Hello all. >>>>>>>> >>>>>>>> Just saved my project in Analysis 2.0.5. I had some spectra >>>>>>>> that >>>>>>>> couldn't be found (this wasn't a problem in 1.0) and now when I >>>>>>>> try >>>>>>>> and open my project I get the following error: >>>>>>>> >>>>>>>> Project invalid, please quit, fix and re-start: ValueError: >>>>>>>> empty >>>>>>>> string for float() >>>>>>>> >>>>>>>> Here is the traceback >>>>>>>> >>>>>>>>>>> Warning: spectrum (T1_b_0, nmrPipe): data file None not >>>>>>>>>>> accessible >>>>>>>> ValueError: empty string for float() >>>>>>>> File "/Applications/ccpnmr/ccpnmr2.0/python/memops/editor/ >>>>>>>> OpenProjectPopup.py", line 204, in apply >>>>>>>> self.callback(self.project) >>>>>>>> File "/Applications/ccpnmr/ccpnmr2.0/python/ccpnmr/analysis/ >>>>>>>> AnalysisPopup.py", line 997, in initProject >>>>>>>> Analysis.initProject(self, project) >>>>>>>> File "/Applications/ccpnmr/ccpnmr2.0/python/ccpnmr/analysis/ >>>>>>>> Analysis.py", line 264, in initProject >>>>>>>> self.initSpectra() >>>>>>>> File "/Applications/ccpnmr/ccpnmr2.0/python/ccpnmr/analysis/ >>>>>>>> Analysis.py", line 900, in initSpectra >>>>>>>> self.initPeakList(peakList, initialising=True) >>>>>>>> File "/Applications/ccpnmr/ccpnmr2.0/python/ccpnmr/analysis/ >>>>>>>> Analysis.py", line 1679, in initPeakList >>>>>>>> view = WindowBasic.getSpectrumWindowView(window, spectrum) >>>>>>>> File "/Applications/ccpnmr/ccpnmr2.0/python/ccpnmr/analysis/ >>>>>>>> core/ >>>>>>>> WindowBasic.py", line 384, in getSpectrumWindowView >>>>>>>> analysisSpectrum = Util.getAnalysisSpectrum(spectrum) >>>>>>>> File "/Applications/ccpnmr/ccpnmr2.0/python/ccpnmr/analysis/ >>>>>>>> core/ >>>>>>>> Util.py", line 161, in getAnalysisSpectrum >>>>>>>> setupAnalysisSpectrum(analysisSpectrum) >>>>>>>> File "/Applications/ccpnmr/ccpnmr2.0/python/ccpnmr/analysis/ >>>>>>>> core/ >>>>>>>> Util.py", line 174, in setupAnalysisSpectrum >>>>>>>> levels = getSpectrumContourLevels(spectrum) >>>>>>>> File "/Applications/ccpnmr/ccpnmr2.0/python/ccpnmr/analysis/ >>>>>>>> core/ >>>>>>>> Util.py", line 739, in getSpectrumContourLevels >>>>>>>> levels = [float(level) for level in >>>>>>>> levels.split(spectrum_contour_separator)] >>>>>>>> >>>>>>>> Any ideas on how to fix this. >>>>>>>> >>>>>>>> Johnny >>>>>>>> ------------------------------------------------------------ >>>>>>>> Johnny Eugene Croy, Ph.D. >>>>>>>> Research Associate >>>>>>>> Wuttke Lab >>>>>>>> >>>>>>>> University of Colorado, Boulder >>>>>>>> Department of Chemistry and Biochemistry >>>>>>>> UCB 215 >>>>>>>> Boulder, CO 80309-0215 >>>>>>>> >>>>>>>> Lab: (303) 492-2369 >>>>>>>> Mobile: (303) 304-6069 >>>>>>>> ------------------------------------------------------------ >>>>>>>> >>>>>> >>>>>> ------------------------------------------------------------ >>>>>> Johnny Eugene Croy, Ph.D. >>>>>> Research Associate >>>>>> Wuttke Lab >>>>>> >>>>>> University of Colorado, Boulder >>>>>> Department of Chemistry and Biochemistry >>>>>> UCB 215 >>>>>> Boulder, CO 80309-0215 >>>>>> >>>>>> Lab: (303) 492-2369 >>>>>> Mobile: (303) 304-6069 >>>>>> ------------------------------------------------------------ >>>>>> >>>> >>>> ------------------------------------------------------------ >>>> Johnny Eugene Croy, Ph.D. >>>> Research Associate >>>> Wuttke Lab >>>> >>>> University of Colorado, Boulder >>>> Department of Chemistry and Biochemistry >>>> UCB 215 >>>> Boulder, CO 80309-0215 >>>> >>>> Lab: (303) 492-2369 >>>> Mobile: (303) 304-6069 >>>> ------------------------------------------------------------ >>>> >> >> ------------------------------------------------------------ >> Johnny Eugene Croy, Ph.D. >> Research Associate >> Wuttke Lab >> >> University of Colorado, Boulder >> Department of Chemistry and Biochemistry >> UCB 215 >> Boulder, CO 80309-0215 >> >> Lab: (303) 492-2369 >> Mobile: (303) 304-6069 >> ------------------------------------------------------------ >> Daniel O'Donovan [log in to unmask]