Skip to content

A presentation on best coding/data management practices based on my own experiences of scientific computing and data analysis and heavily borrowing from the recommendations of many others. View presentation at: https://edeno.github.io/Better-Science-Code

License

Notifications You must be signed in to change notification settings

ghuangud/Better-Science-Code

 
 

Repository files navigation

Better-Science-Code

A presentation on best coding/data management practices based on my own experiences of scientific computing and data analysis and heavily borrowing from the recommendations of many others (This is not meant to be a unique work, more like an annotated compilation of advice.).

Resources

Writing better code

Wilson, G., Bryan, J., Cranston, K., Kitzes, J., Nederbragt, L., and Teal, T.K. (2016). Good Enough Practices in Scientific Computing. arXiv Preprint arXiv:1609.00037.

  • Solid practical advice for writing good code and managing data.

Initial steps toward reproducible research - Karl Broman

  • Another good guide for writing code and managing data. More focused on R.

10 Tips for Writing Cleaner & Better Code

  • A short list of tips for those that don't have much time.

Version control

Git for humans - Alice Bartlett

  • Great introduction to the basics of git without getting too "into the weeds". Clearly explains the usefulness of commits and branching.

Github Desktop

  • My preferred interface for beginning users of git. Uses a graphical interface rather than the command line.

The curious coder’s guide to git

  • A longer guide using the git command line interface

Introduction to Git & the Command Line

  • A step-by-step guide to git and the command line

Software Carpentry's Guide to Git

  • Another command line tutorial to using git

Git Introduction - Chris Markiewicz

  • More advanced git tutorial that covers how to contribute to open source projects

How to document your code

Numpy/Scipy Style Guide

  • My recommended style for documenting scientific code for both Matlab and Python.

Best practices for file naming

  • A couple of helpful tips in naming file. Most are fairly obvious but easy to forget.

Open science

Toward standard practices for sharing computer code and programs in neuroscience

  • Recommendations on what to share for open science.

How I learned to stop worrying and love the coming archivability crisis in scientific software - C. Titus Brown

  • Critical thinking about the limits of our ability to reproduce results years later.

Kitzes, J., Turek, D., & Deniz, F. (Eds.). (2017). The Practice of Reproducible Research: Case Studies and Lessons from the Data-Intensive Sciences. Oakland, CA: University of California Press.

  • Case studies of reproducible workflows used for science research

An onboarding guide to research in my lab - trying to articulate clear standards for new projects - Michael C. Frank

  • Open-science checklist for projects

Poldrack, R.A., Baker, C.I., Durnez, J., Gorgolewski, K.J., Matthews, P.M., Munafò, M.R., Nichols, T.E., Poline, J.-B., Vul, E., and Yarkoni, T. (2017). Scanning the horizon: towards transparent and reproducible neuroimaging research. Nature Reviews Neuroscience 18, 115–126.

  • Targeted towards neuroimaging, but gives applicable advice for all of neuroscience.

Munafò, M.R., Nosek, B.A., Bishop, D.V.M., Button, K.S., Chambers, C.D., Percie du Sert, N., Simonsohn, U., Wagenmakers, E.-J., Ware, J.J., and Ioannidis, J.P.A. (2017). A manifesto for reproducible science. Nature Human Behaviour 1, 21.

  • Aa policy discussion about creating incentives for reproducible science

Millman, K.J., and Pérez, F. (2014). Developing open-source scientific practice. Implementing Reproducible Research 149.

  • The introduction makes a strong case for reproducible research. Mostly focused on Python tools.

Examples of well-written code

ELFI - Engine for Likelihood-Free Inference

Requirements

About

A presentation on best coding/data management practices based on my own experiences of scientific computing and data analysis and heavily borrowing from the recommendations of many others. View presentation at: https://edeno.github.io/Better-Science-Code

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CSS 41.2%
  • JavaScript 38.3%
  • HTML 15.9%
  • MATLAB 2.7%
  • Python 1.8%
  • Shell 0.1%