Skip to content

About

A repo for developing the ReproNim inventory of training resources.

Resources

Stars

6 stars

Watchers

7 watching

Forks

Latest commit

 

History

180 Commits

Folders and files

Repository files navigation

ReproInventory

A repo for developing the ReproNim inventory of training resources.

Background

ReproNim has developed a lot of training resources. The INCF-ReproNim Fellows have developed a lot of training resources including a Training Tool-kit. The community (neuroimaging and beyond) have developed a lot of training resources. When a user is faced with the desire to 'teach' a topic, how do they navigate all this content to find (or adapt, as needed) the right resources to start from?

We seek to create a ReproNim Inventory of Training Resources to help find what's out there so that users can more efficiently identify, reuse and adapt existing resources instead of always starting from scratch.

Similar Inventories Efforts

We know of a number of existing resources that have attempted to do parts of this. These include (but are not limited to):

Other specific Resources we should make sure are included

Want other specific resources included, add them here (or file an issue)

What do we need to do?

  • Review existing inventories

  • Expand content

    • For each resource, what do we want to know about it?
      • Identify the training resource 'schema' that we want to use
  • Adopt a front end (how the content is displayed) and associated back end to store the information

    • What do we really want to see?
      • Search: by topic tag (i.e. git), by format (i.e. hands-on tutorial), by level (i.e. first-timers), by duration (i.e. 3 hour), etc.
    • Do any of the existing platforms already do this?
      • Which comes closest?

Our Training Resource Description Model

The data model is defined as a LinkML schema in model/reproinventory_schema.yaml. A human-readable field reference is in model/schema.md.

The inventory itself lives in model/reproinventory_data.yaml, one entry per training resource. Every change is validated against the schema in CI.

Working with the data and schema

pip install linkml pyyaml requests

# validate the data against the schema
linkml-validate -s model/reproinventory_schema.yaml -C ReproInventoryEntry model/reproinventory_data.yaml

# after editing the data: regenerate the JSON used by the website
python model/convert_yaml_to_json.py

# after editing the schema: regenerate TypeScript types and model/schema.md
python model/generate_from_schema.py

# run the tests
python -m unittest discover -s tests

The first version of the model, from the OHBM 2025 BrainHack, is kept in archive/.

Contributions from the website

The Add and Edit buttons on the website open a pre-filled GitHub issue. The Create PR from Issue workflow turns it into a pull request, which a maintainer reviews before merging.

Empty descriptive fields (level, platform, software, modality, ...) can be suggested by an AI model, using the resource's web page. Suggestions never overwrite what the contributor entered, curator fields (tag team, source, notes, review) are never filled automatically, and the pull request lists every suggested value so the reviewer can check it. Configure it under Settings > Secrets and variables > Actions:

Name Type Example
AI_API_KEY secret API key (OpenAI, OpenRouter or another OpenAI-compatible provider)
AI_API_URL variable https://openrouter.ai/api/v1 (default: OpenAI)
AI_MODEL variable openai/gpt-4o-mini
AI_MAX_TOKENS variable 1000 (default)

Without AI_API_KEY the workflow still works and the pull request says that no suggestions were made. To reprocess an issue, run the workflow manually from the Actions tab and enter the issue number; the existing pull request is updated.

Project development (OHBM Hackathon)

OHBM 2025 - project-ohbm-hackathon here

Example Queries

Example Queries

  • I would like to find a 1 hour lecture to introduce git/github to novice first year graduate students in my Introduction to Computational Neuroscience course

  • I would like to find 1.5 hr multishell diffusion (dMRI) course video (in lecture style)

  • I would like to know whether the course depends on some installation requirements/ pre-requesites (other than skill level)

  • I would like to find a course on python that preps my undergraduate students for my neuroimaging with python class

  • I would like to find a 1-day workshop on "Introduction to Reproducible Neuroimaging" to provide to my lab of 20 members, who range from RA (data collection, data analysis) to clinical investigators.

  • Can I find a hands-on tutorial for BIDS conversion of my DICOM data

By Skill Level or Prerequisites

  • “What beginner-level tutorials are available for fMRI analysis?”
  • “Are there any advanced courses that require experience with FreeSurfer?”

By Software or Tool

  • “Show me all courses that use Python and AFNI.”
  • “Are there tutorials that involve SPM and are hands-on?”

By Imaging Modality

  • “What training materials cover resting-state fMRI?”
  • “Any diffusion MRI (DWI) tutorials using open datasets?”

By Format or Delivery

  • “What video-based tutorials are self-paced?”
  • “Are there instructor-led courses longer than 1 week?”

By Research Application

  • “Do you have any training focused on pediatric neuroimaging?”
  • “What resources are relevant for clinical research?”

By Language or Accessibility

  • “Are there any Spanish-language courses on structural MRI?”
  • “Which tutorials include assessments or quizzes?”
Example Use Stories

Example Use Stories

  1. New PhD Student

“I’m just starting in a neuroimaging lab and I’ve never used FreeSurfer. I want a beginner-friendly, step-by-step guide in English, ideally with video or interactive examples. It should be focused on structural MRI.”

Query:

  • Level = Beginner
  • Software = FreeSurfer
  • Format = video OR tutorial
  • Modality = Structural
  • Language = English
  1. Clinical Neuroscientist Switching to Python

“I’ve worked in clinical MRI research using SPM and MATLAB. I want to transition to Python and need resources on functional MRI analysis using open datasets.”

Query:

  • Software = SPM OR Python
  • Modality = Functional
  • Open dataset = Yes
  • Format = Hands-on / tutorial
  • Language = English
  1. Instructor Designing a Curriculum

“I’m building a neuroimaging methods course and want to include diverse materials—lectures, blogs, tutorials—across beginner to advanced levels. I want content I can reuse, so open datasets are a plus.”

Query: Level = Beginner to Advanced Content format = Any Open dataset = Yes Delivery = Instructor

  1. International Learner

“I’m a French-speaking student interested in learning about fMRI preprocessing using FSL.”

Query:

  • Language = French
  • Software = FSL
  • Modality = Functional
Developer Documentation

Developer Documentation

Frontend

Example figure from the frontend (on 'dummy' data): image

Build dependencies

Local development

  • Get the project source code

    git clone https://github.com/ReproNim/ReproInventory.git
  • Install dependencies

cd frontend
npm install
  • Now run the app by running
npm run dev

About

A repo for developing the ReproNim inventory of training resources.

Resources

Stars

6 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages