quick link to WP3 FLR

General context and philosophy

The Use of R

FLR (Fisheries Library for R) is an open-source collection of tools axing on construction of bio-economic simulation models of fisheries and ecological systems which forms a fisheries management evaluation framework http://flr-project.org/OLD/doku.php or (Kell et al. 2007) or http:\\www.efimas.org. FLR has been developed as a library of models and simulation tools stored in a number of packages under R which is a “language and environment for statistical computing and graphics”, available as a Free Software under the GNU General Public License (http://www.R-project.org). R has several advantages compared to traditional software:

  • It is a Free Software i.e. free use, free adaptation of existing programs, free distribution and possible participation of everyone to produce or review programs.
  • It contains a large integrated collection of tools for data analysis and graphical displays, which is a good background to develop further modeling programs for fishery sciences.
  • R is available for a range of platforms (UNIX, Windows,MacOS)
  • It is developed in a simple and effective programming language which allows fishery scientists even with few programming background to get quickly into R and to make short and simple programs.
  • In an object-oriented programming (OOP), everything is an object. S4 classes can be defined according to one’s needs. They are self-contained objects with their own data and methods. Moreover, the use of techniques such as inheritance and polymorphism make the programming easier. A method can be called for different classes, returning outputs according to the class of the inputs. This particularity, if well implemented, facilitates the programming by reducing the number of function names.

R is thus a good balance between flexible, efficient and user-friendly programming.

The FLR philosophy

Up to now usual analysis and assessment methods have used different software (VPA, SMS, SURBA, STF…) and different formats for input data. Besides, most previously existing models developed for evaluating management strategies were fully-integrated software including a number of pre-defined processes and developed for one certain range of analyses. As such, testing alternative hypotheses or scenarios, or adapting to specific case studies issues was not always straightforward.

On the contrary, the basic idea behind FLR is to provide a wide range of tools, each performing one type of analysis. These tools are developed so as to be compatible among them, i.e. their inputs and outputs must be of predefined types and formats. As such, the building of the simulation model itself is left up to the user, who can freely combine the individual tools after his own needs, exactly like with “Lego blocks”.

The main predefined types and formats for inputs and outputs are referred to as core classes, and are defined in the FLCore package as R S4 classes.
Methods and models using these classes are stored either in the FLCore package as well, for the most common of them, or in compatible secondary packages dealing with more specific types of processes. Classes and packages are more specically described in the following chapter

One major advantage of this approach is the cooperation between scientists sharing their knowledge. This is indeed the key philosophy behind open-source, as Linus Thorvalds stated it : “I think the real issue about adoption of open source is that nobody can really ever ‘design’ a complex system. That's simply not how things work: people aren't that smart - nobody is. And what open source allows is to not actually “design” things, but let them evolve, through lots of different pressures in the market, and having the end result just continually improve.”

By using R, FLR improves the transparency of scientific work; de facto all source codes are available which make them easy to review. In addition, the combination of both fixed S4 classes and usual S3 classes (e.g. vectors, matrices, arrays, lists and dataframe) allows enough flexibility and genericity to suit most cases and most kind of fisheries-related data. Basic R methods have been developed in the FLR frame, based on the original functions.

R provides both an interface for data analysis and graphics but also a programmiong language that allows users to also become developers and for developers to become users of others packages. FLR focuses on such cooperation between users and developers and a wiki has been created and numerous tools have been set up to ensure an efficient feedback from the users to the developers.

Katell Hamon 2007/02/01 14:31Clara Ulrich 2008/01/09 15:05Laurence Kell 2008/08/20 12:05J. Rasmus Nielsen 2008/09/09 20:14

efimas1/wp3/3-3-1/main.txt · Last modified: 2008/09/09 20:21 by admin
Except where otherwise noted, content on this wiki is licensed under the following license:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki