Skip to content

Commit b3c0512

Browse files
committed
Update docs with contributing guide
1 parent 73090e4 commit b3c0512

21 files changed

+228
-141
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

+10-22
Original file line numberDiff line numberDiff line change
@@ -7,28 +7,16 @@ assignees: ''
77

88
---
99

10-
**Describe the bug**
11-
A clear and concise description of what the bug is.
10+
This form is only for bug reports. For questions, feature requests, or feedback use our [Github discussions](https://github.com/carissalow/rapids/discussions)
1211

13-
**To Reproduce**
14-
Steps to reproduce the behavior:
15-
1. Enable ... feature provider
16-
2. Setup ... sensor parameters
17-
3. Run RAPIDS
18-
4. etc ...
12+
Please make sure to:
1913

20-
**Expected behavior**
21-
A clear and concise description of what you expected to happen.
14+
* [ ] Debug and simplify the problem to create a minimal example. For example, reduce the problem to a single participant, sensor, and a few rows of data.
15+
* [ ] Provide a clear and succinct description of the problem (expected behavior vs actual behavior).
16+
* [ ] Attach your `config.yaml`, time segments file, and time zones file if appropriate.
17+
* [ ] Attach test data if possible, and any screenshots or extra resources that will help us debug the problem.
18+
* [ ] Share the commit you are running: `git rev-parse --short HEAD`
19+
* [ ] Share your OS version (e.g. Windows 10)
20+
* [ ] Share the device/sensor your are processing (e.g. phone accelerometer)
2221

23-
**Screenshots**
24-
If applicable, add screenshots to help explain your problem.
25-
26-
**Please complete the following information:**
27-
- OS: [e.g. MacOS]
28-
- RAPIDS current commit, paste the output of `git rev-parse --short HEAD`
29-
- A link to your `config.yaml`
30-
- Type of mobile data you are dealing with (Android/iOS)
31-
32-
33-
**Additional context**
34-
Add any other context about the problem here.
22+
<!-- You can erase any parts of this template not applicable to your Issue. -->

.github/ISSUE_TEMPLATE/feature_request.md

-20
This file was deleted.

docs/change-log.md

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
- Sleep summary and intraday features are more consistent.
55
- Add wake and bedtime features for sleep summary data.
66
- Fix bugs with sleep PRICE features.
7+
- Update home page
8+
- Add contributing guide
79
## v1.1.1
810
- Fix length of periodic segments on days with DLS
911
- Fix crash when scraping data for an app that does not exist

docs/contributing.md

+56
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# Contributing
2+
3+
Thank you for taking the time to contribute!
4+
5+
All changes, small or big, are welcome, and regardless of who you are, we are always happy to work together to make your contribution as strong as possible. We follow the [Covenant Code of Conduct](../code_of_conduct), so we ask you to uphold it. Be kind to everyone in the community, and please report unacceptable behavior to [email protected].
6+
7+
## Questions, Feature Requests, and Discussions
8+
9+
Post any questions, feature requests, or discussions in our [GitHub Discussions tab](https://github.com/carissalow/rapids/discussions).
10+
11+
## Bug Reports
12+
13+
Report any bugs in our [GithHub issue tracker](https://github.com/carissalow/rapids/issues) keeping in mind to:
14+
15+
- Debug and simplify the problem to create a minimal example. For example, reduce the problem to a single participant, sensor, and a few rows of data.
16+
- Provide a clear and succinct description of the problem (expected behavior vs. actual behavior).
17+
- Attach your `config.yaml`, time segments file, and time zones file if appropriate.
18+
- Attach test data if possible and any screenshots or extra resources that will help us debug the problem.
19+
- Share the commit you are running: `git rev-parse --short HEAD`
20+
- Share your OS version (e.g., Windows 10)
21+
- Share the device/sensor you are processing (e.g., phone accelerometer)
22+
23+
## Documentation Contributions
24+
25+
If you want to fix a typo or any other minor changes, you can edit the file online by clicking on the pencil icon at the top right of any page and opening a pull request using [Github's website](https://docs.github.com/en/github/managing-files-in-a-repository/editing-files-in-your-repository)
26+
27+
If your changes are more complex, clone RAPIDS' repository, setup the dev environment for our documentation with this [tutorial](../developers/documentation), and submit any changes on a new *feature branch* following our [git flow](../developers/git-flow).
28+
29+
## Code Contributions
30+
31+
!!! hint "Hints for any code changes"
32+
- To submit any new code, use a new *feature branch* following our [git flow](../developers/git-flow).
33+
- If you neeed a new Python or R package in RAPIDS' virtual environments, follow this [tutorial](../developers/virtual-environments/)
34+
- If you need to change the `config.yaml` you will need to update its validation schema with this [tutorial](../developers/validation-schema-config/)
35+
36+
### New Data Streams
37+
38+
*New data containers.* If you want to process data from a device RAPIDS supports ([see this table](../datastreams/data-streams-introduction/)) but it's stored in a database engine or file type we don't support yet, [implement a new data stream container and format](../datastreams/add-new-data-streams/). You can copy and paste the `format.yaml` of one of the other streams of the device you are targeting.
39+
40+
*New sensing apps.* If you want to add support for new smartphone sensing apps like Beiwe, [implement a new data stream container and format](../datastreams/add-new-data-streams/).
41+
42+
*New wearable devices.* If you want to add support for a new wearable, open a [Github discussion](https://github.com/carissalow/rapids/discussions), so we can add the necessary initial configuration files and code.
43+
44+
### New Behavioral Features
45+
46+
If you want to add new [behavioral features](../features/feature-introduction/) for mobile sensors RAPIDS already supports, follow this [tutorial](../features/add-new-features/). A sensor is supported if it has a configuration section in `config.yaml`.
47+
48+
If you want to add new [behavioral features](../features/feature-introduction/) for mobile sensors RAPIDS does not support yet, open a [Github discussion](https://github.com/carissalow/rapids/discussions), so we can add the necessary initial configuration files and code.
49+
50+
### New Tests
51+
52+
If you want to add new tests for existent behavioral features, follow this [tutorial](../developers/testing).
53+
54+
### New Visualizations
55+
56+
Open a [Github discussion](https://github.com/carissalow/rapids/discussions), so we can add the necessary initial configuration files and code.

docs/developers/remote-support.md

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,13 @@
33
We use the Live Share extension of Visual Studio Code to debug bugs when sharing data or database credentials is not possible.
44

55
1. Install [Visual Studio Code](https://code.visualstudio.com/)
6-
2. Open you RAPIDS root folder in a new VSCode window
7-
3. Open a new Terminal `Terminal > New terminal`
6+
2. Open your RAPIDS root folder in a new VSCode window
7+
3. Open a new terminal in Visual Studio Code `Terminal > New terminal`
88
4. Install the [Live Share extension pack](https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare-pack)
99
5. Press ++ctrl+p++ or ++cmd+p++ and run this command:
1010

1111
```bash
1212
>live share: start collaboration session
1313
```
14+
1415
6. Follow the instructions and share the session link you receive

docs/features/add-new-features.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ In this step, you need to add your provider configuration section under the rele
9090
|`[COMPUTE]`| Flag to activate/deactivate your provider
9191
|`[FEATURES]`| List of features your provider supports. Your provider code should only return the features on this list
9292
|`[MY_PARAMTER]`| An arbitrary parameter that our example provider `VEGA` needs. This can be a boolean, integer, float, string, or an array of any of such types.
93-
|`[SRC_SCRIPT]`| The relative path from RAPIDS' root folder to an script that computes the features for this provider. It can be implemented in R or Python.
93+
|`[SRC_SCRIPT]`| The relative path from RAPIDS' root folder to a script that computes the features for this provider. It can be implemented in R or Python.
9494

9595
### Create a feature provider script
9696

@@ -121,8 +121,8 @@ Every feature script (`main.[py|R]`) needs a `[providername]_features` function
121121
|---|---|
122122
|`sensor_data_files`| Path to the CSV file containing the data of a single participant. This data has been cleaned and preprocessed. Your function will be automatically called for each participant in your study (in the `[PIDS]` array in `config.yaml`)
123123
|`time_segment`| The label of the time segment that should be processed.
124-
|`provider`| The parameters you configured for your provider in `config.yaml` will be available in this variable as a dictionary in Python or a list in R. In our example this dictionary contains `{MY_PARAMETER:"a_string"}`
125-
|`filter_data_by_segment`| Python only. A function that you will use to filter your data. In R this function is already available in the environment.
124+
|`provider`| The parameters you configured for your provider in `config.yaml` will be available in this variable as a dictionary in Python or a list in R. In our example, this dictionary contains `{MY_PARAMETER:"a_string"}`
125+
|`filter_data_by_segment`| Python only. A function that you will use to filter your data. In R, this function is already available in the environment.
126126
|`*args`| Python only. Not used for now
127127
|`**kwargs`| Python only. Not used for now
128128

@@ -180,4 +180,4 @@ The next step is to implement the code that computes your behavioral features in
180180

181181
## New Features for Non-Existing Sensors
182182

183-
If you want to add features for a device or a sensor that we do not support at the moment (those that do not appear in the `"Existing Sensors"` list above), [contact us](../../team) or request it on [Slack](http://awareframework.com:3000/) and we can add the necessary code so you can follow the instructions above.
183+
If you want to add features for a device or a sensor that we do not support at the moment (those that do not appear in the `"Existing Sensors"` list above), [open a new discussion](https://github.com/carissalow/rapids/discussions) in Github and we can add the necessary code so you can follow the instructions above.

docs/img/logos/cmu.png

20.4 KB
Loading

docs/img/logos/dbdp.png

5.88 KB
Loading

docs/img/logos/helsinki.jpg

4.41 KB
Loading

docs/img/logos/manchester.png

78.8 KB
Loading

docs/img/logos/monash.jpg

32.6 KB
Loading

docs/img/logos/oulu.png

12.2 KB
Loading

docs/img/logos/penn.png

17.2 KB
Loading

docs/img/logos/pitt.png

22.6 KB
Loading

docs/img/logos/uw.jpg

4.98 KB
Loading

docs/img/logos/virginia.jpg

16.7 KB
Loading

docs/index.md

+51-8
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,24 @@
22

33
Reproducible Analysis Pipeline for Data Streams (RAPIDS) allows you to process smartphone and wearable data to [extract](features/feature-introduction.md) and [create](features/add-new-features.md) **behavioral features** (a.k.a. digital biomarkers), [visualize](visualizations/data-quality-visualizations.md) mobile sensor data, and [structure](workflow-examples/analysis.md) your analysis into reproducible workflows.
44

5-
RAPIDS is open source, documented, modular, tested, and reproducible. At the moment, we support [data streams](datastreams/data-streams-introduction) logged by smartphones, Fitbit wearables, and, in collaboration with the [DBDP](https://dbdp.org/), Empatica wearables (but you can [add your own](datastreams/add-new-data-streams) too).
5+
RAPIDS is open source, documented, multi-platform, modular, tested, and reproducible. At the moment, we support [data streams](datastreams/data-streams-introduction) logged by smartphones, Fitbit wearables, and Empatica wearables in collaboration with the [DBDP](https://dbdp.org/).
66

7-
**If you want to know more head over to [Overview](setup/overview/)**
7+
!!! tip "Where do I start?"
88

9-
!!! tip
10-
:material-slack: Questions or feedback can be posted on the \#rapids channel in AWARE Framework\'s [slack](http://awareframework.com:3000/).
9+
:material-power-standby: New to RAPIDS? Check our [Overview + FAQ](setup/overview/) and [minimal example](workflow-examples/minimal)
1110

12-
:material-github: Bugs and feature requests should be posted on [Github](https://github.com/carissalow/rapids/issues).
11+
:material-play-speed: [Install](setup/installation), [configure](setup/configuration), and [execute](setup/execution) RAPIDS to [extract](features/feature-introduction.md) and [plot](visualizations/data-quality-visualizations.md) behavioral features
1312

14-
:fontawesome-solid-tasks: Join our discussions on our algorithms and assumptions for feature [processing](https://github.com/carissalow/rapids/discussions).
13+
:material-github: Bugs should be reported on [Github issues](https://github.com/carissalow/rapids/issues)
14+
15+
:fontawesome-solid-tasks: Questions, discussions, feature requests, and feedback can be posted on our [Github discussions](https://github.com/carissalow/rapids/discussions)
16+
17+
:material-twitter: Keep up to date with our [Twitter feed](https://twitter.com/RAPIDS_Science) or [Slack channel](http://awareframework.com:3000/)
18+
19+
:material-plus-network: Do you want to modify or add new functionality to RAPIDS? Check our [contributing guide](./contributing)
1520

1621
:fontawesome-solid-sync-alt: Are you upgrading from RAPIDS `0.4.x` or older? Follow this [guide](migrating-from-old-versions)
1722

18-
:fontawesome-solid-play: Ready? Go to [Overview](setup/overview/).
1923

2024
## What are the benefits of using RAPIDS?
2125

@@ -24,9 +28,48 @@ RAPIDS is open source, documented, modular, tested, and reproducible. At the mom
2428
5. **Parallel execution**. Thanks to Snakemake, your analysis can be executed over multiple cores without changing your code.
2529
6. **Code-free features**. Extract any of the behavioral features offered by RAPIDS without writing any code.
2630
7. **Extensible code**. You can easily add your own data streams or behavioral features in R or Python, share them with the community, and keep authorship and citations.
27-
8. **Timezone aware**. Your data is adjusted to one or more time zones per participant.
31+
8. **Time zone aware**. Your data is adjusted to one or more time zones per participant.
2832
9. **Flexible time segments**. You can extract behavioral features on time windows of any length (e.g., 5 minutes, 3 hours, 2 days), on every day or particular days (e.g., weekends, Mondays, the 1st of each month, etc.), or around events of interest (e.g., surveys or clinical relapses).
2933
10. **Tested code**. We are continually adding tests to make sure our behavioral features are correct.
3034
11. **Reproducible code**. If you structure your analysis within RAPIDS, you can be sure your code will run in other computers as intended, thanks to R and Python virtual environments. You can share your analysis code along with your publications without any overhead.
3135
12. **Private**. All your data is processed locally.
3236

37+
## Users and Contributors
38+
39+
??? quote "Community Contributors"
40+
Many thanks to our community contributions and the [whole team](../team):
41+
42+
- Agam Kumar (CMU)
43+
- Yasaman S. Sefidgar (University of Washington)
44+
- Joe Kim (Duke University)
45+
- Brinnae Bent (Duke University)
46+
- Stephen Price (CMU)
47+
- Neil Singh (University of Virginia)
48+
49+
Many thanks to the researchers that made [their work](../citation) open source:
50+
51+
- Panda et al. [paper](https://pubmed.ncbi.nlm.nih.gov/31657854/)
52+
- Stachl et al. [paper](https://www.pnas.org/content/117/30/17680)
53+
- Doryab et al. [paper](https://arxiv.org/abs/1812.10394)
54+
- Barnett et al. [paper](https://doi.org/10.1093/biostatistics/kxy059)
55+
- Canzian et al. [paper](https://doi.org/10.1145/2750858.2805845)
56+
57+
58+
??? quote "Publications using RAPIDS"
59+
- Predicting Symptoms of Depression and Anxiety Using Smartphone and Wearable Data [link](https://www.frontiersin.org/articles/10.3389/fpsyt.2021.625247/full)
60+
- Predicting Depression from Smartphone Behavioral Markers Using Machine Learning Methods, Hyper-parameter Optimization, and Feature Importance Analysis: An Exploratory Study [link](https://preprints.jmir.org/preprint/26540)
61+
- Digital Biomarkers of Symptom Burden Self-Reported by Perioperative Patients Undergoing Pancreatic Surgery: Prospective Longitudinal Study [link](https://cancer.jmir.org/2021/2/e27975/)
62+
- An Automated Machine Learning Pipeline for Monitoring and Forecasting Mobile Health Data [link](https://edas.info/showManuscript.php?m=1570708269&random=750318666&type=final&ext=pdf&title=PDF+file)
63+
64+
<div class="users">
65+
<div><img alt="carnegie mellon university" loading="lazy" src="./img/logos/cmu.png" /></div>
66+
<div><img alt="digital biomarker development pipeline" loading="lazy" src="./img/logos/dbdp.png" /></div>
67+
<div><img alt="university of helsinki" loading="lazy" src="./img/logos/helsinki.jpg" /></div>
68+
<div><img alt="university of manchester" loading="lazy" src="./img/logos/manchester.png" /></div>
69+
<div><img alt="monash university" loading="lazy" src="./img/logos/monash.jpg" /></div>
70+
<div><img alt="oulu university" loading="lazy" src="./img/logos/oulu.png" /></div>
71+
<div><img alt="university of pennsylvania" loading="lazy" src="./img/logos/penn.png" /></div>
72+
<div><img alt="university of pittsburgh" loading="lazy" src="./img/logos/pitt.png" /></div>
73+
<div><img alt="university of virginia" loading="lazy" src="./img/logos/virginia.jpg" /></div>
74+
<div><img alt="university of washington" loading="lazy" src="./img/logos/uw.jpg" /></div>
75+
</div>

0 commit comments

Comments
 (0)