GFtbox: Difference between revisions

From BanghamLab
Jump to navigation Jump to search
No edit summary
No edit summary
Line 8: Line 8:


==What does ''GFtbox'' require==
==What does ''GFtbox'' require==
''GFtbox'' is written in [[http://en.wikipedia.org/wiki/MATLAB|Matlab]]. '''Why Matlab?'''' Matlab runs on Windows, Mac and Linux. It is freely available and well supported - but not free of cost. Programmers have to earn a living. We prefer our experts to focus on our speciality and let Mathworks maintain compatibility with new processors, OpenGL interfaces, multi-threading, algebraic algorithms (appropriate LAPACK and machine-specific BLAS libraries), user interfaces and handle multi-platform problems. The computational bottleneck in ''GFtbox'' is solving the equations: we find that the Matlab cgs function is quicker and more accurate than alternatives from other sources (lsqr, culaSgesv). The speed is likely to be limited by memory-cpu bandwidth.
''GFtbox'' is written in [[http://en.wikipedia.org/wiki/MATLAB|Matlab]]. '''Why Matlab?'''' Matlab runs on Windows, Mac and Linux. It is freely available and well supported - but not free of cost. Programmers have to earn a living. We prefer our experts to focus on our speciality and let Mathworks maintain compatibility with new processors, OpenGL interfaces, multi-threading, algebraic algorithms (appropriate LAPACK and machine-specific BLAS libraries), user interfaces and handle multi-platform problems. The key numerical algorithms are documented and generally visible and there is a large user-base providing lots of web based help. The computational bottleneck in ''GFtbox'' is solving the equations: we find that the Matlab cgs function is quicker and more accurate than alternatives from other sources (lsqr, culaSgesv). The speed is likely to be limited by memory-cpu bandwidth.


'''Most importantly''' variables such as ''A'' or ''B'' can represent matrices (Matlab - '''Mat'''rix '''Lab''').  This means that we can simply represent simple concepts such as factor ''A'' being inhibited by an amount ''K'' by factor ''B'' wherever ''B'' might be active in the tissue (we call it a canvas). The expression is: ''A .* inh(K, B)''. This allows us to use Matlab as 'language' that expresses the relation between growth factor activity and growth. It disciplines our thinking about growth in a useful way.  
'''Most importantly''' variables such as ''A'' or ''B'' can represent matrices (Matlab - '''Mat'''rix '''Lab''').  This means that we can simply represent simple concepts such as factor ''A'' being inhibited by an amount ''K'' by factor ''B'' wherever ''B'' might be active in the tissue (we call it a canvas). The expression is: ''A .* inh(K, B)''. This allows us to use Matlab as 'language' that expresses the relation between growth factor activity and growth. It disciplines our thinking about growth in a useful way. However, we find it essential to be able to see spatial patterns of growth factors and to see growth as a dynamic process. We do, therefore, use an extensive graphical user interface to control the model.


Matlab is is a weakly typed language and that too is an advantage whilst we develop the necessary concepts for ''GFtbox''. (Whilst it is possible to create a dedicated class library, we defer that until we are certain of what will be required in the future.) In addition, Matlab is sufficiently flexible that inexperienced programmers, half our team are biologists, can pick it up on-the-fly. It behaves as an interpreted language, which makes it easy to break and step through code to follow what is happening.  
Matlab is is a weakly typed language and that too is an advantage whilst we develop the necessary concepts for ''GFtbox''. (Whilst it is possible to create a dedicated class library, we defer that until we are clearer about what functionality will be needed to model most biology.) In addition, Matlab is sufficiently flexible that inexperienced programmers, half our team are biologists, can pick it up on-the-fly. It behaves as an interpreted language, which makes it easy to break and step through code to follow what is happening.
 
''GFtbox'' does not require any special Mathworks toolboxes. Matlab is available as a [http://www.mathworks.com/products/matlab/tryit.html|30 day free trial] and there is a[[http://www.mathworks.com/academia/student_version/?s_cid=global_nav| student edition].


A 30 day trial of M
==How to start using ''GFtbox''==
==How to start using ''GFtbox''==



Revision as of 20:59, 4 May 2011

Why write GFtbox?

GPT-logo-460.png

To understand how patterns of gene activity in biological organs influence the developing shape. A key notion is that genes may regulate growth direction independently of growth rate. We formalised our ideas in the Growing Polarised Tissue Framework (GPT-framework, ref).

Intuition is not, however, a good guide to how patterns of growth interact with each other and a continuous sheet of material to produce complex shapes. It is therefore necessary to translate intuition into a mathematical form (as a computable model) and compute the results. Rather than writing specific, custom software for each model we chose to produce a general purpose package: GFtbox within which individual computable models can be created.

This allowed us to test the veracity of the computational kernal using simple examples (Supplemental Text 1 in ref) before building a library of examples illustrating the properties of the GPT-framework (Results in ref) and embarking on modelling biological tissues (ref Green). Using GFtbox one can start with a simple sheet of tissue (the canvas), lay out experimentally observed, or hypothesised, patterns of regulator activity and then grow the canvas in 3D. Patterning can continue during growth and the final shape can be compared quantitatively with it's biological counterpart - so testing the hypotheses (ref Cui).

What does GFtbox require

GFtbox is written in [[1]]. Why Matlab?' Matlab runs on Windows, Mac and Linux. It is freely available and well supported - but not free of cost. Programmers have to earn a living. We prefer our experts to focus on our speciality and let Mathworks maintain compatibility with new processors, OpenGL interfaces, multi-threading, algebraic algorithms (appropriate LAPACK and machine-specific BLAS libraries), user interfaces and handle multi-platform problems. The key numerical algorithms are documented and generally visible and there is a large user-base providing lots of web based help. The computational bottleneck in GFtbox is solving the equations: we find that the Matlab cgs function is quicker and more accurate than alternatives from other sources (lsqr, culaSgesv). The speed is likely to be limited by memory-cpu bandwidth.

Most importantly variables such as A or B can represent matrices (Matlab - Matrix Lab). This means that we can simply represent simple concepts such as factor A being inhibited by an amount K by factor B wherever B might be active in the tissue (we call it a canvas). The expression is: A .* inh(K, B). This allows us to use Matlab as 'language' that expresses the relation between growth factor activity and growth. It disciplines our thinking about growth in a useful way. However, we find it essential to be able to see spatial patterns of growth factors and to see growth as a dynamic process. We do, therefore, use an extensive graphical user interface to control the model.

Matlab is is a weakly typed language and that too is an advantage whilst we develop the necessary concepts for GFtbox. (Whilst it is possible to create a dedicated class library, we defer that until we are clearer about what functionality will be needed to model most biology.) In addition, Matlab is sufficiently flexible that inexperienced programmers, half our team are biologists, can pick it up on-the-fly. It behaves as an interpreted language, which makes it easy to break and step through code to follow what is happening.

GFtbox does not require any special Mathworks toolboxes. Matlab is available as a day free trial and there is a[student edition.

How to start using GFtbox

Limitations of GFtbox


The following is parked here - just to remind me how it is done

[GFtbox]

<sgallery width="200" height="200" showarrows="true" showcarousel="true" showinfopane="true" timed="true" delay="6000"> Cycdich.jpg|This is the description for picture1 Arabidopsis_Leaf_ATH8bbg.png|This is the description for picture1 Grandison-Simulation.png|This is the description for picture1 PaulProjectPic.png|This is the description for picture1 Pierre_project_image.jpg|This is the description for picture1 </sgallery>