https://github.com/waynexucn/cookiecutter-scientific-research

A logical, reasonably standardized, but flexible project structure for doing and sharing scientific research.

https://github.com/waynexucn/cookiecutter-scientific-research

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    3 of 56 committers (5.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.2%) to scientific vocabulary

Keywords from Contributors

data-profilers pipeline-testing datacleaner mlops closember exploratory-data-analysis eda data-quality alignment flexible
Last synced: 7 months ago · JSON representation

Repository

A logical, reasonably standardized, but flexible project structure for doing and sharing scientific research.

Basic Info
  • Host: GitHub
  • Owner: WayneXuCN
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 720 KB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 8
Created 12 months ago · Last pushed 8 months ago
Metadata Files
Readme License

README.md

🧪 Cookiecutter Scientific Research

A standardized, flexible template for scientific research projects

Project OverviewFeaturesQuick StartProject StructureDevelopment GuideAcknowledgementsLicense

📋 Project Overview

Cookiecutter Scientific Research is a project template generator designed for scientific research projects, aimed at providing a standardized structure and tool configuration to help researchers focus on scientific discovery rather than project setup. Through predefined best practices, this template supports high-quality scientific computing and data analysis workflows, ensuring the reproducibility and reliability of the research process.

✨ Features

  • Standardized Project Structure - Conforms to best practices for modern scientific computing projects

  • Reproducible Experimental Environment - Built-in environment management and dependency locking mechanisms

  • Integrated Documentation System - Preconfigured MkDocs documentation for showcasing research results

  • Testing and Quality Control - Built-in testing frameworks and code quality tools

  • Modern Package Management - Simplifies dependency management using modern tools like uv/pip

🚀 Quick Start

Prerequisites

  • Python 3.9 or higher
  • uv or pipx (recommended for tool installation)

Installation

This project is available on PyPI. As a cross-project tool, we recommend using uv or pipx for installation:

```bash

Install using uv (recommended)

uv tool install cookiecutter-scientific-research

Or install using pipx

pipx install cookiecutter-scientific-research ```

Creating a New Project

After installation, simply run the following command and follow the prompts:

bash ccsr

Initializing the Project Environment

After creating the project, navigate to the project directory and initialize the environment:

```bash cd your-project-name

Use uv to manage dependencies (recommended)

uv lock uv sync ```

📂 Project Structure

The generated project follows the directory structure below, with each section having a clear responsibility:

├── LICENSE <- Project license ├── Makefile <- Makefile with common commands ├── README.md <- Project documentation ├── pyproject.toml <- Project configuration and dependency management │ ├── data <- Data directory │ ├── external <- Third-party data │ ├── interim <- Intermediate processed data │ ├── processed <- Final analysis datasets │ └── raw <- Original data (read-only) │ ├── {{ cookiecutter.module_name }} <- Project source code │ ├── __init__.py <- Package initialization file │ ├── config.py <- Configuration parameter management │ ├── dataset.py <- Data acquisition and loading │ ├── plots.py <- Data visualization functions │ │ │ ├── analyze <- Data analysis module │ │ └── analysis.py │ │ │ ├── modeling <- Model training and prediction │ │ ├── __init__.py │ │ ├── predict.py <- Model prediction │ │ └── train.py <- Model training │ │ │ ├── models <- Model definitions │ │ ├── __init__.py │ │ └── model.py <- Model architecture │ │ │ ├── process <- Data processing │ │ └── features.py <- Feature engineering │ │ │ └── utils <- Utility functions │ ├── __init__.py │ └── tools.py <- General utilities │ ├── notebooks <- Jupyter/Marimo notebooks │ (Naming convention: number-creator-description) │ ├── docs <- Project documentation (MkDocs) │ ├── references <- Reference materials and literature │ ├── reports <- Analysis reports and results │ ├── figures <- Generated charts │ └── logs <- Experiment logs │ └── tests <- Test directory

🔧 Development Guide

Package Management and Building

This project uses flit_core as the build backend, supporting modern Python package management. To build distribution packages:

```bash

Install build dependencies

uv lock

Install all optional dependencies

uv sync --all-extras

Or install specific dependency groups

uv sync -e dev # Development dependencies uv sync -e test # Testing dependencies uv sync -e docs # Documentation dependencies

Build distribution packages

uv build ```

The built wheel files and source distribution packages will be saved in the dist/ directory.

Project Customization

During the template generation process, you can customize various aspects of the project according to prompts:

  • Project name and module name
  • Author information
  • License type
  • Dependency management method
  • Test framework selection
  • And more

🙏 Acknowledgements

This project is modified from cookiecutter-data-science, special thanks to the DrivenData team for providing the excellent template and inspiration. The project has been customized for scientific research scenarios on the original basis, including tool chain optimization, workflow adjustments, and documentation structure optimization.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

Owner

  • Name: Wayne Xu
  • Login: WayneXuCN
  • Kind: user
  • Location: Beijing
  • Company: CASISD

GitHub Events

Total
  • Release event: 7
  • Push event: 11
  • Create event: 5
Last Year
  • Release event: 7
  • Push event: 11
  • Create event: 5

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 167
  • Total Committers: 56
  • Avg Commits per committer: 2.982
  • Development Distribution Score (DDS): 0.725
Past Year
  • Commits: 31
  • Committers: 10
  • Avg Commits per committer: 3.1
  • Development Distribution Score (DDS): 0.71
Top Committers
Name Email Commits
Peter Bull p****l@g****m 46
Isaac Slavitt i****t@g****m 31
Chris Kucharczyk c****s@d****g 10
Wenjie Xu w****n@o****m 9
Jay Qi 2****i 6
Colin Sullivan c****a@b****u 4
Harald Wartig h****g@g****m 3
Moritz E. Beber m****b@b****k 3
Robert Gibboni r****t@d****g 2
Jordan Bramble j****e@g****m 2
Gatlen Culp g****p@g****m 2
Dong Liu d****u@h****m 2
Cody Rioux c****x@n****m 2
Adam Goldfarb a****b@g****m 2
Matthew Hayes h****s@M****l 2
Jesse M. Holmes j****s@r****m 1
Drew T. Doering d****g@w****u 1
Paul Harrison p****2@g****m 1
Michael Bell M****l@a****m 1
Matt Fortier m****1@i****m 1
luke-soteris 3****s 1
maoding j****8@g****m 1
yaoxiao1999 1****9 1
Andrew Sanchez a****z 1
Arturo Moncada-Torres 3****s 1
Bernardo Amaral b****1@g****m 1
Christopher Geis 1****h 1
Daniel Lenz m****l@d****g 1
Ikuo Suyama 1****a 1
jonathanagustin 5****n 1
and 26 more...

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 54 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 5
  • Total maintainers: 1
pypi.org: cookiecutter-scientific-research

A logical, reasonably standardized but flexible project structure for doing and sharing scientific research.

  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 54 Last month
Rankings
Dependent packages count: 9.3%
Average: 30.8%
Dependent repos count: 52.3%
Maintainers (1)
Last synced: 7 months ago

Dependencies

.github/workflows/release.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • pypa/gh-action-pypi-publish v1.3.0 composite
.github/workflows/tests.yml actions
  • actions/cache v4 composite
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • conda-incubator/setup-miniconda v3 composite
dev-requirements.txt pypi
  • ansi2html * development
  • black * development
  • build * development
  • chardet * development
  • flake8 * development
  • flit_core * development
  • isort * development
  • mkdocs * development
  • mkdocs-gen-files * development
  • mkdocs-include-markdown-plugin * development
  • mkdocs-material * development
  • pexpect * development
  • pipenv * development
  • pytest * development
  • termynal * development
  • twine * development
  • uv * development
  • virtualenvwrapper * development
  • virtualenvwrapper-win * development
pyproject.toml pypi
  • click *
  • cookiecutter *
  • tomlkit *
{{ cookiecutter.repo_name }}/pyproject.toml pypi