Git Product home page Git Product logo

delsuc / gifa Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 2.0 39.36 MB

the Gifa v4 program - in an effort to revive the program.

Shell 0.60% Makefile 0.65% GAP 2.02% Arc 0.04% C 21.15% Fortran 32.18% C++ 7.21% Pascal 0.12% HTML 32.78% SourcePawn 0.01% Assembly 0.03% Perl 1.65% Pawn 0.01% PHP 0.09% Scilab 0.06% Awk 0.01% Roff 0.14% NASL 0.20% Python 0.33% TeX 0.75%
nmr-spectroscopy data-analysis fortran77

gifa's Introduction

Gifa v4 program - an effort to revive the program.

This is a repository of the historic NMR processing program Gifa v4 as published in:

Jean-Luc Pons, Thérèse E. Malliavin, Marc A. Delsuc Gifa V. 4: A complete package for NMR data set processing. Journal of Biomolecular NMR (1996), Volume 8, Issue 4, pp 445–452 doi: 10.1007/BF00228146

pdf version: https://link.springer.com/content/pdf/10.1007/BF00228146.pdf

It is also feature an article submitted as a contribution to the "Ten Years Reproducibility Challenge" run by ReScience C.

Contents of this repository

The directory article contains the LaTeX source code and accessory files of the article submitted to ReScience C.

The directory code contains the code

  • com - various scripts used by the program while running
  • com_devel - various scripts used to build the program or the documentation
  • doc - the interactive documentation
  • help - help files
  • linux_obj - binary is built there
  • macro - the set of macros used by the program while running
  • source - the complete source of the program
  • test - the test suite
  • util - utility programs - not used in this release
  • Original_Distrib_Files - Old files unused for this release

The directory data contain the test data used in the publication

The first commits are as follows:

  • 1/ initial: source files, macros, and tests of the 4.31 version - dated 1st Aug 2000 - the older source I could find (nearly 20 years later !)
  • 2/ same set-up version 4.41 1 Jan 2002
  • 3/ same set-up version 4.5 Mars 2004

How to compile Gifa on your system

This is the way I did it.

prepare the system

I created a virtual machine, (using Virtual Box) with a 10GB disk, 4GB memory and 16MB graphic memory. (that was a big machine back in 1996 !) and installed a fully updated Ubuntu 16.04 32bits on it. Be careful not to use a blank or an extended ASCII char in the user name - Gifa cannot handle this.

Then with apt-get I install the following packages:

sudo apt-get install xxx with xxx being successively git f2c libxext-dev libmotif-dev libreadline6-dev libgdbm-dev

install and build Gifa

To install, get the source from here

git clone https://github.com/delsuc/Gifa.git

The build process is controlled by a single Makefile located in the code/source folder, along with the whole program source. Typing just make lists all the possible options.

This makefile is common to all platforms on which Gifa was built, in a first step, it determines the actual platform, then transfers the control to another makefile located in a folder specific to the platform - linux_obj in our case. Building the binaries is handled by a makefile located in this folder, along with a fortran shell script that compiles the FORTRAN sources. The produced binary files are stored in this specific folder.

The FORTRAN code is compiled to binary in three steps. First the \*.for file is preprocessed by a perl script called FPP, which handles include files, conditionals and assertions, and a \*.f is created. Then, in the present set-up, the \*.f is translated to a \*.c file with the f2c utility. Finally this C file is compiled to binary with a standard C compiler.

To build, go to the source folder

cd Gifa/code/source

create the depend_list, used by Makefile to compile everything

make depend

build the binary (ignore the warnings!)

make gifa

then install copies stuff in /usr/local and /usr/local/bin

sudo make install

A full test procedure is in the testdirectory ad launched by make test; however this does not work because of some problem dealing with the standard input.

but...

cd ../test
gifa

... works.

first contact with Gifa

Gifa is a data processing software, it processes and displays 1D, 2D and 3D NMR spectra. It is not the place here to go through all the feature, but just to glance at some of the features.

If you have done a full install, Gifa can be launched from the terminal just by typing gifa at the prompt, and the complete GUI will be launched (because a link to the macro has been added in your $HOME )

You can load a spectrum, try read the file Gifa/data/ARTE_ref_20.gs2. (*.gf2 is for 2D FID; *.gs2 is for 2D spectrum) Then the tools in the zoombox can be used to control the display ()

You can also interact with the spectrum (using a 3-buttons mouse):

  • left or right click: spectral coordinates in the zoombox
  • middle click: draw synchronized cross-hair in all spectral windows
  • left + middle click: draw a zoom box
  • left + right click: zoom in the drawn box

To exit Gifa, type exit in the terminal, or go to the About menu.

duplicating the examples from the manuscript

The two Gifa macros fig2a.g and figure3.g, located in the article directory reproduce the Figure 2 and 3 from the original article (names Figure 1 and 2 in the current manuscript). To launch them, simply go to Gifa/article type gifa to launch the program, and fig2a.g or figure3.g ( Note that the purpose of fig2a.g is to control the display of a 2D spectrum - so if no spectrum is loaded it has no visible effect - if you wish to at least see something, you can for instance launch figure3.g first, as it loads and computes a 2D spectrum )

The timing presented in Table 1 are obtained as follows:

  • for the 2D processing, launch Gifa goto the code/test directory (there is a cd command), and type benchmark. This executes the standard benchmarking macro, which has been present since the very beginning of the development, and contains timing for all machines on which it has been tested.

  • for the 3D, launch Gifa goto the article directory, and type

timer 1
bench3D.g

et Voilà!


This work is licensed under a Creative Commons Attribution 4.0 International License

gifa's People

Contributors

delsuc avatar khinsen avatar pdebuyl avatar

Watchers

 avatar  avatar

Forkers

khinsen pdebuyl

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.