Skip to content

Commit

Permalink
Add organizing your project
Browse files Browse the repository at this point in the history
  • Loading branch information
drnelson6 authored Feb 8, 2024
1 parent fab7055 commit e780723
Showing 1 changed file with 49 additions and 0 deletions.
49 changes: 49 additions & 0 deletions content/lessons/repro_research.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,60 @@
title = 'Reproducible Research'
date = 2024-01-17T16:03:06-05:00

+++
## Motivation and Rationale

If you are going to take the time to build computational tools for humanistic research, you want others to be able to reproduce what you did. You want others to be able to verify your results, but also to use the tools you built to further their own projects.

There are several factors that contribute to producing reproducible research. They include:

- Well-organized projects that others can understand
- Using a version control system to facilitate collaboration on the project
- Recording your environment so others can run your code on their machine

## Organizing your project

Your project will involve a number of components. This may include raw data, processed data, documentation, source code, and code for dependencies. You may be working as part of a team, or you may be writing code that others will use in the future. In either case, your project should be organized so that someone unfamiliar with the project can quickly find the information they need, whether these are datasets or functions in your code. In order for your research to be reproducible and make sense to others, you should organize your project in a consistent, predictable way.

[This lesson](https://coderefinery.github.io/reproducible-research/organizing-projects/) from Code Refinery has some recommendations about you might choose to organize your project. The important points for humanist researhcers are the following:

- Each project should have its own folder
- The structure of your project should be consistent. Another researcher should be able to understand your file structure without you explaining it to them.
- Your project should have a README file that explains how to run the project on a different machine.
- Different parts of the project should be in different files and/or directories.

Your project organization might look something like this:

```
impressive-project/
├── README.md
├── data/
| ├── README.md
| ├── metadata.csv
| └── texts/
| ├── book_a.txt
| ├── book_b.txt
| └── ...
├── data-processing/
├── plots/
├── tests/
├── doc/
│ ├── index.rst
│ └── ...
├── LICENSE
├── requirements.txt
├── package.json
└── package-lock.json
```

By using a clear organizational structure like this one, someone unfamiliar with your project will quickly be able to understand what your project is doing and how they might go about reproducing your work or building upon it for their own purposes.

## Workflow

To get the results from your project, you will run multiple steps.

- include graphic or visualization
- discuss using python script to run workflow from project



Expand Down

0 comments on commit e780723

Please sign in to comment.