Sciris: Simplifying scientific software in Python
Authors:
- Cliff C. KerrCKCliff C. Kerr
- Paula Sanz-LeonPSPaula Sanz-Leon
- Romesh G. AbeysuriyaRARomesh G. Abeysuriya
- George L. ChadderdonGCGeorge L. Chadderdon
- Vlad-Ştefan HarbuzVHVlad-Ştefan Harbuz
- Maria del Mar QuirogaMQMaria del Mar Quiroga
- Rowan Martin-HughesRMRowan Martin-Hughes
- Sherrie L. KellySKSherrie L. Kelly
- Jamie A. CohenJCJamie A. Cohen
- Robyn M. StuartRSRobyn M. Stuart
Open Access
- 14 August 2023
- journal article
- research article
- Published by The Open Journal in Journal of Open Source Software
- Vol. 8 (88) , 5076
Abstract
Sciris aims to streamline the development of scientific software by making it easier to perform common tasks. Sciris provides classes and functions that simplify access to frequently used low-level functionality in the core libraries of the scientific Python ecosystem (such as numpy for math and matplotlib for plotting), as well as in libraries of broader scope (such as multiprocess for parallelization and pickle for saving and loading objects). While low-level functionality is valuable for developing robust software applications, it can divert focus from the scientific problems being solved. Some of Sciris' key features include: ensuring consistent dictionary, list, and array types (e.g., enabling users to provide inputs as either lists or arrays); enabling ordered dictionary elements to be referenced by index; simplifying datetime arithmetic by allowing date input in multiple formats, including strings; simplifying the saving and loading of files and complex objects; and simplifying the parallel execution of code. With Sciris, users can often achieve the same functionality with fewer lines of code, avoid reinventing the wheel, and spend less time looking up recipes on Stack Overflow. This can make writing scientific code in Python faster, more pleasant, and more accessible, especially for people without extensive training in software development.Keywords
This publication has 18 references indexed in Scilit:
- Optima HIV Methodology and Approach2020
- PyVista: 3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK)Journal of Open Source Software, 2019
- Is epidemiology ready for Big Software?Pathogens and Disease, 2019
- fMRIPrep: a robust preprocessing pipeline for functional MRINature Methods, 2018
- Easing the burden of code reviewNature Methods, 2018
- Nextstrain: real-time tracking of pathogen evolutionBioinformatics, 2018
- Optima Nutrition: an allocative efficiency tool to reduce childhood stunting by better targeting of nutrition-related interventionsBMC Public Health, 2018
- Re-run, Repeat, Reproduce, Reuse, Replicate: Transforming Code into Scientific ContributionsFrontiers in Neuroinformatics, 2018
- OptimaJAIDS Journal of Acquired Immune Deficiency Syndromes, 2015
- Dask: Parallel Computation with Blocked algorithms and Task Scheduling2015