This is a guest post by Alice Allen, the editor of the Astrophysics Source Code Library.
One of the joys and challenges of being a scientist is in developing and/or using computer programs – codes, as astronomers and astrophysicists refer to them – to aid in research, whether for data reduction, simulation, numerical calculation, or any number of other uses.
For example, in her recent Astrobite on the paper Removal and mixing of the coronal gas from satellites in galaxy groups: cooling the intragoup gas by Zavala et al., Alice Olmstead discusses the authors’ need to select a simulation method that would best fit the problem they were researching. They chose a well-known public code called FLASH from the different options available to them.
In the lifetime of the average graduate student, codes became increasingly important and research is now particularly reliant on computer methods. Unfortunately, these vital methods are often hidden from view because software developed for research isn’t released when the research using it is released. This reduces two pillars of the scientific method, reproducibility and transparency; codes are a method and should be available for people to look at and understand, just as any other method is. You can read further about this here and here (for starters!). But even when programs are released publicly they can be hard to locate, stored on researchers’ websites as a footnote – if that – to their papers. There have been few good ways to find codes used to generate research results.
The Astrophysics Source Code Library (ASCL) was established as an aid to the community to catalog and briefly describe scientist-developed software used in research and let astronomers know where to find it. The ASCL, which was founded in 1999, moved to a new site in 2010 and has grown from about 40 codes to over 500, with new programs added every month.
The ASCL currently resides on the discussion site for Astronomy Picture of the Day (APOD), Starship Asterisk, in a forum called The Engineering Deck: Astrophysics Source Code Library. Each code has a thread devoted to it, with the initial post on the thread containing the following information:
- Program name
- Abstract or description of code
- Person(s) credited with writing the software
- Link to the source code site
- Link to a paper which discusses or uses the program
- Unique ASCL identifier
A handful of ASCL entries store an archive file of the code, but most point to an external site for downloading the software. Many scientists prefer, or must, keep their programs close to them, to better manage updates and bug fixes, for version control, and/or to appease their organizations, which may require that products developed by its employees be kept on organizational servers.
Codes in the ASCL are listed alphabetically by name, 100 entries per page; a one-page summary of all codes, produced monthly, is also available from the ASCL WordPress site, home of the ASCL’s low-volume blog. You could page through the ASCL site looking for a particular program, but it is much faster to search for it using the search box at the top of the Engineering Deck page:
The forum offers full-text iterative searching; once you have a results page, you can enter a new term into the search box to search just the previous results. Though this search capability works, we admit it could stand improvement and we’re looking into that.
If you have written a code that has been used to generate results published in or submitted to a refereed journal and would like to submit it for consideration, you can email me (alice.allen1 at verizon.net), post information about it on the “New codes welcome” thread, or create an entry for your software yourself by following the online instructions for doing so. Associate editor Kim DuPrie and I look at all submissions and, if they meet the criteria for inclusion, assign ascl IDs to them and have them indexed by ADS.
We want to provide more and better information to our audience, and one way to do so is through a Code of the Month feature. As the ASCL is a part-time volunteer effort for all involved with it, all we lack is time! If you have time to spare – or chores you’d like to have a reason to ignore – and are interested in describing a code from a user’s perspective, how it works, what it does, and why one might want to use it over other options in about eight paragraphs, please let us know!