JiscMail Logo
Email discussion lists for the UK Education and Research communities

Help for CCPNMR Archives


CCPNMR Archives

CCPNMR Archives


CCPNMR@JISCMAIL.AC.UK


View:

Message:

[

First

|

Previous

|

Next

|

Last

]

By Topic:

[

First

|

Previous

|

Next

|

Last

]

By Author:

[

First

|

Previous

|

Next

|

Last

]

Font:

Proportional Font

LISTSERV Archives

LISTSERV Archives

CCPNMR Home

CCPNMR Home

CCPNMR  September 2007

CCPNMR September 2007

Options

Subscribe or Unsubscribe

Subscribe or Unsubscribe

Log In

Log In

Get Password

Get Password

Subject:

Re: macro help please

From:

Jeremy Craven <[log in to unmask]>

Reply-To:

CcpNmr software mailing list <[log in to unmask]>

Date:

Tue, 25 Sep 2007 12:34:34 +0100

Content-Type:

text/plain

Parts/Attachments:

Parts/Attachments

text/plain (370 lines)

OK, I have been misuing the term mapped in my head.

I personally don't feel that "is in the toolbar" is the most intuitive 
way to talk about the idea that a particular set of spectra 
"particularly belong" in a certain window. This is one for the 
documentation project to work on ...

(PS can we ban list (in)comprehensions .... ; but then just checked it 
out on Wikipedia to see whose wretched invention they were, and at least 
we should be glad not to have perl's version "@S = map{$_*2} 
grep{$_*$_>3} (0 .. 99);" .....)

Jeremy

Wayne Boucher wrote:
> Hello,
>
> They are all mapped, it's just that some are in the toolbar and some are
> not, and some are visible and some are not.  So to do what you want you
> can just do:
>
>   views = [view for view in windowPopup.getSpectrumViews() if
> view.isInToolbar]
>
> If you look at the API documentation (ccpnmr1.0/python/doc/classMap.html)
> for SpectrumWindowView you will see there are the following attributes
> that you could filter on:
>
>   isInToolbar
>   isNegVisible (negative contours)
>   isPosVisible (positive contours)
>   isSliceVisible (1D trace)
>
> Wayne
>
> On Tue, 25 Sep 2007, Jeremy Craven wrote:
>
>   
>> 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
>>
>> *********************************************************************************
>>
>>     


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

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

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

Top of Message | Previous Page | Permalink

JiscMail Tools


RSS Feeds and Sharing


Advanced Options


Archives

March 2024
February 2024
January 2024
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
January 2004
December 2003
November 2003
October 2003
September 2003


JiscMail is a Jisc service.

View our service policies at https://www.jiscmail.ac.uk/policyandsecurity/ and Jisc's privacy policy at https://www.jisc.ac.uk/website/privacy-notice

For help and support help@jisc.ac.uk

Secured by F-Secure Anti-Virus CataList Email List Search Powered by the LISTSERV Email List Manager