Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions .github/workflows/preview.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
on:
workflow_dispatch:
push:
branches: [v1/add-research-cycle]

name: Research Cycle Preview Branch

jobs:
build-deploy:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Check out repository
uses: actions/checkout@v4

- name: Install R
uses: r-lib/actions/setup-r@v2
with:
r-version: renv

- name: Install R Dependencies
uses: r-lib/actions/setup-renv@v2
with:
cache-version: 1

- name: Set up Quarto
uses: quarto-dev/quarto-actions/setup@v2

- name: Restore Quarto _freeze/ cache
uses: actions/cache@v3
id: quarto-cache
with:
path: _freeze
key: ${{ runner.os }}-quarto-freeze-${{ hashFiles('**/*.qmd') }}
restore-keys: |
${{ runner.os }}-quarto-freeze-

- name: Render and Publish
uses: quarto-dev/quarto-actions/publish@v2
with:
target: gh-pages
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
14 changes: 14 additions & 0 deletions _quarto.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,20 @@ website:
- self-training.qmd
- train-the-trainer.qmd
- open-research-cycle.qmd

- id: open-research-cycle
title: "Open Research Cycle"
style: "docked"
background: light
collapse-level: 2
contents:
- open-research-cycle.qmd
- section: "Phases"
contents:
- open_research_cycle/01_plan_and_design.qmd
- open_research_cycle/02_collect_and_manage.qmd
- open_research_cycle/03_analyze_and_collaborate.qmd
- open_research_cycle/04_preserve_and_share.qmd
#
# - id: gittutorials
# title: "Git Tutorials"
Expand Down
1 change: 1 addition & 0 deletions events/events/templates/_setup.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
#| warning: false

library(htmltools)
library(rlang)

# Get parameters from the parent document
event <- rmarkdown::metadata
Expand Down
215 changes: 214 additions & 1 deletion open-research-cycle.qmd
Original file line number Diff line number Diff line change
@@ -1,3 +1,216 @@
---
title: "Open Research Cycle"
---
page-navigation: false
toc: false
css: open_research_cycle/styles.css
format:
html:
page-layout: article
include-in-header:
- text: |
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.min.css">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
---

The Open Research Cycle is based on the [Open Research Cycle by Ihle (2025)](https://doi.org/10.5281/zenodo.15630230), which in turn is based on the [research data lifecycle model by Michener (2015)](https://doi.org/10.1371/journal.pcbi.1004525). The checklist has been adapted and extended by the LMU Open Science Center to include additional open research practices beyond data management. In addition to the four main phases, we have added checkpoints for group discussions and reflections after each phase to ensure team alignment and address any challenges in adopting open practices.

**What you'll find in each phase:**

- **Curated tools and resources**: A selection of platforms and software to support open research practices, building on the [Open Science Toolbox](open-science-toolbox.pdf) by Lutz Heil
- **Self-paced learning materials**: Tutorials, lectures, and guides to deepen your understanding
- **LMU support services**: Local expertise and infrastructure available to researchers at LMU
- **Practical recommendations**: Actionable guidance for implementing open practices in your workflow

<!-- Centered Cycle Diagram -->
<div class="cycle-container">

```{r}
#| echo: false
#| results: "asis"
#| warning: false
cat(readLines("open_research_cycle/images/os-cycle.svg", warn = FALSE), sep = "\n")
```

*Figure: Open Research Cycle. Based on Ihle, M. (2025). Open research cycle. LMU Open Science Center. [https://doi.org/10.5281/zenodo.15630230](https://doi.org/10.5281/zenodo.15630230)*

</div>

<!-- Horizontal Phase Button Strip -->
<div class="phase-menu-horizontal">
<button type="button" class="phase-btn-h" data-bs-toggle="modal" data-bs-target="#modalPhase1">
<i class="bi bi-clipboard-data"></i>
<span>1. Plan & Design</span>
</button>

<button type="button" class="phase-btn-h" data-bs-toggle="modal" data-bs-target="#modalPhase2">
<i class="bi bi-hdd-network"></i>
<span>2. Collect & Manage</span>
</button>

<button type="button" class="phase-btn-h" data-bs-toggle="modal" data-bs-target="#modalPhase3">
<i class="bi bi-graph-up"></i>
<span>3. Analyze & Collaborate</span>
</button>

<button type="button" class="phase-btn-h" data-bs-toggle="modal" data-bs-target="#modalPhase4">
<i class="bi bi-share"></i>
<span>4. Preserve & Share</span>
</button>
</div>

<div style="text-align: center; margin-top: 4rem;">
<a href="training.html" style="color: #00883A; text-decoration: none; font-weight: bold; font-size: 1.1rem;">
<i class="bi bi-arrow-left"></i> Back to Training Overview
</a>
</div>

<!-- Modals for Pop-out Content -->
<!-- Wrapped in raw HTML block to prevent rendering issues -->

```{=html}
<!-- Phase 1 Modal -->
<div class="modal fade" id="modalPhase1" tabindex="-1" aria-labelledby="modalPhase1Label" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="modalPhase1Label">
<i class="bi bi-clipboard-data me-2"></i> 1. Plan & Design
</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<ul>
<li>Explore / reuse research outputs</li>
<li>Write / consult grant proposal, ethics proposal, and RDM plan</li>
<li>Simulate data and run power analysis</li>
<li>Use preregistration template</li>
</ul>
<hr>
<p><strong>Checkpoint:</strong> Study plan presentation</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<a href="open_research_cycle/01_plan_and_design.html" class="btn btn-primary">Go to Phase 1</a>
</div>
</div>
</div>
</div>

<!-- Phase 2 Modal -->
<div class="modal fade" id="modalPhase2" tabindex="-1" aria-labelledby="modalPhase2Label" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="modalPhase2Label">
<i class="bi bi-hdd-network me-2"></i> 2. Collect & Manage
</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<ul>
<li>Request consent forms</li>
<li>Collect data following standard protocols</li>
<li>Manage data FAIR-ly</li>
<li>Anonymise data</li>
</ul>
<hr>
<p><strong>Checkpoint:</strong> Data quality validation meeting</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<a href="open_research_cycle/02_collect_and_manage.html" class="btn btn-primary">Go to Phase 2</a>
</div>
</div>
</div>
</div>

<!-- Phase 3 Modal -->
<div class="modal fade" id="modalPhase3" tabindex="-1" aria-labelledby="modalPhase3Label" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="modalPhase3Label">
<i class="bi bi-graph-up me-2"></i> 3. Analyze & Collaborate
</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<ul>
<li>Analyse data reproducibly (R readable code, Git repo template, GitLab, Renv)</li>
<li>Write a README file</li>
<li>Create a data dictionary</li>
<li>Write a reproducible manuscript / presentation (Quarto)</li>
</ul>
<hr>
<p><strong>Checkpoint:</strong> Repo & code peer-review, Result presentation</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<a href="open_research_cycle/03_analyze_and_collaborate.html" class="btn btn-primary">Go to Phase 3</a>
</div>
</div>
</div>
</div>

<!-- Phase 4 Modal -->
<div class="modal fade" id="modalPhase4" tabindex="-1" aria-labelledby="modalPhase4Label" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered modal-lg">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="modalPhase4Label">
<i class="bi bi-share me-2"></i> 4. Preserve & Share
</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<p><strong>Prepare / publish:</strong></p>
<ul>
<li>Code repository</li>
<li>Data (real / synthetic), with metadata and Data Usage Agreement</li>
<li>Preregistration (lift embargo)</li>
<li>Preprint with CRediT</li>
</ul>
<p>with ORCID, DOI, License</p>
<hr>
<p><strong>Checkpoint:</strong> Manuscript submission with DOIs for preregistration, data, code, and material</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
<a href="open_research_cycle/04_preserve_and_share.html" class="btn btn-primary">Go to Phase 4</a>
</div>
</div>
</div>
</div>
```

<!-- <script>
document.addEventListener("DOMContentLoaded", function() {
// Function to trigger modal
function triggerModal(phaseId) {
var modalId = '#modalPhase' + phaseId.split('-')[1];
var modalEl = document.querySelector(modalId);
if (modalEl) {
var modal = new bootstrap.Modal(modalEl);
modal.show();
}
}

// Add click listeners to SVG groups
['phase-1', 'phase-2', 'phase-3', 'phase-4'].forEach(function(id) {
var el = document.getElementById(id);
if (el) {
el.addEventListener('click', function() {
triggerModal(id);
});
// Add keyboard accessibility
el.addEventListener('keypress', function(e) {
if (e.key === 'Enter' || e.key === ' ') {
e.preventDefault();
triggerModal(id);
}
});
}
});
});
</script> -->
Loading