Print

Print


Wayne Boucher wrote:
> So they are all HSQCs?  (So 2D windows and one dimension is 1H and the
> other 15N.)  In this case windowPopup.getSpectrumViews() should return all
> 15 spectra. 
Which it is ..
>  How do you want to distinguish the two subsets of the 15?
> Because if there is some data model way to distinguish them we can add
> another function which does that.  
> (So, is it by whether they appear in
> the toolbar of the window?)
>
>   
Yes yes yes. i.e. I would understand the language of the popups as all 
mapped to one window. I can think of a recent example (that I did not 
use analysis to look at) where I had about 4 different point mutants 
with a titration for each. I can easily imagine wanting a window for 
each and wanting to control those groups of spectra's display properties 
in one fell swoop. There must be other more common cases, e.g. if have a 
set of T2 spectra, a set of T1 spectra etc.

Intuitively I was guessing that there might be

views = windowPopup.getMappedSpectrumViews()


Regards

Jeremy



> Wayne
>
> On Mon, 24 Sep 2007, Jeremy Craven wrote:
>
>   
>> Thanks for the info Wayne.
>>
>> The macro still seems to be changing the base level in all the spectra
>> in the project (and all 15
>> spectra yield the 'print "before",....' output). I am running it by
>> putting a keyboard shortcut ("z"), which I
>> assume should tie the running of the macro to the particular window that
>> the cursor is in when I press "z".
>>
>> I tried
>>
>> views = windowPopup.getActiveSpectrumViews()
>>
>> and that behaved as I expected (so I only got the print statements for
>> the spectra on view)
>>
>> when I put it back to
>>
>> views = windowPopup.getSpectrumViews()
>>
>>
>> Then I got all 15 printed again (I have 15 spectra divided roughly
>> evenly between two windows; one set are HSQCs, and one set are long
>> range HSQCs).
>>
>> Any ideas what else I might be doing wrong ?
>>
>> Regards
>>
>> Jeremy
>>
>>
>> Wayne Boucher wrote:
>>     
>>> Hello,
>>>
>>> It looks ok to me, i.e. it should only affect spectra which are mapped
>>> into that window.  I just tried it and it seemed to work for me (i.e. the
>>> contour levels for the spectra of the window were changed and the other
>>> spectrum was not).  A couple of other comments.
>>>
>>> With the call windowPopup.getSpectrumViews() you are getting the views (in
>>> data model terminology, the SpectrumWindowViews) of the window, which
>>> exactly represent the spectra which are mapped into that window.  To get
>>> to the spectrum from a view you do exactly what you did, i.e. spectrum =
>>> view.dataSource.
>>>
>>> Alternatively, you can get the data model window object via window =
>>> windowPopup.window (in data model terminology, this is a SpectrumWindow).
>>> And you can then get the views from that via views =
>>> window.spectrumWindowViews.  This is what the function getSpectrumViews()
>>> is doing, except that that also tries to protect against broken links
>>> view.dataSource (these are not supposed to occur but for technical reasons
>>> they might).
>>>
>>> On the contour level front, this is all unfortunately more complicated
>>> than you might think it ought to be, but the problem is that we have two
>>> systems in place.  One is where you just define the baseLevel, the number
>>> of levels and the level changer and mode.  The other is where you define
>>> the levels explicitly as a list (or tuple).  The former is normally what
>>> people like to use, and that should then set the latter, because it is the
>>> latter that the contouring code actually uses.  What you have done seems
>>> as reasonable an approach as any.
>>>
>>> Wayne
>>>
>>> On Fri, 21 Sep 2007, Jeremy Craven wrote:
>>>
>>>
>>>       
>>>> Hi, it seems my macro is actually changing the values of the contour
>>>> levels in ALL the spectra in the project rather than just the ones
>>>> mapped to my window
>>>> of interest (so that is one bogus macro in this list for "posterity"..).
>>>> Only just realised this when tried to make one that would set the base
>>>> level of all the mapped spectra to the same thing and it seems to report
>>>> dealing with all the spectra in the whole project. is there something like
>>>> views = windowPopup.getMappedSpectrumViews()
>>>> ??
>>>>
>>>> Also am I changing the contour levels using the correct functions or is
>>>> there a more logical way to do it ?
>>>>
>>>> Cheers
>>>>
>>>> Jeremy
>>>>
>>>>
>>>> #################################################################################
>>>>
>>>> def setAllContoursMappedToWindow(argServer = None, windowPopup = None):
>>>>
>>>> # this sets base level same for ALL the spectra mapped to window
>>>> # (I hope) so all points in titration stay in lock step, whether viewed
>>>> or not
>>>>
>>>> from ccpnmr.analysis import Util
>>>> from ccpnmr.analysis.ExperimentBasic import changeSpectrumContourLevels,
>>>> calcContourLevels
>>>>
>>>> if argServer and not windowPopup:
>>>> windowPopup = argServer.getCurrentWindowPopup()
>>>>
>>>> if windowPopup:
>>>>
>>>> newBaseLevel=argServer.askFloat("Enter base level for all spectra",10.0)
>>>> views = windowPopup.getSpectrumViews()
>>>> for view in views:
>>>> spectrum = view.dataSource
>>>> (baseLevel, numberLevels, levelChanger, changeMode) =
>>>> Util.getSpectrumLevelValues(spectrum)
>>>> print "before",spectrum, baseLevel
>>>> baseLevel=newBaseLevel
>>>> Util.setSpectrumContourLevels(spectrum, calcContourLevels(baseLevel,
>>>> numberLevels, levelChanger, changeMode = 0))
>>>> Util.setSpectrumLevelValues(spectrum, baseLevel, numberLevels, levelChanger)
>>>>
>>>> ##############################################################################
>>>>
>>>>
>>>>
>>>> Wayne Boucher wrote:
>>>>
>>>>         
>>>>> Hello,
>>>>>
>>>>> The graphical interaction with contour levels is in
>>>>> python/ccpnmr/analysis/EditContourLevelsPopup.py.
>>>>>
>>>>> The function that Jeremy wrote changes the levels of all spectra mapped
>>>>> into a window.  Perhaps people would also want a function that changes the
>>>>> levels of all spectra, period.  Etc.  A workshop sounds like a reasonable
>>>>> idea to me.
>>>>>
>>>>> Wayne
>>>>>
>>>>> On Fri, 21 Sep 2007, Brian Smith wrote:
>>>>>
>>>>>
>>>>>
>>>>>           
>>>>>> On Fri, 21 Sep 2007, Jeremy Craven wrote:
>>>>>>
>>>>>>
>>>>>>             
>>>>>>> Thanks Wayne, got it to work now. (Took out the try/except - which I
>>>>>>> inherited from the analysis code, and there was one more import needed). Will
>>>>>>> append the working code below for posterity.
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>> Nice one Jeremy.
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>>>> I think a bunch of utilities like this would be good and some macro-writing
>>>>>>> users should get together to see what we can achieve maybe.
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>> An excellent idea.  Time for an advanced analysis users' workshop perhaps
>>>>>> where a bunch of us bring our wish list together with Tim/Wayne/Wim on
>>>>>> hand to facilitate us implementing them?
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>>>>> Oh and before I poke around more: where is levelChanger set in the GUIs (or
>>>>>>> is it?) ?
>>>>>>>
>>>>>>>
>>>>>>>               
>>>>>> Not quite sure what you're asking but I always start digging with
>>>>>> something like
>>>>>>
>>>>>> grep levelChanger /usr/local/ccpnmr/ccpnmr1.0/python/ccpnmr/analysis/*.py
>>>>>>
>>>>>> If you're after where the value of levelChanger is set in the GUI, my
>>>>>> reading of the code is that it's the modifier that determines your contour
>>>>>> spacing.  i.e. you should go up or down one whole contour.  Haven't
>>>>>> checked if that's true yet.
>>>>>>
>>>>>> Brian
>>>>>>
>>>>>> --
>>>>>> Dr. Brian O. Smith ---------------------- B Smith at bio gla ac uk
>>>>>>            Division of Biochemistry & Molecular Biology,
>>>>>>                Institute Biomedical & Life Sciences,
>>>>>> Joseph Black Building, University of Glasgow, Glasgow G12 8QQ, UK.
>>>>>> Tel: 0141 330 5167/6459/3089                    Fax: 0141 330 8640
>>>>>>
>>>>>>
>>>>>>
>>>>>>             
>>>> --
>>>> *********************************************************************************
>>>>
>>>> Dr C. Jeremy Craven
>>>> Department of Molecular Biology and Biotechnology
>>>> University of Sheffield,
>>>> Firth Court, Western Bank
>>>> S10 2TN Sheffield UK
>>>>
>>>> e-mail: [log in to unmask]
>>>> http://www.nmr.group.shef.ac.uk/CJC.html
>>>>
>>>> Phone:                       x24323
>>>> >From outside Sheffield:      0114 222 4323
>>>> >From outside UK:             +44 114 2224323
>>>> Fax:                         0114 272 2800
>>>>
>>>> *********************************************************************************
>>>>
>>>>
>>>>         
>> --
>> *********************************************************************************
>>
>> Dr C. Jeremy Craven
>> Department of Molecular Biology and Biotechnology
>> University of Sheffield,
>> Firth Court, Western Bank
>> S10 2TN Sheffield UK
>>
>> e-mail: [log in to unmask]
>> http://www.nmr.group.shef.ac.uk/CJC.html
>>
>> Phone:                       x24323
>> >From outside Sheffield:      0114 222 4323
>> >From outside UK:             +44 114 2224323
>> Fax:                         0114 272 2800
>>
>> *********************************************************************************
>>
>>     


-- 
*********************************************************************************

Dr C. Jeremy Craven
Department of Molecular Biology and Biotechnology
University of Sheffield, 
Firth Court, Western Bank
S10 2TN Sheffield UK

e-mail: [log in to unmask]
http://www.nmr.group.shef.ac.uk/CJC.html

Phone:                       x24323 
From outside Sheffield:      0114 222 4323
From outside UK:             +44 114 2224323
Fax:                         0114 272 2800

*********************************************************************************