:tocdepth: 1 .. _scientific-software: ============================= Scientific software standards ============================= Most research code is written once and never reused because it is hard to install, untested, and undocumented. **scikit-package**, developed with Prof. Simon Billinge, gives scientists a path from a script to a tested, documented, public package, one level at a time. - Packaging standards, project templates, automated reusable workflows, and tutorials - Five levels of sharing, from a reusable function to a released pip/conda package - `Documentation `__ · `Code `__ · `Paper `__ .. figure:: ../img/research/scikit-package-levels.png :width: 75% :align: center :alt: Diagram of the five levels of sharing code in scikit-package **Five levels of sharing code**, from reusing a function within a file (level 1) to releasing a public package with pip/conda distribution, release notes, and hosted documentation (level 5), with the scikit-package command for each level. **Academic software built with scikit-package** - PDFfit2 and PDFgui: Computer programs for studying nanostructure in crystals (`J. Phys. Condens. Matter `__) - cifkit: A Python package for coordination geometry and atomic site analysis (`JOSS `__) - Composition and structure analyzer/featurizer for explainable machine learning models to predict solid state structures (`Digital Discovery `__) - Stretched non-negative matrix factorization (`npj Comput. Mater. `__) - Real-space texture and pole-figure analysis using the 3D pair distribution function on a platinum thin film (`IUCrJ `__) Co-authored publications ------------------------ - **scikit-package: software packaging standards and roadmap for sharing reproducible scientific software.** S. Lee *et al.*, `Digital Discovery `__ (2026).