Using the ASCL for education

The Astronomy Department at the University of Maryland (College Park) offers a one-credit astronomy scientific computing class, ASTR 288P: Introduction to Astronomical Programming, to provide undergraduates with a foundation in computing. This course is a prerequisite to an advanced-level three-credit course on Computational Astrophysics (ASTR 415).

In ASTR 288P, students learn to work with the UNIX terminal, get the basics of coding with Python and some C, and learn what makefiles are and how to install software, among other topics. The course also introduces students to the ASCL, as for the final class project, students (either alone or in pairs) pick a code from the ASCL, give a short presentation on how they installed and used it, and discuss how that code fits in the large scheme of computing in astrophysics. This allows the students to get a feel for the computational work the astro community is doing and is a good match to test the skills they should have learned in the class.

Increasing the visibility of NASA software

Until this week, a search in ADS for doctype:”software” keyword:”NASA” returned zero results. NASA has funded the ASCL to make its astronomy research software discoverable in ADS. This required changes to the ASCL structure and the ADS data feed, and edits to some current records; it also entails mining various NASA software sites for codes that meet the ASCL’s criteria and creating appropriately tagged entries for them. In the first phase of the project, started in July, our wonderful developer Judy Schmidt (@SpaceGeck) worked her magic on our infrastructure, keywords have been added to some existing records, and ADS has ingested the first entries we’ve tagged with the NASA keyword. We can now see first results from this two-year project:

ADS search results for NASA software with 43 records
Additional changes will be coming to the ASCL in the coming months as we continue this funded work. We love this project; at its core, it’s a simple concept, and leverages existing resources (ADS, various NASA code sites, and ASCL) to make research software more discoverable and provides information about NASA software that was not readily available before. It furthers the excellent work NASA has been doing to release software, demonstrates yet another value of ADS (which has many superpowers!), and makes the ASCL more useful, too.

September 2018 additions to the ASCL

Sixteen codes were added to the ASCL in September 2018:

dynesty: Dynamic Nested Sampling package
Isca: Idealized global circulation modeling
LEMON: Differential photometry pipeline
MrMoose: Multi-Resolution Multi-Object/Origin Spectral Energy distribution fitting procedure

NEBULA: Radiative transfer code of ionized nebulae at radio wavelengths
nestcheck: Nested sampling calculations analysis
PASTA: Python Astronomical Stacking Tool Array
PCCDPACK: Polarimetry with CCD

perfectns: “Perfect” dynamic and standard nested sampling for spherically symmetric likelihoods and priors
PyQSOFit: Python code to fit the spectrum of quasars
qp: Quantile parametrization for probability distribution functions
RequiSim: Variance weighted overlap calculator

spops: Spinning black-hole binary population synthesis
stepped_luneburg: Stacked-based ray tracing code to model a stepped Luneburg lens
surfinBH: Surrogate final black hole properties for mergers of binary black holes
VBBINARYLENSING: Microlensing light-curve computation

Seminar at Centre de Recherche Astrophysique de Lyon

I gave a seminar at the Centre de Recherche Astrophysique de Lyon on Friday, September 14, at the invitation of Mohammad Akhlaghi, a post-doc there. Mohammad is very interested and has done a lot of work on reproducibility, ensuring that his work is reproducible and developing a reproducibility framework that can be adopted by others. The seminar took place on CRAL’s lovely historic campus at the Observatoire de Lyon in Saint-Genis-Laval. The title, abstract, and link to the slides are below.

Title: Make your code famous! (or at least discoverable).

Abstract: Source codes are increasingly important for the advancement of science in general and astrophysics in particular. Journal articles detail the general logic behind new results and ideas, but often the source codes that enable these results remain hidden from public view. In this presentation, I will discuss our recent study on the availability of source codes used for published research and how this affects the transparency and reproducibility of astro research. I will cover what the Astrophysics Source Code Library (ASCL, is, how to submit software to the resource, and the benefits of doing so. I will share what happens after software is submitted, how ASCL entries are indexed by ADS, the links between literature and software entries, and how an ASCL ID can be used for citing your code. I will cover good and bad ways to cite software, avenues for publishing software, and how journals are changing to include and recognize the contribution software makes to our discipline.

Slides (PDF)

August 2018 additions to the ASCL

Eleven codes were added to the ASCL in August 2018:

2DSF: Vectorized Structure Function Algorithm
Barycorrpy: Barycentric velocity calculation and leap second management
CPF: Corral Pipeline Framework
Fips: An OpenGL based FITS viewer
hfof: Friends-of-Friends via spatial hashing

hi_class: Horndeski in the Cosmic Linear Anisotropy Solving System
ImPlaneIA: Image Plane Approach to Interferometric Analysis
py-sdm: Support Distribution Machines
PyMieDap: Python Mie Doubling Adding Program
Robbie: Radio transients and variables detection workflow

rsigma: Resonant disturbance

ASCL poster as IAU 2018 General Assembly

ASCL poster for IAU 2018 meeting

Abstract: Astrophysics research relies on software and all robust science requires transparency and reproducibility, yet the computational methods used in our discipline are often not shared or are difficult to find. In recent preliminary research, 40% of the software used in the 2015 papers we examined did not offer source code and restricting the reproducibility of this research. The Astrophysics Source Code Library (ASCL. registers astrophysics research source codes that have been used in refereed research, benefiting the field in numerous ways, including increasing the discoverability of software and making the published research record more robust. With over 1,700 codes, the ASCL is the largest indexed resource for astronomy research codes in existence. This free online registry was established in 1999 and is indexed by ADS and Web of Science. ASCL registration allows your software to be cited on its own merits and provides a citation method that is trackable and accepted by all astronomy journals and journals such as Science and Nature. This presentation covers the benefits of registering astronomy research software with the ASCL, upcoming changes that will enable greater software discovery initially for NASA software and potentially for software funded by other organizations, changes to the ASCL and ADS that benefit researchers, and our research into software use in astronomy.

Alice Allen, Astrophysics Source Code Library/University of Maryland
Robert J. Nemiroff, Michigan Technological University
Peter J. Teuben, University of Maryland

Download poster

July 2018 additions to the ASCL

Thirty-three codes were added to the ASCL in July 2018:

AngPow: Fast computation of accurate tomographic power spectra
ARKCoS: Radial kernel convolution on the sphere
ASP: Ames Stereo Pipeline
BARYCORR: Python interface for barycentric RV correction
CAESAR: Compact And Extended Source Automated Recognition

CLASSgal: Relativistic cosmological large scale structure code
DAMOCLES: Monte Carlo line radiative transfer code
EVEREST: Tools for de-trending stellar photometry
GLS: Generalized Lomb-Scargle periodogram
HELIOS: Radiative transfer code for exoplanetary atmospheres

HII-CHI-mistry_UV: Oxygen abundance and ionizionation parameters for ultraviolet emission lines
HII-CHI-mistry: Oxygen abundance and ionizionation parameters for optical emission lines
kplr: Tools for working with Kepler data using Python
ktransit: Exoplanet transit modeling tool in python
LSC: Supervised classification of time-series variable stars

MAPPINGS V: Astrophysical plasma modeling code
MIDLL: Markwardt IDL Library
nfield: Stochastic tool for QFT on inflationary backgrounds
NRPy+: Code generator for Numerical Relativity
POLARIS: POLArized RadIation Simulator

POWER: Python Open-source Waveform ExtractoR
PUMA: Low-frequency radio catalog cross-matching
PyAutoLens: Strong lens modeling
pyqz: Emission line code
SENR: Simple, Efficient Numerical Relativity

SPEGID: Single-Pulse Event Group IDentification
SSMM: Slotted Symbolic Markov Modeling for classifying variable star signatures
TBI: Three-Body Integration
THOR: Global Circulation Model for planetary atmospheres
Warpfield: Winds And Radiation Pressure: Feedback Induced Expansion, colLapse and Dissolution

wdmerger: Simulate white dwarf mergers with CASTRO
xGDS: Exploration Ground Data Systems
ZBARYCORR: Barycentric redshift calculator

June 2018 additions to the ASCL

Thirty-two codes were added to the ASCL in June 2018:

ASPIC: Accurate Slow-roll Predictions for Inflationary Cosmology
BHDD: Primordial black hole binaries code
BRATS: Broadband Radio Astronomy ToolS
BWED: Brane-world extra dimensions
DirectDM-mma: Dark matter direct detection

DirectDM-py: Dark matter direct detection
EXO-NAILER: EXOplanet traNsits and rAdIal veLocity fittER
exoinformatics: Compute the entropy of a planetary system’s size-ordering
fcmaker: Creating ESO-compliant finding charts for Observing Blocks on p2

foxi: Forecast Observations and their eXpected Information
GLASS: Parallel, free-form gravitational lens modeling tool and framework
gsf: galactic structure finder
Indri: Pulsar population synthesis toolset
Keras: The Python Deep Learning library

LASR: Linear Algorithm for Significance Reduction
OMEGA: One-zone Model for the Evolution of GAlaxies
P2DFFT: Parallelized technique for measuring galactic spiral arm pitch angles
pile-up: Monte Carlo simulations of star-disk torques on hot Jupiters
pwv_kpno: Modeling atmospheric absorption

PyAMOR: AMmOnia data Reduction
PyMUSE: VLT/MUSE data analyzer
pyZELDA: Python code for Zernike wavefront sensors
QE: Quantum opEn-Source Package for Research in Electronic Structure, Simulation, and Optimization
RadFil: Radial density profile builder for interstellar filaments

RMextract: Ionospheric Faraday Rotation calculator
SpaghettiLens: Web-based gravitational lens modeling tool
Spheral++: Coupled hydrodynamical and gravitational numerical simulations
SpS: Single-pulse Searcher
SYGMA: Modeling stellar yields for galactic modeling

WDEC: White Dwarf Evolution Code
WiseView: Visualizing motion and variability of faint WISE sources

Linking literature and software

Most ASCL code entries have one or more links to articles that either describe or use the software in that entry. ADS ingests this information to associate the code with relevant literature. For example, the entry for 2LPTIC: 2nd-order Lagrangian Perturbation Theory Initial Conditions includes a link for an MNRAS paper in the “Appears in: field:

Going to the ADS entry for this software shows that the code is associated with a paper under Associated Articles:This, however, doesn’t tell you anything about the relationship between the article and the software. ADS and the ASCL have been working to improve this. The ASCL has been disambiguating these article links into Described in and Used in. At the ADS Hack Day event last month, ASCL provided ADS with disambiguated links for over 900 entries, and Carolyn Grant had these uploaded into ADS in a matter of minutes. (ADS folks are wizards, I tell you! Wizards! They work magic!!)

Currently, ASCL records appear the same, but for those records we have provided disambiguated article links, ADS displayed them as Described in and Used in, as you can see in the 2-DUST: Dust radiative transfer code entry, for which the ASCL lists two papers:

For ASCL records in which the Appears in link(s) have not been disambiguated, there is no change in how they are displayed in ADS. We have over 700 entries with article links still to be disambiguated and we continue this work; ADS will be ingesting the changes with their regular weekly ingest of ASCL data.

May 2018 additions to the ASCL

Thirty-two codes were added to the ASCL in May 2018:

3DCORE: Forward modeling of solar storm magnetic flux ropes for space weather prediction
AGAMA: Action-based galaxy modeling framework
Arcmancer: Geodesics and polarized radiative transfer library
ASTROPOP: ASTROnomical Polarimetry and Photometry pipeline
BCcodes: Bolometric Corrections and Synthetic Stellar Photometry

BinMag: Widget for comparing stellar observed with theoretical spectra
CUBE: Information-optimized parallel cosmological N-body simulation code
CubiCal: Suite for fast radio interferometric calibration
DeepMoon: Convolutional neural network trainer to identify moon craters
dftools: Distribution function fitting

EARL: Exoplanet Analytic Reflected Lightcurves package
exocartographer: Constraining surface maps orbital parameters of exoplanets
GLACiAR: GaLAxy survey Completeness AlgoRithm
grid-model: Semi-numerical reionization code
HENDRICS: High ENergy Data Reduction Interface from the Command Shell

lcps: Light curve pre-selection
MontePython 3: Parameter inference code for cosmology
OSS: OSSOS Survey Simulator
PampelMuse: Crowded-field 3D spectroscopy
PoMiN: A Post-Minkowskian N-Body Solver

powerbox: Arbitrarily structured, arbitrary-dimension boxes and log-normal mocks
PROM7: 1D modeler of solar filaments or prominences
PyCBC: Gravitational-wave data analysis toolkit
PyCCF: Python Cross Correlation Function for reverberation mapping studies
PySE: Python Source Extractor for radio astronomical images

SNSEDextend: SuperNova Spectral Energy Distributions extrapolation toolkit
SP_Ace: Stellar Parameters And Chemical abundances Estimator
STARBLADE: STar and Artefact Removal with a Bayesian Lightweight Algorithm from Diffuse Emission
StarSmasher: Smoothed Particle Hydrodynamics code for smashing stars and planets
StePS: Stereographically Projected Cosmological Simulations

SWIFT: SPH With Inter-dependent Fine-grained Tasking
xspec_emcee: XSPEC-friendly interface for the emcee package