Engineering Academic Software

I’ll be heading to Schloss Dahstuhl in June for a Perspectives Workshop on Engineering Academic Software. Questions the workshop will seek to address include:

  • How is academic software different from other software? What are its most pressing dimensions of quality?
  • Is the software we use and produce in an academic context sustainable? How can we ensure that the software continues to evolve and offer value after serving its initial purpose?
  • How can we adapt software engineering methods for the unique academic context without losing quality?
  • How can we balance domain knowledge and expertise with software engineering knowledge and expertise in an academic research team?
  • Do quality aspects of academic software apply to open data as well? How can well-engineered academic software together with open data make science more reproducible?

I look forward to tackling these and other questions with the other participants, and thank  Carole Goble , James Howison, Claude Kirchner, and Oscar M. Nierstrasz for organizing the workshop.

March 2016 additions to the ASCL

Eighteen codes were added to the ASCL in March, 2016:

Asfgrid: Asteroseismic parameters for a star
CORBITS: Efficient Geometric Probabilities of Multi-Transiting Exoplanetary Systems
Dedalus: Flexible framework for spectrally solving differential equations
DiskJockey: Protoplanetary disk modeling for dynamical mass derivation
ellc: Light curve model for eclipsing binary stars and transiting exoplanets

EQUIB: Atomic level populations and line emissivities calculator
ExoPriors: Accounting for observational bias of transiting exoplanets
FAST-PT: Convolution integrals in cosmological perturbation theory calculator
fibmeasure: Python/Cython module to find the center of back-illuminated optical fibers in metrology images
gPhoton: Time-tagged GALEX photon events analysis tools

HIIexplorer: Detect and extract integrated spectra of HII regions
PyGSM: Python interface to the Global Sky Model
PolRadTran: Polarized Radiative Transfer Model Distribution
ROBAST: ROOT-based ray-tracing library for cosmic-ray telescopes
SILSS: SPHERE/IRDIS Long-Slit Spectroscopy pipeline

SMARTIES: Spheroids Modelled Accurately with a Robust T-matrix Implementation for Electromagnetic Scattering
tpipe: Searching radio interferometry data for fast, dispersed transients
VIP: Vortex Image Processing pipeline for high-contrast direct imaging of exoplanets

February 2016 additions to the ASCL

Twenty-one codes were added to the ASCL in February, 2016:

Automark: Automatic marking of marked Poisson process in astronomical high-dimensional datasets
Celestial: Common astronomical conversion routines and functions
CHIP: Caltech High-res IRS Pipeline
CLOC: Cluster Luminosity Order-Statistic Code
COLAcode: COmoving Lagrangian Acceleration code

DELightcurveSimulation: Light curve simulation code
DUSTYWAVE: Linear waves in gas and dust
FilTER: Filament Trait-Evalutated Reconstruction
GANDALF: Graphical Astrophysics code for N-body Dynamics And Lagrangian Fluids
IRSFRINGE: Interactive tool for fringe removal from Spitzer IRS spectra

k2photometry: Read, reduce and detrend K2 photometry
LensTools: Weak Lensing computing tools
LIRA: LInear Regression in Astronomy
LRGS: Linear Regression by Gibbs Sampling
mbb_emcee: Modified Blackbody MCMC

NuCraft: Oscillation probabilities for atmospheric neutrinos calculator
POPPY: Physical Optics Propagation in PYthon
pyraf-dbsp: Reduction pipeline for the Palomar Double Beam Spectrograph
TailZ: Redshift distributions estimator of photometric samples of galaxies
The Cannon: Data-driven method for determining stellar parameters and abundances from stellar spectra

ZAP: Zurich Atmosphere Purge

January 2016 additions to the ASCL

Twenty-one codes were added to the ASCL in January, 2016:

BASCS: Bayesian Separation of Close Sources
CosmicPy: Interactive cosmology computations
ctools: Cherenkov Telescope Science Analysis Software
Fit Kinematic PA: Fit the global kinematic position-angle of galaxies
Hyper-Fit: Fitting routines for multidimensional data with multivariate Gaussian uncertainties

ImpactModel: Black Hole Accretion Disk Impact Model
ISO: Isochrone construction
K2fov: Field of view software for NASA’s K2 mission
LACEwING: LocAting Constituent mEmbers In Nearby Groups
LIRA: Low-counts Image Reconstruction and Analysis

MATPHOT: Stellar photometry and astrometry with discrete point spread functions
Nulike: Neutrino telescope likelihood tools
Odyssey: Ray tracing and radiative transfer in Kerr spacetime
PARAVT: Parallel Voronoi Tessellation code
ProC: Process Coordinator

QDPHOT: Quick & Dirty PHOTometry
SAGE: Semi-Analytic Galaxy Evolution
SavGolFilterCov: Savitzky Golay filter for data with error covariance
SCOUSE: Semi-automated multi-COmponent Universal Spectral-line fitting Engine
TRADES: TRAnsits and Dynamics of Exoplanetary Systems

WzBinned: Binned and uncorrelated estimates of dark energy EOS extractor

AAS 227 Poster 348.01: Making your code citable with the Astrophysics Source Code Library

Image of poster on ASCL showing how it can be used to cite software and get currently untrackable DOIs tracked in ADS

The Astrophysics Source Code Library (ASCL, ascl.net) is a free online registry of codes used in astronomy research. With nearly 1,200 codes, it is the largest indexed resource for astronomy codes in existence. Established in 1999, it offers software authors a path to citation of their research codes even without publication of a paper describing the software, and offers scientists a way to find codes used in refereed publications, thus improving the transparency of the research. Citations using ASCL IDs are accepted by major astronomy journals and if formatted properly are tracked by ADS and other indexing services. The number of citations to ASCL entries increased sharply from 110 citations in January 2014 to 456 citations in September 2015. The percentage of code entries in ASCL that were cited at least once rose from 7.5% in January 2014 to 17.4% in September 2015. The ASCL’s mid-2014 infrastructure upgrade added an easy entry submission form, more flexible browsing, search capabilities, and an RSS feeder for updates. A Changes/Additions form added this past fall lets authors submit links for papers that use their codes for addition to the ASCL entry even if those papers don’t formally cite the codes, thus increasing the transparency of that research and capturing the value of their software to the community.

Download poster (jpg)

AAS 227 Poster 247.07: Astronomy Education and the Astrophysics Source Code Library

Image of ASCL education poster

The Astrophysics Source Code Library (ASCL) is an online registry of source codes used in refereed astrophysics research. It currently lists nearly 1,200 codes and covers all aspects of computational astrophysics. How can this resource be of use to educators and to the graduate students they mentor? The ASCL serves as a discovery tool for codes that can be used for one’s own research. Graduate students can also investigate existing codes to see how common astronomical problems are approached numerically in practice, and use these codes as benchmarks for their own solutions to these problems. Further, they can deepen their knowledge of software practices and techniques through examination of others’ codes.

Download poster (jpg)

December 2015 additions to the ASCL

Twenty codes were added to the ASCL in December, 2015:

ALFA: Automated Line Fitting Algorithm
AstroBlend: Visualization package for use with Blender
Bisous model: Detecting filamentary pattern in point processes
CounterPoint: Zeeman-split absorption lines
CubeIndexer: Indexer for regions of interest in data cubes

DiffuseModel: Modeling the diffuse ultraviolet background
DRACULA: Dimensionality Reduction And Clustering for Unsupervised Learning in Astronomy
EDRS: Electronography Data Reduction System
EDRSX: Extensions to the EDRS package
ExoData: Open Exoplanet Catalogue exploration and analysis tool

FFTLog: Fast Fourier or Hankel transform
GetData: A filesystem-based, column-oriented database format for time-ordered binary data
GPC: General Polygon Clipper library
growl: Growth factor and growth rate of expanding universes
IRACpm: Distortion correction for IRAC astrometric data

Spirality: Spiral arm pitch angle measurement
TACT: The Action Computation Tool
TM: Torus Mapper
UPSILoN: AUtomated Classification of Periodic Variable Stars using MachIne LearNing
ZeldovichRecon: Halo correlation function using the Zeldovich approximation

ASCL at AAS 227

Posters! Sessions! Meetings! The upcoming AAS meeting in Kissimmee, Florida is shaping up to be the busiest ever! Here are the formal meeting activities the ASCL is participating in.


Special Session: Tools and Tips for Better Software (aka Pain Reduction for Code Authors)
Tuesday, January 05, 2:00 PM – 3:30 PM; Sanibel
Organizers: Astrophysics Source Code Library (ASCL)/Moore-Sloan Data Science Environment at NYU

Research in astronomy is increasingly dependent on software methods and astronomers are increasingly called upon to write, collaborate on, release, and archive research quality software, but how can these be more easily accomplished? Building on comments and questions from previous AAS special sessions, this session, organized by the Astrophysics Source Code Library (ASCL) and the Moore-Sloan Data Science Environment at NYU, explores methods for improving software by using available tools and best practices to ease the burden and increase the reward of doing so. With version control software such as git and svn and companion online sites such as GitHub and Bitbucket, documentation generators such as Doxygen and Sphinx, and Travis CI, Intern, and Jenkins available to aid in testing software, it is now far easier to write, document and test code. Presentations cover best practices, tools, and tips for managing the life cycle of software, testing software and creating documentation, managing releases, and easing software production and sharing. After the presentations, the floor will be open for discussion and questions.

The topics and panelists are:

Source code management with version control software, Kenza S. Arraki
Software testing, Adrian M. Price-Whelan
The importance of documenting code, and how you might make yourself do it, Erik J. Tollerud
Best practices for code release, G. Bruce Berriman
Community building and its impact on sustainable scientific software, Matthew Turk
What to do with a dead research code, Robert J. Nemiroff


Poster 247.07: Astronomy education and the Astrophysics Source Code Library
Wednesday, January 06, Exhibit Hall A

The Astrophysics Source Code Library (ASCL) is an online registry of source codes used in refereed astrophysics research. It currently lists nearly 1,200 codes and covers all aspects of computational astrophysics. How can this resource be of use to educators and to the graduate students they mentor? The ASCL serves as a discovery tool for codes that can be used for one’s own research. Graduate students can also investigate existing codes to see how common astronomical problems are approached numerically in practice, and use these codes as benchmarks for their own solutions to these problems. Further, they can deepen their knowledge of software practices and techniques through examination of others’ codes.


Poster 348.01: Making your code citable with the Astrophysics Source Code Library
Thursday, January 07, Exhibit Hall A

The Astrophysics Source Code Library (ASCL, ascl.net) is a free online registry of codes used in astronomy research. With nearly 1,200 codes, it is the largest indexed resource for astronomy codes in existence. Established in 1999, it offers software authors a path to citation of their research codes even without publication of a paper describing the software, and offers scientists a way to find codes used in refereed publications, thus improving the transparency of the research. Citations using ASCL IDs are accepted by major astronomy journals and if formatted properly are tracked by ADS and other indexing services. The number of citations to ASCL entries increased sharply from 110 citations in January 2014 to 456 citations in September 2015. The percentage of code entries in ASCL that were cited at least once rose from 7.5% in January 2014 to 17.4% in September 2015. The ASCL’s mid-2014 infrastructure upgrade added an easy entry submission form, more flexible browsing, search capabilities, and an RSS feeder for updates. A Changes/Additions form added this past fall lets authors submit links for papers that use their codes for addition to the ASCL entry even if those papers don’t formally cite the codes, thus increasing the transparency of that research and capturing the value of their software to the community.

SciCodes.net: Experiment with building your own software registry/repository

The ASCL is offering clones of its infrastructure for any group or discipline wanting to build a code registry or repository of its own, with control of the new resource residing with the requesting parties. If you would like to build your own software resource, you can take our infrastructure, configure it as you like, and use it.

Specifically, we’re offering to:

  • clone the ASCL infrastructure to your domain name
  • host the infrastructure for at least three years (if you’d like) at MTU
  • share innovations on ASCL with those who accept this offer
  • maintain the host
  • let you move your site elsewhere with data intact

We would expect you to:

  • pay for/provide a domain name
  • have control over the site and configure it for your own use
  • use the site for a software repository/registry
  • gather ye codes as ye may
  • share innovations on the site with the ASCL and others who accept this offer
  • not do anything harmful to MTU’s computing environment

ASCL.net is built using these open source tools:

  • mySQL
  • WordPress
  • phpbb
  • CodeIgniter

Interested? Let us know at editor@ascl.net or comment below.