Deployed ca2dfac to dev with MkDocs 1.1.2 and mike 0.5.5

gh-pages
github-actions 2021-03-29 20:12:04 +00:00
parent 7aad4f7c88
commit 8adb74517e
4 changed files with 35 additions and 27 deletions

View File

@ -1749,7 +1749,8 @@
<h1 id="behavioral-features-introduction">Behavioral Features Introduction<a class="headerlink" href="#behavioral-features-introduction" title="Permanent link">&para;</a></h1>
<p>Every device sensor has a corresponding config section in <code>config.yaml</code>, these sections follow a similar structure and we&rsquo;ll use <code>PHONE_ACCELEROMETER</code> as an example to explain this structure.</p>
<p>A behavioral feature is a metric computed from raw sensor data quantifying the behavior of a participant. For example, the time spent at home computed based on location data. These are also known as digital biomarkers. </p>
<p>RAPIDS&rsquo; <code>config.yaml</code> has a section for each supported device/sensor (e.g., <code>PHONE_ACCELEROMETER</code>, <code>FITBIT_STEPS</code>, <code>EMPATICA_HEARTRATE</code>). These sections follow a similar structure, and they can have one or more feature <code>PROVIDERS</code>, that compute one or more behavioral features. You will modify the parameters of these <code>PROVIDERS</code> to obtain features from different mobile sensors. We&rsquo;ll use <code>PHONE_ACCELEROMETER</code> as an example to explain this further.</p>
<div class="admonition hint">
<p class="admonition-title">Hint</p>
<ul>
@ -1818,7 +1819,7 @@
<p>It has to be a relative path from RAPIDS&rsquo; root folder and the script&rsquo;s parent folder should be named after the provider, e.g. <code>panda</code>.</p>
</li>
</ol>
<p>These are descriptions of each marker for accessibility:</p>
<p>These are the descriptions of each marker for accessibility:</p>
<ol>
<li>
<p><strong>Sensor section</strong></p>

File diff suppressed because one or more lines are too long

View File

@ -1861,11 +1861,13 @@
<td>A YAML file where you can define credential groups (user, password, host, etc.) if your data stream needs to connect to a database or Web API</td>
</tr>
<tr>
<td>Participant file</td>
<td>Participant file(s)</td>
<td>A YAML file that links one or more smartphone or wearable devices that a single participant used. RAPIDS needs one file per participant.</td>
</tr>
</tbody>
</table>
<div class="admonition success">
<p class="admonition-title">What can I do with RAPIDS?</p>
<p>You can do one or more of these things with RAPIDS:</p>
<ol>
<li><a href="../../features/feature-introduction/">Extract behavioral features</a> from smartphone, Fitbit, and Empatica&rsquo;s <a href="../../datastreams/data-streams-introduction/">supported data streams</a></li>
@ -1874,25 +1876,29 @@
<li>Create visualizations for <a href="../../visualizations/data-quality-visualizations/">data quality control</a> and <a href="../../visualizations/feature-visualizations/">feature inspection</a></li>
<li><a href="../../workflow-examples/analysis/">Extending RAPIDS to organize your analysis</a> and publish a code repository along with your code</li>
</ol>
<p><strong>In order to follow any of the previous tutorials, you will have to <a href="../installation/">Install</a>, <a href="../configuration/">Configure</a>, and learn how to <a href="../execution/">Execute</a> RAPIDS.</strong></p>
</div>
<div class="admonition hint">
<p class="admonition-title">Hint</p>
<ul>
<li>
<p><strong>In order to follow any of the previous tutorials, you will have to <a href="../installation/">Install</a>, <a href="../configuration/">Configure</a>, and learn how to <a href="../execution/">Execute</a> RAPIDS.</strong></p>
</li>
<li>
<p>We recommend you follow the <a href="../../workflow-examples/minimal/">Minimal Example</a> tutorial to get familiar with RAPIDS</p>
</li>
<li>
<p><a href="../../team">Email us</a>, create a <a href="https://github.com/carissalow/rapids/issues">Github issue</a> or text us in <a href="http://awareframework.com:3000/">Slack</a> if you have any questions</p>
<p><a href="../../team">Email us</a>, leave a comment in these docs, create a <a href="https://github.com/carissalow/rapids/issues">Github issue</a> or text us in <a href="http://awareframework.com:3000/">Slack</a> if you have any questions</p>
</li>
</ul>
</div>
<h2 id="frequently-asked-questions">Frequently Asked Questions<a class="headerlink" href="#frequently-asked-questions" title="Permanent link">&para;</a></h2>
<h3 id="general">General<a class="headerlink" href="#general" title="Permanent link">&para;</a></h3>
<details class="info"><summary>What exactly is RAPIDS?</summary><p>RAPIDS is a group of configuration files and R and Python scripts that are executed by <a href="https://snakemake.github.io/">Snakemake</a>. You can get a copy of RAPIDS by cloning our Github repository.</p>
<details class="question"><summary>What exactly is RAPIDS?</summary><p>RAPIDS is a group of configuration files and R and Python scripts that are executed by <a href="https://snakemake.github.io/">Snakemake</a>. You can get a copy of RAPIDS by cloning our Github repository.</p>
<p>RAPIDS is not a web application or server; all the processing is done in your laptop, server, or computer cluster.</p>
</details>
<details class="info"><summary>How does RAPIDS work?</summary><p>You will most of the time only have to modify configuration files in YAML format (<code>config.yaml</code>, <code>credentials.yaml</code>, and participant files <code>pxx.yaml</code>), and in CSV format (time zones and time segments).</p>
<p>RAPIDS pulls data from different data containers and processes it in steps. The input/output of each step is saved as a CSV file for inspection; you can check what files are created for each sensor provider on their documentation page. All data is stored in <code>data/</code>, and all processing Python and R scripts are stored in <code>src/</code>.</p>
<details class="question"><summary>How does RAPIDS work?</summary><p>You will most of the time only have to modify configuration files in YAML format (<code>config.yaml</code>, <code>credentials.yaml</code>, and participant files <code>pxx.yaml</code>), and in CSV format (time zones and time segments).</p>
<p>RAPIDS pulls data from different data containers and processes it in steps. The input/output of each step is saved as a CSV file for inspection; you can check the files that are created for each sensor on its documentation page. </p>
<p>All data is stored in <code>data/</code>, and all processing Python and R scripts are stored in <code>src/</code>.</p>
<details class="example"><summary>User and File interactions in RAPIDS</summary><p>In the figure below, we represent the interactions between users and files. After a user modifies the configuration files mentioned above, the <code>Snakefile</code> file will search for and execute the Snakemake rules that contain the Python or R scripts necessary to generate or update the required output files (behavioral features, plots, etc.).</p>
<p><figure>
<img src="../../img/files.png" max-width="50%" />
@ -1900,28 +1906,29 @@
</figure></p>
</details>
<details class="example"><summary>Data flow in RAPIDS</summary><p>In the figure below, we represent the flow of data in RAPIDS. In broad terms, smartphone and wearable devices log <a href="../../datastreams/data-streams-introduction/">data streams</a> with a certain format to a data container (database, file, etc.). </p>
<p>RAPIDS can connect to these containers if it has a <code>format.yaml</code> and a <code>container.[R|py]</code> script used to pull the correct data and mutate it to comply with RAPIDS&rsquo; internal data representation. Once the data stream is in RAPIDS, it goes through some basic transformations (scripts), one that assigns a time segment and a time zone to each data row, and another one that creates &ldquo;episodes&rdquo; of data for some sensors that need it (like screen, battery, activity recognition, and sleep intraday day). After this, RAPIDS executes the requested provider script that computes behavioral features per time segment instance. After every feature is computed, they are joined per sensor, per participant, and study. Visualizations are built based on raw data with date-time information or based on computed features. </p>
<p>RAPIDS can connect to these containers if it has a <code>format.yaml</code> and a <code>container.[R|py]</code> script used to pull the correct data and mutate it to comply with RAPIDS&rsquo; internal data representation. Once the data stream is in RAPIDS, it goes through some basic transformations (scripts), one that assigns a time segment and a time zone to each data row, and another one that creates &ldquo;episodes&rdquo; of data for some sensors that need it (like screen, battery, activity recognition, and sleep intraday data).</p>
<p>After this, RAPIDS executes the requested <code>PROVIDER</code> script that computes behavioral features per time segment instance. After every feature is computed, they are joined per sensor, per participant, and study. Visualizations are built based on raw data or based on computed features. </p>
<p><figure>
<img src="../../img/dataflow.png" max-width="50%" />
<figcaption>Data stream flow in RAPIDS</figcaption>
</figure></p>
</details>
</details>
<details class="info"><summary>Is my data private?</summary><p>Absolutely, you are processing your data with your own copy of RAPIDS in your laptop, server, or computer cluster, so neither we nor anyone else can have access to your datasets.</p>
<details class="question"><summary>Is my data private?</summary><p>Absolutely, you are processing your data with your own copy of RAPIDS in your laptop, server, or computer cluster, so neither we nor anyone else can have access to your datasets.</p>
</details>
<details class="info"><summary>Do I need to have coding skills to use RAPIDS?</summary><p>If you want to extract the behavioral features or visualizations that RAPIDS offers out of the box, the answer is no. However, you need to be comfortable running commands in your terminal and familiar with editing YAML files and CSV files.</p>
<details class="question"><summary>Do I need to have coding skills to use RAPIDS?</summary><p>If you want to extract the behavioral features or visualizations that RAPIDS offers out of the box, the answer is no. However, you need to be comfortable running commands in your terminal and familiar with editing YAML files and CSV files.</p>
<p>If you want to add support for new data streams or behavioral features, you need to be familiar with R or Python.</p>
</details>
<details class="info"><summary>Is RAPIDS open-source or free?</summary><p>Yes, RAPIDS is both open-source and free.</p>
<details class="question"><summary>Is RAPIDS open-source or free?</summary><p>Yes, RAPIDS is both open-source and free.</p>
</details>
<details class="info"><summary>How do I cite RAPIDS?</summary><p>Please refer to our <a href="../../citation/">Citation guide</a>; depending on what parts of RAPIDS you used, we also ask you to cite the work of other authors that shared their work.</p>
<details class="question"><summary>How do I cite RAPIDS?</summary><p>Please refer to our <a href="../../citation/">Citation guide</a>; depending on what parts of RAPIDS you used, we also ask you to cite the work of other authors that shared their work.</p>
</details>
<details class="info"><summary>I have a lot of data, can RAPIDS handle it/ is RAPIDS fast enough?</summary><p>Yes, we use Snakemake under the hood, so you can automatically distribute RAPIDS execution over multiple <a href="../execution/">cores</a> or <a href="https://snakemake.readthedocs.io/en/stable/executing/cluster.html">clusters</a>. RAPIDS processes data per sensor and participant, so it can take advantage of this parallel processing.</p>
<details class="question"><summary>I have a lot of data, can RAPIDS handle it/ is RAPIDS fast enough?</summary><p>Yes, we use Snakemake under the hood, so you can automatically distribute RAPIDS execution over multiple <a href="../execution/">cores</a> or <a href="https://snakemake.readthedocs.io/en/stable/executing/cluster.html">clusters</a>. RAPIDS processes data per sensor and participant, so it can take advantage of this parallel processing.</p>
</details>
<details class="info"><summary>What are the advantages of using RAPIDS over implementing my own analysis code?</summary><p>We believe RAPIDS can benefit your analysis in several ways:</p>
<details class="question"><summary>What are the advantages of using RAPIDS over implementing my own analysis code?</summary><p>We believe RAPIDS can benefit your analysis in several ways:</p>
<ul>
<li>RAPIDS has more than 250 <a href="../../features/add-new-features/">behavioral features</a> available, many of them tested and used by other researchers.</li>
<li>RAPIDS can extract features in dynamic <a href="../../setup/configuration/#time-segments">time segments</a> (for example, every x minutes, x hours, x days, x weeks, x months, etc.). This is handy because you don&rsquo;t have to deal with time zones, light saving changes, or date arithmetic.</li>
<li>RAPIDS can extract features in dynamic <a href="../../setup/configuration/#time-segments">time segments</a> (for example, every x minutes, x hours, x days, x weeks, x months, etc.). This is handy because you don&rsquo;t have to deal with time zones, day light saving changes, or date arithmetic.</li>
<li>Your analysis is less prone to errors. Every participant sensor dataset is analyzed in the same way and isolated from each other.</li>
<li>If you have lots of data, out-of-the-box parallel execution will speed up your analysis and if your computer crashes, RAPIDS will start from where it left of. </li>
<li>You can publish your analysis code along with your papers and be sure it will run exactly as it does in your computer.</li>
@ -1929,29 +1936,29 @@
</ul>
</details>
<h3 id="data-streams">Data Streams<a class="headerlink" href="#data-streams" title="Permanent link">&para;</a></h3>
<details class="info"><summary>Can I process smartphone data collected with Beiwe, PurpleRobot, or app X?</summary><p>Yes, but you need to add a new data stream to RAPIDS (a new <code>format.yaml</code> and container script in R or Python). Follow this <a href="../../datastreams/add-new-data-streams/">tutorial</a>. <a href="../../team">Email us</a>, create a <a href="https://github.com/carissalow/rapids/issues">Github issue</a> or text us in <a href="http://awareframework.com:3000/">Slack</a> if you have any questions.</p>
<details class="question"><summary>Can I process smartphone data collected with Beiwe, PurpleRobot, or app X?</summary><p>Yes, but you need to add a new data stream to RAPIDS (a new <code>format.yaml</code> and container script in R or Python). Follow this <a href="../../datastreams/add-new-data-streams/">tutorial</a>. <a href="../../team">Email us</a>, create a <a href="https://github.com/carissalow/rapids/issues">Github issue</a> or text us in <a href="http://awareframework.com:3000/">Slack</a> if you have any questions.</p>
<p>If you do so, let us know so we can integrate your work into RAPIDS.</p>
</details>
<details class="info"><summary>Can I process data from Oura Rings, Actigraphs, or wearable X?</summary><p>The only wearables we support at the moment are Empatica and Fitbit. However, get in touch if you need to process data from a different wearable. We have limited resources so we add support for different devices on an as-needed basis, but we would be happy to collaborate with you to add new wearables. <a href="../../team">Email us</a>, create a <a href="https://github.com/carissalow/rapids/issues">Github issue</a> or text us in <a href="http://awareframework.com:3000/">Slack</a> if you have any questions.</p>
<details class="question"><summary>Can I process data from Oura Rings, Actigraphs, or wearable X?</summary><p>The only wearables we support at the moment are Empatica and Fitbit. However, get in touch if you need to process data from a different wearable. We have limited resources so we add support for different devices on an as-needed basis, but we would be happy to collaborate with you to add new wearables. <a href="../../team">Email us</a>, create a <a href="https://github.com/carissalow/rapids/issues">Github issue</a> or text us in <a href="http://awareframework.com:3000/">Slack</a> if you have any questions.</p>
</details>
<details class="info"><summary>Can I process smartphone or wearable data stored in PostgreSQL, Oracle, SQLite, CSV files, or data container X?</summary><p>Yes, but you need to add a new data stream to RAPIDS (a new <code>format.yaml</code> and container script in R or Python). Follow this <a href="../../datastreams/add-new-data-streams/">tutorial</a>. If you are processing data streams we already support like AWARE, Fitbit, or Empatica and are just connecting to a different container; you can reuse their <code>format.yaml</code> and only implement a new container script. <a href="../../team">Email us</a>, create a <a href="https://github.com/carissalow/rapids/issues">Github issue</a> or text us in <a href="http://awareframework.com:3000/">Slack</a> if you have any questions.</p>
<details class="question"><summary>Can I process smartphone or wearable data stored in PostgreSQL, Oracle, SQLite, CSV files, or data container X?</summary><p>Yes, but you need to add a new data stream to RAPIDS (a new <code>format.yaml</code> and container script in R or Python). Follow this <a href="../../datastreams/add-new-data-streams/">tutorial</a>. If you are processing data streams we already support like AWARE, Fitbit, or Empatica and are just connecting to a different container; you can reuse their <code>format.yaml</code> and only implement a new container script. <a href="../../team">Email us</a>, create a <a href="https://github.com/carissalow/rapids/issues">Github issue</a> or text us in <a href="http://awareframework.com:3000/">Slack</a> if you have any questions.</p>
<p>If you do so, let us know so we can integrate your work into RAPIDS.</p>
</details>
<details class="info"><summary>I have participants that live in different time zones and some that travel; can RAPIDS handle this?</summary><p>Yes, RAPIDS can handle <a href="../../setup/configuration/#timezone-of-your-study">single or multiple timezones</a> per participant. You can use time zone data collected by smartphones or collected by hand.</p>
<details class="question"><summary>I have participants that live in different time zones and some that travel; can RAPIDS handle this?</summary><p>Yes, RAPIDS can handle <a href="../../setup/configuration/#timezone-of-your-study">single or multiple timezones</a> per participant. You can use time zone data collected by smartphones or collected by hand.</p>
</details>
<details class="info"><summary>Some of my participants used more than one device during my study; can RAPIDS handle this?</summary><p>Yes, you can link more than one smartphone or wearable device to a single participant. RAPIDS will merge them and sort them automatically.</p>
<details class="question"><summary>Some of my participants used more than one device during my study; can RAPIDS handle this?</summary><p>Yes, you can link more than one smartphone or wearable device to a single participant. RAPIDS will merge them and sort them automatically.</p>
</details>
<details class="info"><summary>Some of my participants switched from Android to iOS or vice-versa during my study; can RAPIDS handle this?</summary><p>Yes, data from multiple smartphones can be linked to a single participant. All iOS data is converted to Android data before merging it.</p>
<details class="question"><summary>Some of my participants switched from Android to iOS or vice-versa during my study; can RAPIDS handle this?</summary><p>Yes, data from multiple smartphones can be linked to a single participant. All iOS data is converted to Android data before merging it.</p>
</details>
<h3 id="extending-rapids">Extending RAPIDS<a class="headerlink" href="#extending-rapids" title="Permanent link">&para;</a></h3>
<details class="info"><summary>Can I add my own behavioral features/digital biomarkers?</summary><p>Yes, you can implement your own features in R or Python following this <a href="../../features/add-new-features/">tutorial</a> </p>
<details class="question"><summary>Can I add my own behavioral features/digital biomarkers?</summary><p>Yes, you can implement your own features in R or Python following this <a href="../../features/add-new-features/">tutorial</a> </p>
</details>
<details class="info"><summary>Can I extract behavioral features based on two or more sensors?</summary><p>Yes, we do this for <code>PHONE_DATA_YIELD</code> (combines all phone sensors), <code>PHONE_LOCATIONS</code> (combines location and data yield data), <code>PHONE_APPLICATIONS_BACKGROUND</code> (combines screen and app usage data), and <code>FITBIT_INTRADAY_STEPS</code> (combines Fitbit and sleep and step data). </p>
<details class="question"><summary>Can I extract behavioral features based on two or more sensors?</summary><p>Yes, we do this for <code>PHONE_DATA_YIELD</code> (combines all phone sensors), <code>PHONE_LOCATIONS</code> (combines location and data yield data), <code>PHONE_APPLICATIONS_BACKGROUND</code> (combines screen and app usage data), and <code>FITBIT_INTRADAY_STEPS</code> (combines Fitbit and sleep and step data). </p>
<p>However, we haven&rsquo;t come up with a user-friendly way to configure this, and currently, we join sensors on a case-by-case basis. This is mainly because not enough users have needed this functionality so far. Get in touch, and we can set it up together; the more use cases we are aware of, the easier it will be to integrate this into RAPIDS.</p>
</details>
<details class="info"><summary>I know how to program in Python or R but not both. Can I still use or extend RAPIDS?</summary><p>Yes, you don&rsquo;t need to write any code to use RAPIDS out of the box. If you need to add support for new <a href="../../datastreams/add-new-data-streams/">data streams</a> or <a href="../../features/add-new-features/">behavioral features</a> you can use scripts in either language.</p>
<details class="question"><summary>I know how to program in Python or R but not both. Can I still use or extend RAPIDS?</summary><p>Yes, you don&rsquo;t need to write any code to use RAPIDS out of the box. If you need to add support for new <a href="../../datastreams/add-new-data-streams/">data streams</a> or <a href="../../features/add-new-features/">behavioral features</a> you can use scripts in either language.</p>
</details>
<details class="info"><summary>I have scripts that clean raw data from X sensor, can I use them with RAPIDS?</summary><p>Yes, you can add them as a <a href="../../datastreams/add-new-data-streams/#complex-mapping"><code>[MUTATION][SCRIPT]</code></a> in the <code>format.yaml</code> of the <a href="../../datastreams/data-streams-introduction/">data stream</a> you are using. You will add a <code>main</code> function that will receive a data frame with the raw data for that sensor that in turn will be used to compute behavioral features.</p>
<details class="question"><summary>I have scripts that clean raw data from X sensor, can I use them with RAPIDS?</summary><p>Yes, you can add them as a <a href="../../datastreams/add-new-data-streams/#complex-mapping"><code>[MUTATION][SCRIPT]</code></a> in the <code>format.yaml</code> of the <a href="../../datastreams/data-streams-introduction/">data stream</a> you are using. You will add a <code>main</code> function that will receive a data frame with the raw data for that sensor that in turn will be used to compute behavioral features.</p>
</details>

Binary file not shown.