A curated collection of tutorials, guides, and learning resources for students and researchers in the lab. It covers the practical computing skills used in day-to-day scientific work: the command line, version control, Python, image analysis, and data science.
Looking to run something rather than learn? Ready-to-use, single-purpose scripts live in lab-scripts. This repository holds the knowledge (tutorials, guides, curated resources); the other holds the runnable tools.
Entries are grouped by topic and tagged by level, so you can find material that matches your experience:
- Beginner — assumes no prior knowledge.
- Intermediate — assumes working familiarity with the topic.
- Advanced — in-depth or specialized material.
- All levels — useful regardless of experience.
Note
This collection is not exhaustive: omission does not imply exclusion, and inclusion is not an endorsement. Suggestions and additions are welcome through a pull request — see CONTRIBUTING.md. Header images were generated locally with open image-generation models.
- Fundamentals of Modern Development
- Python
- Image Analysis
- Data Science
- Data Visualization
- Machine Learning
- Deep Learning
- Local Workshops
AI for coding
- AIEnhancedWork — A curated collection of AI tools for coding and everyday work.
Command line
- Awesome CLI — A command-line tool for browsing Awesome lists.
- Awesome CLI Apps — A curated list of command-line applications.
- Awesome CLI Frameworks — Tools for building command-line interfaces in several languages.
- Awesome macOS CLI — A curated list of command-line software for macOS.
- Awesome Shell — A curated list of command-line frameworks, toolkits, and guides.
- Awesome Windows CLI — A curated list of command-line tools for Windows.
Virtualization and containers
- Awesome Compose — Sample Docker Compose configurations.
- Awesome Containers — A curated list of open-source container resources.
- Awesome Docker Compose Examples — Docker Compose examples for self-hosted open-source and proprietary projects.
- Awesome Kubernetes — A curated list of Kubernetes resources.
- Docker Tutorials and Labs — A collection of tutorials for using Docker with various tools.
Version control
- Awesome Git — A curated list of Git tools and resources.
- Awesome VCS Tools — A curated list of version-control tools, clients, and diff utilities.
- Git/GitHub Cheat Sheet — A reference of Git and GitHub features.
- Git and GitHub Learning Resources — Official learning resources from GitHub.
- AI Assistance for Coding: Benefits, Challenges, and Best Practices — Beginner
- Basic Understanding of the Command Line — Beginner
- Using LLMs in your Integrated Development Environment (IDE) — Beginner
- Introduction to Virtualization — Intermediate
- Introduction to Version Control Systems (VCS) — Intermediate
- Introduction to Continuous Integration / Continuous Deployment (CI/CD) — Intermediate
| Resource | Level | Format | Topics |
|---|---|---|---|
| Learn the Command Line (Codecademy) | Beginner | Lessons + online interpreter | Navigation, file management, redirection, environment configuration |
| Git Tutorial (w3schools) | Intermediate | Lessons + online interpreter | Git fundamentals |
| Learn Git & GitHub (Codecademy) | Intermediate | Lessons + online interpreter | Git and GitHub fundamentals |
| Title | Author | Level | Format | Topics |
|---|---|---|---|---|
| Cheat Sheet: Unix/Mac Commands | Laurence Bradford | Beginner | Cheat sheet | macOS command line |
| Command Line Crash Course | Mozilla | Beginner | Tutorial with examples | Command-line fundamentals |
| Command Line for Beginners | freeCodeCamp | Beginner | Tutorial with examples | Command-line fundamentals |
| Learning the Shell | LinuxCommand | Beginner | Tutorial with examples | Shell fundamentals |
| The Art of Command Line | Joshua Levy | Beginner | Tutorial with examples | Command-line fundamentals |
| The Front-End Developer's Guide to the Terminal | Josh Comeau | Beginner | Tutorial with examples | Terminal usage |
| The Linux Command Line for Beginners | Ubuntu | Beginner | Tutorial with examples | Linux command line |
| Windows Commands | Microsoft | Beginner | Documentation | Windows command line |
| A Docker Tutorial for Beginners | Prakhar Srivastav | Intermediate | Tutorial with examples | Docker fundamentals |
| A Step-by-Step Docker Tutorial for Beginners | Sana Afreen | Intermediate | Tutorial with examples | Docker fundamentals |
| Docker Tutorial for Beginners | Programming with Mosh | Intermediate | Video | Docker fundamentals |
| Learn Docker in 2 Hours | KodeKloud | Intermediate | Video | Docker fundamentals |
| Docker Tutorial | GeeksforGeeks | Intermediate | Tutorial with examples | Docker fundamentals |
| Title | Authors | Level | Topics |
|---|---|---|---|
| The Command Line Crash Course | Zed A. Shaw | Beginner | Command-line fundamentals |
| The Linux Command Line | William Shotts | Beginner | Linux command line, from basics to shell scripting |
| The Docker Handbook — Learn Docker for Beginners | Farhan Hasin Chowdhury | Intermediate | Docker fundamentals |
- Awesome Python — An opinionated list of Python frameworks, libraries, software, and resources.
- Awesome Python Applications — Open-source applications written in Python.
- Awesome Python Books — A directory of Python books.
- Awesome Python Resources — A curated list of Python learning resources.
- Fucking Awesome Python — A fork of awesome-python with additional resources.
- A Method to Learn Python from Scratch — Beginner
- Setting up a Python Virtual Environment — Beginner
- Getting Started with Jupyter Notebook for Python — Intermediate
Reference: Official Python Documentation.
| Resource | Level | Format | Topics |
|---|---|---|---|
| Codédex | Beginner | Interactive lessons + online interpreter | Fundamentals and more |
| LearnPython | Beginner | Lessons + online interpreter | Fundamentals and more |
| PyFlo | Beginner | Lessons + quizzes | Fundamentals and more |
| Kaggle: Intro to Programming | Beginner | Lessons + online interpreter | Programming fundamentals |
| Kaggle: Python | Beginner | Lessons + online interpreter | Builds on Intro to Programming |
| Kaggle: Pandas | Intermediate | Lessons + online interpreter | Data manipulation |
| HackInScience | All levels | Online interpreter | Wide range of topics |
| w3schools | All levels | Lessons + online interpreter | Wide range of topics |
| Title | Author | Level | Format | Topics |
|---|---|---|---|---|
| Dive Into Python 3 | Mark Pilgrim | Beginner | Tutorial with examples | Fundamentals and more |
| Playground and Cheatsheet for Learning Python | Oleksii Trekhleb | Beginner | Tutorial with examples | Fundamentals and more |
| Python Programming Beginner Tutorials | Corey Schafer | Beginner | Video series | Fundamentals and more |
| Python Tutorials (PythonSpot) | PythonSpot | Beginner | Tutorial with examples | Fundamentals and more |
| Python Tutorials (Tutorialspoint) | Tutorialspoint | Beginner | Tutorial with examples | Fundamentals and more |
| Python Tutorials (Studytonight) | Studytonight | Beginner | Tutorial with examples | Fundamentals and more |
| Python Tutorials (ThePythonGuru) | ThePythonGuru | Beginner | Tutorial with examples | Fundamentals and more |
| Python for You and Me | Kushal Das | Beginner | Tutorial with examples | Fundamentals and more |
| Real Python | Real Python | All levels | Articles and videos | Wide range of topics |
| Title | Authors | Level | Topics |
|---|---|---|---|
| A Byte of Python | Swaroop C. H. | Beginner | Python fundamentals and problem solving |
| Automate the Boring Stuff with Python | Al Sweigart | Beginner | Python basics, CSV, PDF, Excel, web scraping, images, email, debugging |
| How to Code in Python | Lisa Tagliaferri, Pankaj | Beginner | Python basics, debugging, logging, data types |
| Learning Python | Mark Lutz | Beginner | Python basics through advanced features |
| Problem Solving with Algorithms and Data Structures using Python | Brad Miller, David Ranum | Beginner | Data structures, algorithms, Python fundamentals |
| Python for You and Me | Kushal Das | Beginner | Python fundamentals, editors, PEP 8, testing, command-line interfaces |
| The Hitchhiker's Guide to Python | Kenneth Reitz, Trey Hunner | Beginner | Environments, project structure, coding style, packaging, documentation |
| Intermediate Python | Muhammad Yasoob Ullah Khalid | Intermediate | Debugging, exceptions, functional programming, mutability |
| Python Data Science Handbook | Jake VanderPlas | Intermediate | NumPy, Pandas, Matplotlib, scikit-learn |
| Architecture Patterns with Python | Harry J. W. Percival, Bob Gregory | Advanced | Test-driven development, domain-driven design, microservices |
- Awesome Biological Image Analysis — A curated list of software, tools, pipelines, and plugins for biological image analysis.
- Awesome Image Quality Assessment (IQA) — A collection of image-quality-assessment papers.
- Awesome Image Distortion Correction — Resources on rolling-shutter effects and radial distortions.
- Awesome Neuron Segmentation in EM Images — Resources for 3D segmentation of neurites in electron-microscopy images.
- Bioimage.io — The BioImage Model Zoo, a model repository for bioimage analysis.
- Bio-image Analysis Notebooks — Jupyter notebooks for bioimage analysis and GPU-accelerated image processing.
- Segmentation Models — Semantic segmentation models with 500+ pretrained convolutional and transformer backbones.
- napari — A fast, interactive viewer for multi-dimensional images in Python.
- scikit-image — Image processing in Python.
- Automate Cellpose GUI Opening — Beginner
- Intersection over Union (IoU): Evaluating Segmentation Performance — Beginner
- Mastering Cellpose: From Installation to Advanced Features — Beginner
Note
Cellpose-Gradio, a graphical interface for Cellpose, is available on GitHub: Cellpose_Gradio. Its installation and launch are automated with the scripts below.
Tip
Additional single-purpose lab scripts (image and data conversion, mesh generation, neuro-visualization, and more) live in the companion lab-scripts repository.
| Title | Author | Level | Format | Topics |
|---|---|---|---|---|
| Batch Processing | haesleinhuepf | Beginner | Tutorial with examples | Processing multiple images |
| Cell Classification | haesleinhuepf | Beginner | Tutorial with examples | Feature extraction and machine learning for object classification |
| Colocalization | haesleinhuepf | Beginner | Tutorial with examples | Counting cells by signal across multiple channels |
| Deep-Learning-Based Image Segmentation | haesleinhuepf | Beginner | Tutorial with examples | Deep-learning algorithms for image segmentation |
| Feature Extraction | haesleinhuepf | Beginner | Tutorial with examples | Quantitative measurements from image data |
| Image Segmentation | haesleinhuepf | Beginner | Tutorial with examples | Subdividing an image into regions |
| Machine Learning for Image Segmentation | haesleinhuepf | Beginner | Tutorial with examples | Pixel classification and probability maps |
| scikit-image: Image Processing | Emmanuelle Gouillart | Beginner | Tutorial with examples | scikit-image fundamentals |
| scikit-image Tutorials | scikit-image | Beginner | Tutorial with examples | A collection of scikit-image tutorials |
| Segmentation Post-Processing | haesleinhuepf | Beginner | Tutorial with examples | Post-processing segmentation results |
| Graphical User Interfaces | haesleinhuepf | Intermediate | Tutorial with examples | Building custom user interfaces |
| Title | Author | Level | Format | Topics |
|---|---|---|---|---|
| Cellpose 2.0: How to Train Your Own Cellular Segmentation Model | Carsen Stringer | Beginner | Video | Human-in-the-loop training of specialist models |
| Cellpose GPU Installation for QuPath and Fiji | Thierry Pécot | Beginner | Video | GPU-accelerated Cellpose in QuPath and Fiji |
| Feature Extraction | haesleinhuepf | Beginner | Video | Quantitative measurements from image data |
| Fiji for Quantification: Cell Segmentation | Melbourne Advanced Microscopy Facility | Beginner | Video | Cell segmentation in Fiji |
| Introduction to QuPath | Zbigniew Mikulski | Beginner | Video | Core concepts and tools in QuPath |
| Nuclei Segmentation with StarDist in QuPath | Thierry Pécot | Beginner | Video | Nuclei segmentation in multiplexed images |
- AI Expert Roadmap — A roadmap for becoming an artificial-intelligence specialist.
- Awesome Data Science — A data-science repository for learning and applying methods to real-world problems.
- Awesome Python Data Science — A curated list of data-science software in Python.
- Data Analysis — Code and notebooks for numerous data-science projects in Python and R.
- Data Science for Beginners — A Microsoft course: 10 weeks, 20 lessons.
- Data Science IPython Notebooks — Notebooks on deep learning, scikit-learn, big data, Matplotlib, pandas, NumPy, and SciPy.
- Python Data Science Handbook — The full text of the handbook in Jupyter notebooks.
- Python Data Science Tutorials — Common data-analysis and machine-learning tasks in Python.
| Resource | Level | Format | Topics |
|---|---|---|---|
| w3schools: Data Science | Beginner | Lessons + online interpreter | Fundamentals and more |
| Kaggle: Feature Engineering | Intermediate | Lessons + online interpreter | Mutual information, clustering, principal component analysis |
| Kaggle: Data Cleaning | Intermediate | Lessons + online interpreter | Missing values, scaling, normalization |
| Title | Author | Level | Format | Topics |
|---|---|---|---|---|
| Data Science Tutorial for Beginners | DATAI Team | Beginner | Notebook | Fundamentals and more |
| Data Science Full Course for Beginners | codebasics | Beginner | Video series | Basics to advanced topics |
| Learn Data Science from Scratch | DataFlair | All levels | Tutorial with examples | Basics to advanced topics |
| Title | Authors | Level | Topics |
|---|---|---|---|
| Foundations of Data Science | Avrim Blum, John Hopcroft, Ravindran Kannan | Beginner | Mathematical foundations of data science |
| Feature Engineering and Selection: A Practical Approach for Predictive Models | Max Kuhn, Kjell Johnson | Intermediate | Measuring performance, tuning, model optimization, exploratory visualization |
- Awesome Dataviz — A curated list of data-analysis and visualization tools.
- Awesome Data Science Viz — A curated list of data-visualization libraries and resources.
- Exploring Data with Python — Methods for data exploration and visualization in Python.
- Python Data Viz Workshop — A workshop on data visualization in Python, with notebooks and exercises.
- Awesome ggplot2 — A curated list of tutorials and packages for ggplot2, the plotting system for the R language.
- Matplotlib Tutorials — Matplotlib creates static, animated, and interactive 2D and 3D visualizations in Python. (Beginner)
- Plotly Tutorials — Plotly is an open-source graphing library for interactive plots in Python, R, and MATLAB. (Beginner)
- Seaborn Tutorials — Seaborn is a Matplotlib-based library for statistical graphics in Python. (Beginner)
- Visualization with Pandas — Plotting directly from pandas data structures. (Beginner)
- Applied ML — Papers and engineering blog posts on data science and machine learning in production.
- Awesome Machine Learning — A curated list of machine-learning frameworks, libraries, and software.
- Best-of Machine Learning with Python — A ranked, weekly-updated list of machine-learning libraries in Python.
- Machine Learning & Deep Learning Tutorials — Machine-learning and deep-learning tutorials, articles, and resources.
- Machine Learning for Beginners — A Microsoft course: 12 weeks, 26 lessons, 52 quizzes.
- Machine Learning from Scratch — Core machine-learning algorithms and neural networks implemented and explained from first principles.
- caret — A model-training and tuning framework for R.
- cuML — GPU-accelerated machine-learning algorithms for tabular data, without requiring CUDA programming.
- mlpack — A header-only C++ machine-learning library with bindings to other languages.
- scikit-learn — A Python machine-learning library built on SciPy.
| Resource | Level | Format | Topics |
|---|---|---|---|
| DataCamp: Machine Learning in R for Beginners | Beginner | Lessons + online interpreter | Introduction to machine learning in R |
| Kaggle: Introduction to Machine Learning | Beginner | Lessons + online interpreter | Fundamentals and more |
| Kaggle: Machine Learning Explainability | Beginner | Lessons + online interpreter | Interpreting model predictions |
| w3schools: Machine Learning | Beginner | Lessons + online interpreter | Fundamentals and more |
| Kaggle: Intermediate Machine Learning | Intermediate | Lessons + online interpreter | Missing values, categorical data, data leakage |
| Kaggle: Time Series | Intermediate | Lessons + online interpreter | Forecasting with machine learning |
| Title | Author | Level | Format | Topics |
|---|---|---|---|---|
| Machine Learning Crash Course | Beginner | Video + quizzes | Fundamentals and more | |
| Machine Learning Tutorial for Beginners | DATAI Team | Intermediate | Notebook | Fundamentals and more |
| Testing and Debugging in Machine Learning | Intermediate | Lessons + quizzes | Validating data, debugging, optimizing, and monitoring models |
| Title | Authors | Level | Topics |
|---|---|---|---|
| An Introduction to Machine Learning Interpretability | Patrick Hall, Navdeep Gill | Beginner | Explaining model predictions |
| Machine Learning for Humans | Vishal Maini, Samer Sabri | Beginner | Supervised learning, unsupervised learning, neural networks |
| Python Machine Learning Projects | Brian Boucheron, Lisa Tagliaferri | Intermediate | Hands-on machine-learning projects |
| Hands-On Machine Learning with R | Bradley Boehmke, Brandon Greenwell | All levels | Clustering, autoencoders, regularized models, random forests, gradient boosting |
| The Hundred-Page Machine Learning Book | Andriy Burkov | All levels | Fundamental algorithms, anatomy of a learning algorithm, neural networks |
| Understanding Machine Learning: From Theory to Algorithms | Shai Shalev-Shwartz, Shai Ben-David | All levels | Theoretical foundations, learning models, advanced theory |
- Awesome Deep Learning — A curated list of deep-learning tutorials, projects, and communities.
- Awesome — Most Cited Deep Learning Papers — The most-cited deep-learning papers.
- Awesome Deep Vision — A curated list of deep-learning resources for computer vision.
- Awesome Deep Learning Papers and Resources — Deep-learning and reinforcement-learning research papers and code.
- CVAT — An image and video annotation tool for machine learning.
- Deep Learning Drizzle — A large collection of lecture series on deep learning, reinforcement learning, computer vision, and NLP.
- Deep Learning Examples — Deep-learning example scripts organized by model, with reproducible training and deployment.
- Supervision — Reusable computer-vision utilities.
- Catalyst — A PyTorch framework for deep-learning research, focused on reproducibility, rapid experimentation, and code reuse.
- Keras — A multi-backend deep-learning framework supporting JAX, TensorFlow, and PyTorch, for computer vision, NLP, and audio.
- PyTorch — Tensors and dynamic neural networks in Python with GPU acceleration.
- TensorFlow — An open-source machine-learning framework.
- torchvision — Datasets, model architectures, and image transformations for computer vision.
| Resource | Level | Format | Topics |
|---|---|---|---|
| Kaggle: Intro to Deep Learning | Intermediate | Lessons + online interpreter | Building and training neural networks with TensorFlow and Keras |
| Kaggle: Computer Vision | Intermediate | Lessons + online interpreter | Convolutional neural networks for image data |
| Title | Author | Level | Format | Topics |
|---|---|---|---|---|
| Basics of PyTorch | DATAI Team | Intermediate | Notebook | Fundamentals and more |
| Coding TensorFlow | TensorFlow | Intermediate | Video series | Wide range of topics |
| Deep Learning Tutorial for Beginners | DATAI Team | Intermediate | Notebook | Fundamentals and more |
| Deep Learning Zero to Hero | TensorFlow | Intermediate | Video series | TensorFlow fundamentals |
| Roboflow Notebooks | Roboflow | Intermediate | Notebook | State-of-the-art computer-vision models |
| Title | Authors | Level | Topics |
|---|---|---|---|
| Dive into Deep Learning | Aston Zhang, Zachary C. Lipton, Mu Li, Alexander J. Smola | Intermediate | Deep learning with implementations in PyTorch, NumPy/MXNet, JAX, and TensorFlow |
More workshops to be added.