Sound all good!

So I will wait until you modify the image-folder and patch the 
model-free calculation, although I am a bit concerned that teher is a 
problem (maight be the grid search step).

Cheers


Edward d'Auvergne schrieb:
>>> 1)  Each new analysis appears not as tabs but as a new window.  This
>>> would be similar to oowriter or MS Word, where there is a 'Window'
>>> menu where one can switch between the analyses.  This is also similar
>>> to what sparky does.  Either there is an entire new window for each
>>> analysis, or it could be done as now where each is in a tab (just that
>>> you don't show the tab bit).  Each analysis can be created at any
>>> time, and closed at any time.  The window with buttons with pictures
>>> of each analysis type can appear at the start and also when clicking
>>> on 'File -> New analysis'.
>>>
>>>       
>> I somehow like the idea that the whole relaxation analysis is in one
>> window, separated by tabs. This helps to keep all the informations
>> together. I would suggest to split the kind of dynamics calculation,
>> i.e. model-free, dispersion....
>>     
>
> These could be grouped - the R1, R2, and NOE.  But I would still try
> to make this flexible and not assume a protein NMR spectroscopist has
> measured these standard things at 2 field strengths.  What if a
> chemist came with R1 data collected at 100 different field strengths
> using special equipment?  The point here is that you should not force
> upon the user a way of doing something because some user will always
> want to do something differently.  If they can click on 'File -> New
> analysis' and select R1 from the analysis selection window, and repeat
> this 100 times, they would not complain about relax.  relax can do
> this without problems so this would be a constraint on them 100%
> enforced by the GUI.  It should be dynamic - I want to add this type
> of analysis, save then close this one, etc.  It makes the GUI coding a
> bit more difficult but improves the usability and power of the GUI
> immensely.  I have specifically designed relax to be incredibly
> flexible, allowing the user through the prompt and script interfaces
> to do almost anything they can imagine.  Most will just use
> pre-written scripts, but this flexibility is incredibly useful.  I
> would be very sad, that if after so much effort designing a program
> with so much flexibility (almost any type and amount of data input)
> and support for all types of systems (small molecules, RNA, DNA,
> proteins, sugars, etc.), that the GUI then takes this all away :(
>
>
>   
>>> 2)  The code paths are too complex!  This can be done after the paper,
>>> but please don't discount this.  If I would like to make modifications
>>> to or debug the model-free code (GUI and calculation), I have to jump
>>> all over the place and have to separate it in my mind from all the
>>> other code.  I would suggest a big rearrangement of the code, to make
>>> it more like lego where you have reusable blocks.  Firstly, what does
>>> the directory 'res/' stand for?  I cannot for the life of me work out
>>> why you have this directory!  I would propose the following, logical
>>> directory structure:
>>>
>>> gui_bieri/  ->  All the GUI element modules (filedialog.py,
>>> settings.py, etc) go in the base directory.  In the future when the
>>> interface is more complex, the GUI elements could be grouped and
>>> shifted into packages (directories).
>>> gui_bieri/analyses/  ->  All the analysis specific code goes here.
>>> I.e. 'gui_bieri/analyses/model_free.py', 'gui_bieri/analyses/r1.py',
>>> etc.
>>> gui_bieri/oxygen_icons/  ->  Have dedicated directories for material
>>> that is differently, but legally licenced!  The may shift down a
>>> directory to the base relax directory when other types of GUI are
>>> added.
>>> gui_bieri/images/  ->  All the bitmap pictures go here.  I would
>>> suggest that for the future of the project, that SVG versions whenever
>>> possible are placed here.  This will allow for better image resizing,
>>> tiny icons to be made, etc.
>>> gui_bieri/execution/  ->  All the calc_* modules can be shifted here.
>>> Or alternatively it goes into gui_bieri/analyses/ as well.
>>>
>>>       
>> sure! I just placed everything into the res (from resources) folder. but
>> it's getting messy and overfilled now!
>>     
>
> Give the word and I'll make all the file rearrangements necessary in
> the repository.  If you make any changes during this time, you will
> need to manually shift the changes around (move the modified files to
> the new locations).  I would also like to have some point in time
> reserved for the whitespace fixes.  This is very important!  I cannot
> emphasise this enough!
>
>
>   
>>> 3)  Code recycling.  Many analysis types re-use the same user
>>> functions.  For example model-free, J(w) mapping, consistency testing,
>>> and in the future SRLS and other analysis types will all use relation
>>> data input.  Therefore this GUI element could be separated and each
>>> analysis type then places where it likes.  I would suggest that it
>>> looks as follows (100% redesign).  There is a canvas (forgotten the
>>> GUI element name here) which displays the loaded relaxation data,
>>> displaying a label (ri_label and frq_label will soon be combined so
>>> Sebastian can better work with relaxation dispersion data) and the
>>> frequency in MHz.  Each can be selected by clicking on them.  Then
>>> there are a series of buttons on the right hand side.  A big + icon
>>> adds new data, and opens a dialog box to select the file, specify the
>>> label, the frequency, all the column numbers, the column separator,
>>> and allowing a spin_id selector to only load a specific subset of the
>>> data.  A big - icon can remove data.  Another icon can display the
>>> data for all spin systems.  Therefore I would suggest a module called
>>> 'gui_bieri/relax_data.py' for this that can be imported by
>>> 'gui_bieri/analyses/model_free.py'.  The relaxation data input GUI
>>> element can then be modified/expanded at any time independent of the
>>> rest of the GUI.
>>>
>>>       
>> I would suggest to have an initial window that shows which calculations
>> (modelfree, J(w)...) can be performed by relax. Under these buttons, we
>> could have a list or tree that shows projects that are already
>> calculated or in the middle of analysis. So users can either start a new
>> analysis or continue.
>>     
>
> I don't think the tree is necessary as we could switch between them
> through the 'Window' menu.  This is the standard way to perform this
> in most programs.
>
> As for point 3), I was talking about the data input for an analysis -
> i.e. the current model-free 3 frequency relaxation data input table.
> This is not related to the analysis selection window that can appear
> at the start and after clicking on 'File -> New analysis'.
>
>
>   
>>> 4)  PyMOL (http://www.pymol.org/).  This is open source and can be
>>> imported as a python module.  Therefore I propose as a future idea
>>> that we bundle this with relax, import it in
>>> 'gui_bieri/molecular_viewer', and provide its OpenGL canvas to display
>>> the results of the analyses to each analysis type.  Not the PyMOL GUI
>>> - this sucks - but the OpenGL canvas GUI element.  This could possibly
>>> appear in a new window, as a new tab, or even as part of the main
>>> window using buttons to switch rather than tabs.  We can then provide
>>> relevant functions as menu entries - 'Display diffusion tensor',
>>> 'Display data' where S2, te, Rex, CSA, J(0), J(wN), etc can be mapped
>>> onto the structure, 'Write PNG', 'Ray trace', etc.  This would make
>>> the relax GUI much more awesome!
>>>
>>>       
>> this would be very cool!!
>>     
>
> It would be, and many people are interested in this and what it can do
> for relax.  It would also allow 3D geometric object to be drawn, which
> for dynamics could be very useful.  Or even to generate alignment
> tensor pictures attached to the molecule.
>
>
>   
>> what do you think about the future of relax? do want to drive it in a
>> more GUI like application, so future elements are designed together with
>> a GUI?
>>     
>
> This has been decided a long, long time ago.  It is all written out in
> the relax manual in section 9.7, 'The core design of relax'.  The
> different user interfaces are all part of the program, but note that
> relax is a massive software project.  Therefore to keep this codebase
> sane and alive, there are clear APIs between different parts of the
> program.  And the UI's must respect these.  If new functionality is
> needed, it is added to the correct part of the code base and accessed
> through these APIs.  'generic_fns' is easy as this is just a bunch of
> functions to import.  'specific_fns' is more advanced and a cleaner
> API.  This is for the different analyses where they must provide
> certain methods so that minimisation, for example, just works without
> modification to the minimisation code.  The permanent data storage is
> in the relax data store - with no exceptions.  These APIs will stay,
> and will become more and more refined as the program evolves.
>
> My contributions to relax are currently in the areas of the N-state
> model and Frame Order theories.  These are different in that RDCs,
> PCSs, NOEs, J-couplings, etc. are being used to obtain dynamic
> information.  In the case of the N-state model, this is being used to
> solve stereochemistry questions in chemistry.  The Frame Order
> theories will hopefully be completed soon and presented at the ICMRBS.
>  Other people are taking the program in other ways, for example see
> the next paragraph.
>
> Note that the GUI is only one of many UI's that will go into relax.
> Another one planned is a web interface allowing a user to run
> calculations over the internet.  One use that Gary Thompson has talked
> about is to set up a server that people can submit relaxation data to,
> and have the final model-free results returned to them.  So the web
> interface and the multi-processing code will very naturally fit
> together.  Then there are the script and prompt interfaces that those
> with massive clusters will probably want to always use.  Other
> interfaces have been proposed in the past, and may return in the
> future.
>
> I also use relax as a toolkit.  I can write python scripts and import
> and use relax functions (just by running the python script as a relax
> script).  This gives me instant access to a PDB reader/writer, to many
> mathematical functions, to the convenient relax data store that I can
> use to store atom specific data (unrelated to dynamics).  The
> generic_fns.mol_res_spin.spin_loop() function is incredibly useful!
>
>
>   
>> I am currently also working on a software that analyzes dispersion data
>> (at the moment cp-CPMG). There, I completely build everything in a GUI,
>> which facilitates a lot of issues about preparing input files. Peak
>> files are just loaded in an excel-like grid. Users choose which are
>> residue number columns and data columns. Like this, a lot of formatting
>> problems are avoided.
>> If you would like, we could fuse these programs as well!
>>     
>
> I suggest you talk to Sebastian Morin (https://gna.org/users/semor) as
> he is the owner of the relaxation dispersion branch
> (http://svn.gna.org/viewcvs/relax/branches/relax_disp/)!  We are
> currently designing how to input the base data, and this will probably
> result in the 'ri_label' and 'frq_label' being merged into one.
>
>
>   
>> There is another idea:
>> Wouldn't it be great if the user only needs one HSCQ assignment (or
>> TROSY for better dispersion data) and relax(GUI) reads in all the
>> recorded spectra, finds peaks, groups them and start the analysis? This
>> would be a really fat automatic software!
>>     
>
> This can be done without problem.  For the relax design, the GUI would
> fully control this, but most of the work would be performed by
> functions in the 'generic_fns' package.  User functions can be
> designed at the same time or afterwards.  For example spectra.read()
> would be a useful user function that then performs the same thing as
> the GUI, both going through the API and calling a single function in
> the 'generic_fns' package.  Both can be written at the same time (see
> the test suite comments below for why this should be done).  This
> function would then store this data in the relax data store.
>
> Who ever implements this would end up with a very impressive paper.
> People are looking at automatic structures (raw spectra to final
> structure) but no one that I know of is trying to do the same with
> dynamics!
>
>
>   
>> The main issue would be to have a good peak picking algorithm included.
>> I know that Mehdi Mobli (IMB) is writing a promising one. We will have a
>> collaboration about dynamics in 2 weeks and I could ask him to join.
>> What do you think about this?
>>     
>
> If you'd like this in relax, you are totally free to do this.  And it
> would be a most welcome and awesome addition!  But it will need to
> follow the relax design with the clean code separations.  You will
> need to familiarise yourself more with the overall design of relax.
> And also improve your coding abilities - i.e. more comments, no
> whitespace issues, module/class/function docstring writing, commit
> messages following the rules, etc.  You'll have to do this to avoid
> jumping on other peoples toes and breaking their code.  You will need
> to understand the test suite, and implement user functions at the same
> time as GUI functions so scripts can be written and, together with
> basic test cases, added to the test suite.  I would suggest carefully
> reading all of chapter 9 of the relax manual.
>
> It will be difficult to come to grips with this huge code base, but in
> the end it should be worth it.  And I and the other relax developers
> can guide you through this jungle.
>
>
>   
>> There is a lot we can do to get relax THE software for protein dynamics!
>>     
>
> It's already there ;)  Art Palmer is recommending people to use relax
> rather than his program!  I'm extending the program to other analysis
> types.  Sebastian Morin as well.  Gary Thompson worked hard on
> parallelising relax to run on massive clusters, and soon people will
> be able to benefit from that.  Chris MacRaild has made many numerous
> improvements all over the code base, important things that everyone
> now takes for granted.  BMRB support is coming very soon which will
> allow smooth flow of dynamics data into that data base.  CCPN support
> is planned for the future (I was just talking to Rasmus today).
> Others are planning on expanding relax to other domains - for example
> to revolutionise dynamics and its understanding in chemistry.
>
> But adding a flexible GUI will make relax even more awesome!  And an
> automatic process - from raw data to dynamics description - would be
> huge.  But I seriously expect that each one of these new additions
> would result in a paper - otherwise I would be disappointed.
> Minimally a very short communication of a few paragraphs must be
> written.
>
> Cheers,
>
> Edward
>
>   

_______________________________________________
relax (http://nmr-relax.com)

This is the relax-devel mailing list
[email protected]

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-devel

Reply via email to