physics

Software (mostly free software) useful to researchers and teachers in physics
Higher Edu - Research dev card
Development from the higher education and research community
  • Creation or important update: 19/09/13
  • Minor correction: 19/09/13
  • Index card author: Eric Hivon (IAP)
  • Theme leader : Dirk Hoffmann (Centre de Physique des Particules de Marseille (CPPM-IN2P3))

HEALPix : data analysis, simulation and visualisation on the sphere

This software was developed (or is under development) within the higher education and research community. Its stability can vary (see fields below) and its working state is not guaranteed.
  • Web site
  • System:
  • Current version: 3.11 - April 2013
  • License(s): GPL - GPLv2
  • Status: stable release
  • Support: maintained, ongoing development
  • Designer(s): Eric Hivon; Martin Reinecke; Krzysztof M. Gorski; Anthony J. Banday; Benjamin D. Wandelt; Emmanuel Joliet; William O'Mullane; Cyrille Rosset; Andrea Zonca
  • Contact designer(s): hivon at iap.fr
  • Laboratory, service: MPA (Garching, Allemagne), Caltech (Pasadena, CA,Etats-Unis), TAC (Copenhague, Danemark), ESAC (Madrid, Espagne), JPL (Pasadena, CA, Etats-Unis), ESO (Garching, Allemagne)

 

General software features

The HEALPix software implements the HEALPix (Hierarchical Equal Area iso-Latitude Pixelation) pixelation of the sphere. Initially developed for the simulation and analysis of ESA Planck satellite observations (dedicated to the study of the Cosmic Microwave Background (CMB) anisotropies, whose first results were delivered in March 2013), this software and its pixelation algorithm have become standard tools in the simulation and analysis of data on the sphere, including the NASA WMAP satellite, also dedicated to CMB observation, and the Pierre Auger ground based observatory for high energy cosmic rays, and are used for other astrophysical and geological studies.

Main features of the pixelation

At a given resolution, all HEALPix pixels have the same surface area, even if their shape varies slightly. Thanks to the hierarchical feature of the pixelation, upgrading its resolution to the next level simply amounts to divide each pixel into four sub-pixel of the same area. This allows quick and efficient upgrading and downgrading operations of existing maps.

Since the pixels are regularly spaced on iso-latitude rings, Spherical Harmonics can be computed very efficiently. The synthesis or analysis up to multipole Lmax  of a spherical data set containing Npix pixels is reduced from    Npix Lmax2   to   Npix½ Lmax2  compared to non iso-latitude pixelation.

Features of the software package

The represents data on the sphere, and enables analysis or simulation of these maps in (scalar or spin-weighted) Spherical Harmonics, as well as various kinds of statistical analyses and processing. Portable FITS files are used for input and output. The list of available functions includes:

  • generation of random maps (gaussian or not) from an arbitrary angular power spectrum,
  • computation of the angular power spectrum (or angular correlation function) of a map,
  • convolution of a spherical map with an arbitrary circular window,
  • tessellation of the sphere and pixel processing supported down to a pixel size of 0.4 milliarcseconds (equivalent to 3.5 1018 pixels on the sphere),
  • median filtering of a map,
  • search of local extrema in a map,
  • query of pixels located in user defined disks, triangles, polygons, ...
  • processing of binary masks to identify 'holes' in order to fill them, or to apodize masks,
  • visualization of HEALPix sky maps either on the whole sky (using Mollweide or orthographic projections) or on a patch (gnomic or cartesian projections),
  • output in Google Map/Google Sky and DomeMaster format.

The most expensive operations, such a Spherical Harmonics Transform have been carefully optimised and benefit from a shared memory parallelisation based on OpenMP.

Contents of the software package

The software is available in C, C++, Fortran90, IDL/GDL, Java and python. The following modules are provided in each of these languages:

  • a library of tools (subroutines, functions, procedures, modules, classes, ...depending on languages) covering most of the functionnalities described above, as well as supporting ancillary tools (eg, parameter file parsing),
  • a set of stand-alone facilities based on the library above and each implementing one of HEALPix major features (map generation or analysis, filtering, resolution udgrade or downgrade, visualization). These applications are generally run via an interactive dialog or an ASCII parameter file. Their source code can be used as a starting point for user specific developments,
  • an extensive PDF and/or HTML documentation describing in details the API, inner working and limitations of each tool and application.

Finally, some tools (interactive script and Makefile) are provided to manage and facilitate the compilation and installation of one or several of the libraries and facilities, for most combinations of hardwares, operating systems, compilers, ...

Third Party Developements

One can distinguish two kinds of third party developements (defined as not (yet) being part of the official HEALPix package described above):

  • new functionalities, for instance many tools based on Minkowski functionals, wavelets (iSAP, MRS, S2LET, SphereLab), or structure identification (DisPerSE) developed by various research teams can be applied to data stored in HEALPix format,
  • translations, re-implementations or wrapping of (some of) existing functionalities, for instance in Matlab/Octave (Mealpix) and Yorick (YHeal) are available. (See (almost) exhaustive list.)

Context in which the software is used

Software used for the analysis of Planck satellite data.
Data format supported by Aladin visualisation software to represent diffuse astronomical data on the sky.

Publications related to the software

Higher Edu - Research dev card
Development from the higher education and research community
  • Creation or important update: 21/02/13
  • Minor correction: 22/02/13

GammaLib : C++ library for gamma-ray astronomy data analysis

This software was developed (or is under development) within the higher education and research community. Its stability can vary (see fields below) and its working state is not guaranteed.
  • Web site
  • System:
  • Current version: 00-07-00 - 11 January 2013
  • License(s): GPL - Version 3
  • Status: stable release
  • Support: maintained, ongoing development
  • Designer(s): Jürgen Knödlseder
  • Contact designer(s): jurgen.knodlseder@irap.omp.eu
  • Laboratory, service: DESY (Deutsches Elektronen-Synchrotron, Hamburg), MPIK (Max-Planck Institute for Nuclear Physics, Heidelberg)

 

General software features

GammaLib is a self-contained, instrument independent, open source, multi-platform C++ library, that implements all code required for high-level science analysis of astronomical gamma-ray data. GammaLib is also wrapped into a Python module.

GammaLib does not rely on any third-party software, except of HEASARC's cfitsio library that is used to implement the FITS interface. Large parts of the code treat gamma-ray observations in an abstract representation, and do neither depend on the characteristics of the employed instrument, nor on the particular formats in which data and instrument response functions are delivered. Instrument specific aspects are implemented as isolated and well defined modules that interact with the rest of the library through a common interface. This philosophy also enables the joint analysis of data from different instruments, providing a framework that allows for consistent broad-band spectral fitting or imaging.

GammaLib contains the following modules:

  • a module for observation, data and instrument response function handling
  • a module for the definition of models (astrophysical source and background models)
  • a module for model fitting
  • a module for image handling
  • a module for the creation of ftools
  • a module for numerical computations
  • a module for linear algebra
  • a module with support functions for GammaLib classes
  • an interface for handling of FITS data
  • an interface for handling data in XML format
  • an interface for handling IRAF parameters

GammaLib is highly portable, requiring only a C++ compiler for building. The only dependency needed for operations is the cfitsio library that implement the FITS interface. If available, GammaLib can also benefit from an OpenMP support to perform parallel computations on multi-processor or multi-core machines.

All GammaLib functionalities are accessible via a C++ interface. GammaLib is also available as a Python module (version 2 and 3).

To enable the data analysis for a specific telescope, a dedicated module needs to be implemented that describes the format and the structure of the telescope's data, as well as its instrument response function. By default, GammaLib supports analysis of data from the Fermi/LAT telescope, the COMPTEL telescope, existing Cherenkov telescopes (H.E.S.S., MAGIC, VERITAS), and the future Cherenkov Telescope Array (CTA).

Context in which the software is used

GammaLib is used as basis of the ctools software, a set of executables that is proposed as the science analysis framework for the Cherenkov Telescope Array (CTA) project.

GammaLib is also employed for the analysis of Fermi/LAT data.

Publications related to the software

Knödlseder, J. 2011, GammaLib - A new framework for the analysis of Astronomical Gamma-Ray Data, submitted to arXiv (http://arxiv.org/abs/1110.6418)

Higher Edu - Research dev card
Development from the higher education and research community
  • Creation or important update: 14/12/11
  • Minor correction: 07/09/13

pyFAI : azimuthal integration for 2D detectors

This software was developed (or is under development) within the higher education and research community. Its stability can vary (see fields below) and its working state is not guaranteed.
  • Web site
  • System:
  • Current version: 0.9.0 - July 30; 2013
  • License(s): GPL
  • Status: stable release
  • Support: maintained, ongoing development
  • Designer(s): Jérôme Kieffer (Python code), Dimitris Karkoulis (OpenMP & OpenCL), Peter Bösecke (Geometry), V. Armando Solé (Image processing), Manuel Sánchez del Río (Original idea), Jonathan P. Wright (Ideas), Frédéric Emmanuel Picca (Documentation and ideas)
  • Contact designer(s): Jerome.Kieffer@esrf.fr
  • Laboratory, service:

 

General software features

PyFAI is a Python library for azimuthal integration; it allows the conversion of diffraction images taken with 2D detectors like CCD cameras into X-Ray powder patterns that can be used by other software like Rietveld refinement tools (i.e. FullProf), phase analysis or texture analysis.

As PyFAI is a library, its main goal is to be integrated in other tools like PyMca or EDNA. To perform online data analysis, the precise description of the experimental setup has to be known. This is the reason why PyFAI includes geometry optimization code working on "powder rings" of reference samples. Alternatively, PyFAI can also import geometries fitted with other tools like Fit2D.

PyFAI has been designed to work with any kind of detector with any geometry (transmission, reflection, off-axis, ...). It uses the Python library Fabio to read most images taken by diffractometer (Fabio officially supports 12 manufacturers and 20 different image formats).

Context in which the software is used

2D detectors (CCD, CMOS or pixel detectors, ...) have progressively replaced punctual detectors over the 15 last years in the world of diffraction (single crystal, powder diffraction WAXS or small angle scattering SAXS). Those detectors, with wide sensitive area, have spatial resolution of dozens of microns and provide millions of pixels. PyFAI can be used on SAXS and WAXS data to reduce them into 1D (azimuthal integration) or 2D (transformation known as caking).

In order to transform detector images into data to be used by scientists it is necessary to:

  • subtract dark current (correction for the read-out noise)
  • divide by flat-field (correction for the relative sensitivity of pixels or scintillator inhomogeneities)
  • correct for the pixel position (defects of the optical fiber taper)
  • mask out dead pixels
  • convert pixel position from Cartesian space (x,y) to Polar space (2theta, chi)

PyFAI is able to compute all those corrections. Special care has been taken to conserve intensity and surface density by pixel splitting during the re-binning process (which is close to a histogram, but with pixel splitting). The algorithm used is implemented in numpy to provide a bullet-proof version, but faster and more precise version have been implemented in Cython and in OpenCL to achieve best performances with modern graphic cards.

An additional piece of software allows a fast and reliable calibration of the geometry of the experimental setup; allowing online analysis of the data.

Publications related to the software
Higher Edu - Research dev card
Development from the higher education and research community
  • Creation or important update: 03/10/11
  • Minor correction: 08/11/11

masschroq : analysis and quantification of mass spectrometry data

This software was developed (or is under development) within the higher education and research community. Its stability can vary (see fields below) and its working state is not guaranteed.
  • Web site
  • System:
  • Current version: 1.1 - September 2011
  • License(s): GPL
  • Status: stable release
  • Support: maintained, ongoing development
  • Designer(s): Olivier Langella, Edlira Nano, Benoît Valot et Michel Zivy.
  • Contact designer(s): enano@moulon.inra.fr
  • Laboratory, service:

 

General software features

MassChroQ (Mass Chromatogram Quantification) is an open source software that performs quantification of mass spectrometry data, in paticular it has been designed to handle the analysis of proteomics data obtained from Liquid Chromatography - Mass Spectrometry (LC-MS) techniques. It can quantify a given list of mass over charge (m/z) values or all the identified peptides of your LC-MS data by performing retention time alignment, XIC extraction, peak detection and peak area quantification on them.

MassChroQ is very versatile: you can fully configure its parameters to best fit your data. You can quantify label-free data as well as isotopic labeled ones, data coming from low resolution spectrometers as well as high resolution ones, take into account complex data treatments as peptide or protein fractionation prior to LC-MS analysis (SCX, SDS-PAGE, ...) etc.
In addition, it is fast (takes less than 4 minutes to fully analyse 1Go of data), it is not greedy (uses at most 400 Mo of RAM at the time) and can perform automatical analysis of different groups of data samples in one shot.

MassChroQ uses and produces only open data formats : mzXML, mzML, gnumeric, csv and ods. It works by providing an input file in the masschroqML (XML) format, where the user indicates the data files to analyse (mzXML or mzML files) and the different analysis and corresponding parameters to perform on them. Sample masschroqML files are available online, you can edit and adapt them to your analysis. The identified peptides can be automatically filled in the masschroqML file in two ways: if you use X!Tandem as your identification engine, you can try the "X!Tandem pipeline" (http://pappso.inra.fr/bioinfo/xtandempipeline/) which performs peptide identification via X!Tandem, filtering and allows you to directly export the results in a masschroqML format. Otherwise, you can provide csv files containing the identified peptides (see the MassChroQ manual on how to do this).

MassChroQ is freely avalable under the GNU General Public Licence version 3 from http://pappso.inra.fr/bioinfo/masschroq/.

Context in which the software is used

MassChroQ is used in our proteomics research laboratory mainly to quantify the identified peptides of data analysed by LC-MS (Liquid Chromatography - Mass Spectrometry), with or without isotopic labelling, and sometimes with fractionation. The .raw data files coming directly from the spectrometers are first converted to mzXML or mzML formats. The peptides they contain are then identified (with the X!Tandem pipeline for example). Then the user edits a masschroqML file where he indicates the file path to the data to analyse together with the alignment, signal filtering and detection parameters he wants to use. Finally he launches MassChroQ on this file. Once MassChroQ has finished analysing the user can directly begin statistical processing on the output data. For more precise information a manual, a FAQ and various examples can be found on the software's homepage.

Publications related to the software
Syndicate content