2022-06-16 17:02:32 +02:00
2022-06-16 17:02:32 +02:00
2022-06-16 17:02:32 +02:00
2022-06-16 17:02:32 +02:00
2022-05-19 16:25:48 +02:00
2022-06-09 10:34:39 +02:00
2022-06-09 10:34:39 +02:00
2022-06-09 10:34:39 +02:00

🎲 ⛓️ 👉 🧪 Markov Chain Monte Carlo for fun and profit

Using random numbers to do all the things.

This is an exemplar project designed to showcase best practices in developing scientific software as part of the ReCoDE Project at Imperial College London.

You do not need to know or care about Markov Chain Monte Carlo for this to be useful to you.

Rather this project is primarily designed to showcase the tools and practices available to you when developing scientific software projects. Maybe you are a PhD student just starting, or a researcher just about to embark on a larger scale software project - there should be something interesting here for you.

Table of contents

  1. A short introduction
  2. Organising code and python packaging
  3. Testing your code
  4. Planning the project, MVPs, Premature Optimisation,
  5. Planning out a larger software project
  6. Using Jupyter Notebooks during development
  7. Documentation
  8. Reproducibility of software outputs
  9. Citing software in a publication: CITATION.cff
  10. Managing an open source project, issues, milestones

How to use this repository

Take a look at a the table of contents below and see if there are any topics that might be useful to you. The actual code lives in ./code and the documentation in ./learning

When you're ready to dive in you have three options:

1. Launch them in Binder (easiest but a bit slow)

Binder

2. Clone the repo and run the jupyter notebooks locally. (Faster but requires you have python/jupyter installed)

git clone
cd
pip install -r requirements.txt
jupyter lab

The map

.
├── CITATION.cff # This file describes how to cite the work contained in this repository.
├── LICENSE # Outlines what legal rights you have to use this software.
├── README.md # You are here!
├── code
│   ├── README.md # Human readable information about the little python package in here
│   ├── pyproject.toml # Machine readable information about that same package
│   ├── setup.cfg # Tells Pip how to install this package
│   ├── src
│   │   └── MCFF # The actual code lives in here!
│   └── tests # automated tests for the code
└── learning # Supporting documentation

External Resources

Description
🎲 ⛓️ 👉 🧪 An exemplar project designed to showcase best practices in developing scientific software. Part of the ReCode Project at Imperial College London
Readme BSD-3-Clause Cite this repository 5.2 MiB
Languages
Python 100%