Compare commits

...

39 Commits

Author SHA1 Message Date
Andre Daniel Paredes
0d84deb6e4 Update README.md 2023-02-10 09:21:43 -06:00
Andre Daniel Paredes
356880c522 Update idea_list.md 2023-02-07 21:09:35 -06:00
Andre Daniel Paredes
658677efce Update gsoc_contribution_guide.md 2023-02-07 11:07:46 -06:00
Andre Daniel Paredes
f8e9d7de5e Update gsoc_contribution_guide.md 2023-02-07 11:07:28 -06:00
Andre Daniel Paredes
7140779dbb Merge pull request #56 from AiCure/docs/gsoc
Docs/gsoc
2023-02-07 11:04:05 -06:00
ADParedes
da17826560 removed unnecessary separate gsoc mentor file 2023-02-07 10:59:23 -06:00
ADParedes
de9f4d1087 change directory locations of gsoc guides 2023-02-07 10:58:45 -06:00
ADParedes
c602214aaf updated gsoc contribution and guides 2023-02-07 10:57:27 -06:00
ADParedes
99eaee32f4 move Community Health Documents to .github 2023-02-07 07:44:04 -06:00
Andre Daniel Paredes
a618525a18 Merge pull request #55 from ADParedes/dev/usage
Dev/usage
2023-02-06 23:41:07 -06:00
Andre Daniel Paredes
c5fcebb357 Merge branch 'AiCure:master' into dev/usage 2023-02-06 23:34:59 -06:00
Andre Daniel Paredes
de1029715a Update FUNDING.yml 2023-02-06 17:25:23 -05:00
Andre Daniel Paredes
c1efe98705 Create FUNDING.yml 2023-02-06 14:29:21 -05:00
Andre Daniel Paredes
1e434e92db Update README.md 2023-02-06 11:17:44 -05:00
Andre Daniel Paredes
a5214ee6ea Update CONTRIBUTING.md 2023-02-06 11:04:42 -05:00
Andre Daniel Paredes
a368315f16 Update README.md 2023-01-12 17:02:08 -05:00
Andre Daniel Paredes
ff0b97b428 Update README.md 2023-01-12 17:00:44 -05:00
Andre Daniel Paredes
3014a6aa9e Update README.md 2023-01-12 16:57:26 -05:00
AndreTheGreat
d74a1614fc added lines of code for head movement calculation 2023-01-11 15:24:26 -06:00
andre.paredes
5c8d7ceac6 sample script added movement 2023-01-10 13:54:06 -05:00
andre.paredes
006cb0eb0a cleaned notes in sample script VA section 2023-01-09 13:49:51 -05:00
AndreTheGreat
8f6b3c5d43 verbal acoustics dbm addition 2023-01-04 17:06:48 -06:00
ADParedes
d772a25aa2 sample audio added and sample script for pypi 2023-01-04 15:20:07 -06:00
Andre Daniel Paredes
f1b106e581 Merge pull request #1 from AiCure/master
Fix Broken github pages link
2023-01-04 13:19:10 -05:00
Andre Daniel Paredes
c89db66f48 Fix Broken github pages link
updated broken links in component and description table.  Added hyperlink to digital biomarker variable guide on github page.
2023-01-04 10:32:48 -06:00
AiCure ODBM Pipeline
c3c312ca39 Modify coverage percentage in coverage badge 2022-12-20 14:46:05 +00:00
Johannes Haposan Napitupulu
7b05b25b49 [Adjustment]Increaset minimum test coverage condition 2022-12-20 21:26:04 +07:00
ADParedes
d8f7d43f3b docs api opendbm misspelling 2022-12-18 06:28:47 -06:00
ADParedes
df7a925a49 windows usage - update 2022-12-18 05:53:43 -06:00
ADParedes
3f270cbd1f minor id fix 2022-12-18 04:23:39 -06:00
AiCure ODBM Pipeline
7d7a12ef4b Modify MacOs Build status in badge 2022-11-22 08:49:49 +00:00
rudy-haryanto
d7b5fc106a Merge pull request #51 from AiCure/pipeline-simulation-2
Run pipeline simulation #2
2022-11-22 15:22:26 +07:00
Rudy Haryanto
db69f6fb58 Run pipeline simulation #2 2022-11-22 15:19:10 +07:00
Muhammad Faisyal
3aa9bbc7ae Start pipeline simulation #1 2022-11-22 15:14:48 +07:00
AiCure ODBM Pipeline
5a0cf8e03d Modify test status in test badge 2022-11-18 14:39:42 +00:00
AiCure ODBM Pipeline
599a5c2719 Modify Linux Build status in badge 2022-11-18 14:38:51 +00:00
rudy-haryanto
285adb5caa Merge pull request #50 from jordihasianta/repo-fix
OpenDBM path fix
2022-11-18 21:20:19 +07:00
jordihasianta
b3e23aa661 add full path of docker image 2022-11-18 20:36:33 +07:00
jordihasianta
a8d4b21929 remove unused comments 2022-11-18 20:36:12 +07:00
24 changed files with 385 additions and 25 deletions

View File

@@ -5,6 +5,7 @@ Please visit [openDBM](https://aicure.com/opendbm/) page if you have not seen it
## What you should know
- Read [code of conduct](https://github.com/AiCure/open_dbm/blob/master/CODE_OF_CONDUCT.md).
- Read [issues](https://github.com/AiCure/open_dbm/blob/master/ISSUES.md).
- Read [License](https://github.com/AiCure/open_dbm/blob/master/license.txt).
- Agree to contribute code under openDBM(GPL v3.0).
- Before adding new feature/algorithmn make sure it's not patented.

13
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,13 @@
# These are supported funding model platforms
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: opendbm
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: AiCure/open_dbm
otechie: # Replace with a single Otechie username
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

View File

View File

View File

View File

@@ -114,6 +114,7 @@ jobs:
# wsl --list
# - name: Set up QEMU
# uses: docker/setup-qemu-action@v2
#
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v2
# - name: Login to Docker Hub

View File

@@ -124,7 +124,7 @@ jobs:
ls -lart
pip install pytest coverage
coverage run -m pytest
coverage report -mi --fail-under=30 --skip-covered
coverage report -mi --fail-under=80 --skip-covered
- name: Update shield TEST status only for branch push master
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' && always() }}
run: |

View File

@@ -7,6 +7,7 @@ OpenDBM
[![PyPI Latest Release](https://img.shields.io/pypi/v/opendbm?style=plastic)](https://pypi.org/project/opendbm/)
[![Anaconda Latest Release](https://img.shields.io/badge/Anaconda.org-1.4.3-blue.svg?style=plastic)](https://anaconda.org/r/r-odbc)
![Python Version](https://img.shields.io/badge/python-3.8-blue)
[![PyPI - License](https://img.shields.io/pypi/l/odbm?style=plastic)](https://github.com/AiCure/open_dbm/blob/master/license.txt)
[![Test](https://raw.githubusercontent.com/AiCure/open_dbm/master/images/badges/test_status.svg)](https://github.com/AiCure/open_dbm/actions/workflows/open_dbm-code-checking.yml?query=branch%3Amaster++)
[![Coverage](https://raw.githubusercontent.com/AiCure/open_dbm/master/images/badges/code_coverage.svg)](https://github.com/AiCure/open_dbm/actions/workflows/open_dbm-code-checking.yml?query=branch%3Amaster++)
@@ -28,7 +29,7 @@ OpenDBM is a software package that allows for calculation of digital
biomarkers of health and functioning from video or audio of an individuals
behavior. It integrates existing tools for behavioral measurements such as
facial activity, voice, speech, and movement into a single package for measurement
of overall behavior.
of overall behavior. Checkout the OpenDBM [**digital biomarker variables**](https://aicure.github.io/open_dbm/docs/biomaker-variables) and [list of scientific publications](https://docs.google.com/spreadsheets/d/1p22VDBA6A7md5335oqAtzSV3NUs0fFb7aufQH2cqhyQ/edit#gid=0)
# More About OpenDBM
@@ -36,10 +37,10 @@ At a modular level, OpenDBM is a library that consists of the following componen
| Component | Description |
| ---- | --- |
| [**Facial**](https://aicure.github.io/open_dbm/docs/category/api/facial) | An OpenDBM module to get facial attributes |
| [**Movement**](https://aicure.github.io/open_dbm/docs/category/api/movement) | An OpenDBM module to get movement attributes |
| [**Acoustic**](https://aicure.github.io/open_dbm/docs/category/api/acoustic) | An OpenDBM module to get acoustic attributes |
| [**Audio**](https://aicure.github.io/open_dbm/docs/category/api/audio) | An OpenDBM module to get audio attributes |
| [**Facial**](https://aicure.github.io/open_dbm/api/facial-activity-api) | An OpenDBM module to get facial attributes |
| [**Movement**](https://aicure.github.io/open_dbm/api/movement-api) | An OpenDBM module to get movement attributes |
| [**Verbal Acoustic**](https://aicure.github.io/open_dbm/api/verbal-acoustics-api) | An OpenDBM module to get verbal acoustic attributes |
| [**Speech & Language**](https://aicure.github.io/open_dbm/api/speech-api) | An OpenDBM module to get speech & language attributes |
Usually, OpenDBM is used for:
@@ -122,18 +123,21 @@ landmark.to_dataframe() # convert results as pandas dataframe
For more in-depth tutorials about OpenDBM, you can check out:
- [Introduction to OpenDBM](https://aicure.github.io/open_dbm/docs/intro)
- [Advance Guide](https://aicure.github.io/open_dbm/docs/advance)
- [API Documentation](https://aicure.github.io/open_dbm/docs/category/api)
- [Introduction to OpenDBM](https://aicure.github.io/open_dbm/docs/getting-started)
- [Digital Biomarker Variables](https://aicure.github.io/open_dbm/docs/biomaker-variables)
- [API Documentation](https://aicure.github.io/open_dbm/api/api-doc)
- [Contribution Guide](https://aicure.github.io/open_dbm/extras/extras)
<div align="right">
<a href="#table-of-contents">Back to TOC ☝️</a>
</div>
# ⭐️ More resources
- [Our wiki](https://github.com/AiCure/open_dbm/wiki)
- [OpenDBM 2.0 Documentation](https://docs.google.com/document/d/1O6OUSY9FHFCZfpIWu3Kgg0Q_dyp073xjjQ2K3viEffU/edit#heading=h.rxr2y5t62mwa)
- [OpenDBM Github Pages](https://aicure.github.io/open_dbm/)
- [OpenDBM 2.0 Documentation](https://docs.google.com/document/d/1zek5fBvOZ_OwPYpsD6pso4u1N4K-ZuTO7j9ycHJSB-s/edit?usp=sharing)
- [AiCure page](https://aicure.com/opendbm/)
- [Submit to the list of publications](https://docs.google.com/forms/d/e/1FAIpQLScVDFF8Kkl_C4iq6N6-T6m4JwwPmFIt-Wwa70DgL4L4eGLaeA/viewform?vc=0&c=0&w=1&flr=0)
- [Sign up to join the list serve](https://docs.google.com/forms/d/e/1FAIpQLScKUCdYdK9UTd569IuF3O8Q2A9fXuMJ5z9wXbX4r5yzcwfphQ/viewform?fbzx=-1747756377554914236&pli=1)
<div align="right">
<a href="#table-of-contents">Back to TOC ☝️</a>
@@ -144,7 +148,7 @@ OpenDBM is published under the GNU AGPL 3.0 license.
# ⭐️ People
OpenDBM was developed by Anzar Abbas and Vijay Yadav, alongside Vidya Koesmahargyo and Isaac Galatzer-Levy, from within the Research and Development department at AiCurea health tech startup in New York. It was made open source in October 2020. You can contact us at opendbm@aicure.com.
OpenDBM is maintained by the Clinical Data Science Team (including Andre Paredes, Director of OpenDBM) at AiCure. Current development and maintenance build on the efforts of Anzar Abbas and Vijay Yadav, alongside Vidya Koesmahargyo and Isaac Galatzer-Levy. OpenDBM was made open source in October 2020. Email the community at opendbm@aicure.com.
<div align="right">
<a href="#table-of-contents">Back to TOC ☝️</a>
@@ -153,4 +157,3 @@ OpenDBM was developed by Anzar Abbas and Vijay Yadav, alongside Vidya Koesmaharg

View File

@@ -1,5 +1,5 @@
---
id: opendbm-docker-usage
id: mac-linux-usage
title: Mac / Linux Usage
---

View File

@@ -1,6 +1,6 @@
---
id: opendbm-docker-usage
title: Docker Usage
title: Docker Mac-Linux Usage
---
## Mac / Linux

View File

@@ -1,6 +1,6 @@
---
id: windows-usage
title: Windows Usage
title: Docker Windows Usage
---
import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem';

119
docs/gsoc/2023/idea_list.md Normal file
View File

@@ -0,0 +1,119 @@
# Google Summer of Code - Idea List
**The purpose of this idea list is to help contributors answer the question:**
> What are ideas of projects I can work on in Google Summer of Code with OpenDBM
## Brief Overview
### OpenDBM Project Areas
[<img src="https://user-images.githubusercontent.com/34843515/217380475-c50cd215-dfeb-4c74-9f82-0aaa7fc5de4a.png" width=100px>](https://hub.docker.com/r/opendbmteam/dbm-openface)
[<img src="https://user-images.githubusercontent.com/34843515/217385063-56e3d0ba-2877-4d28-8648-2f036ec781c6.png" width=100px>](https://pypi.org/project/opendbm/)
[<img src="https://user-images.githubusercontent.com/34843515/217385086-20c5036d-e169-48fa-ac66-66f533a9d2c9.png" width=100px>](https://aicure.github.io/open_dbm/api/api-doc)
[<img src="https://user-images.githubusercontent.com/34843515/217385095-6056b632-215a-4a97-8202-7a8b429a9003.png" width=97px>](https://github.com/AiCure/open_dbm/tree/master/visualization_interface#opendbm-visual-analytics-interface)
Choosing a project is a personal choice. You should choose something you want to work on, and you would know that best! Here's a few questions you can ask yourself to help figure that out:
- What software do you already use?
- What would you like to learn?
- Who do you like working with?
- How do you want to chane the world?
- How do you like to communicate?
The community can benefit from a wide range of contribution to each project area. Because OpenDBM includes a community of open scientists, jupyter notebooks, tutorials, and documentations are equally important to supporting the community
#### 1. [Docker Implementation](https://hub.docker.com/r/opendbmteam/dbm-openface)
[<img src="https://user-images.githubusercontent.com/34843515/217380475-c50cd215-dfeb-4c74-9f82-0aaa7fc5de4a.png" width=70px>](https://hub.docker.com/r/opendbmteam/dbm-openface)
[What is docker?](https://learn.microsoft.com/en-us/dotnet/architecture/microservices/container-docker-introduction/docker-defined)
> Docker is an open-source project for automating the deployment of applications as portable, self-sufficient containers that can run on the cloud or on-premises. Docker is also a company that promotes and evolves this technology.
OpenDBM is built on top of a bunch of existing open source tools. That means it depends on a lot of other software to function and do the things it needs to do. And the user is responsible for scouring the internet for OpenDBMs dependencies, listed in the requirements.txt file that comes with it, and installing each and every one of them. OpenDBM's Docker Implementation packages up all the dependencies that you would otherwise have to install into a container. More information can be found here in our [Github Pages Guides](https://aicure.github.io/open_dbm/docs/beginner-installation)
#### 2. [Pypi library](https://pypi.org/project/opendbm/)
[<img src="https://user-images.githubusercontent.com/34843515/217385063-56e3d0ba-2877-4d28-8648-2f036ec781c6.png" width=75px>](https://pypi.org/project/opendbm/)
[<img src="https://user-images.githubusercontent.com/34843515/217387633-e1b5b3d7-103b-4e1d-bfe4-5237b3f0be14.png" width=500px>]
More information about the OpenDBM Python API can be found here in our [Github Pages Guides](https://aicure.github.io/open_dbm/extras/opendbm-python-api)
#### 3. [RESTful API](https://aicure.github.io/open_dbm/api/api-doc)
[<img src="https://user-images.githubusercontent.com/34843515/217385086-20c5036d-e169-48fa-ac66-66f533a9d2c9.png" width=75px>](https://aicure.github.io/open_dbm/api/api-doc)
<img width="1084" alt="odbm_api_summary" src="https://user-images.githubusercontent.com/34843515/217388200-cf77f6fa-df0e-41ac-aab0-905a3ae98701.png">
More information about the OpenDBM REST API can be found here in our [Github Pages Guides](https://aicure.github.io/open_dbm/extras/odbm-rest-api))
#### 4. [Viz Tool](https://github.com/AiCure/open_dbm/tree/master/visualization_interface#opendbm-visual-analytics-interface)
[<img src="https://user-images.githubusercontent.com/34843515/217385095-6056b632-215a-4a97-8202-7a8b429a9003.png" width=72px>](https://github.com/AiCure/open_dbm/tree/master/visualization_interface#opendbm-visual-analytics-interface)
<img width="500" alt="191345731-b12004b2-c424-455e-83cc-2bb18aa96d47" src="https://user-images.githubusercontent.com/34843515/217389561-4f96ed01-a36c-4d57-8334-5990d282bfd2.png">
App.js is the container of the entire application (default container component provided by the npm create-react-app command that was used to create a bare-bones React application). Based on the selected panel, the Visuali will output one of the two existing panels: the Cohort Panel of the Individual Panel.
**Cohort Panel:**
This panel contains all the relevant components for visual cohort analysis. The user can make inquiries about derived cohort data outputted by the OpenDBM pipeline (derived_variables/derived_output.csv). This panel will output only the available data (i.e. OpenDBM outputs a subset of DBMs).
**Individual Panel**
This panel contains all the relevant components for individual video analysis. The user can make inquiries about the raw data for one video, as well as some of derived variables outputted by the OpenDBM pipeline (raw_varialbes/{video_id_folder}/.. and derived_variables/derived_output.csv). This view will output only the available raw and derived data (i.e. OpenDBM outputs a subset of DBMs).
More information about the OpenDBM Vis Tool can be found [here](https://github.com/AiCure/open_dbm/tree/master/visualization_interface)
## Ideas List
| Project Area | General Description | Required Skills | Difficulty |
| :--- | --- | --- | ---: |
| Vis Tool | In the summer 2022 the OpenDBM Summer Intern built the Vis tool as a minimum viable product. Several minor/medium enhancements and bug fixes were left from the project. Explore Vistool to see issues you may be interested in enhancing or fixing| react, python, node.js | Variable difficulty (easy-to-hard)|
| Multiple | Performance can be improved, including simpler installs for all project areas (except RESTful API). This may include testing, benchmarking, and evaluating performance. You would create a scoped optimziation plan such as reducing the docker size and eliminating dead code. Additionaly the virtual env management can be flaky | may include python, docker, react, node.js | Variable difficulty (easy-to-hard) |
| Multiple | Develop a feature to process a selected time range of audio-video data as opposed to the video entirely. Permit multiple time contents to select. E.g. Minute 2:35 -5:01 and minute 6:30-7:52 | Docker-build, python | Medium |
| Docker Implementation | Develop a voice splitting/splicing feature to split separate voices from an aduio file for input into OpenDBM Docker Implementation | Docker, other | Medium |
| Docker Implementation| Integrate an additional open source into the Docker build. If time allows this may also include updating PyPi library to include separate toolkit. An example of other toolkits to integrate includes [OpenPose](https://cmu-perceptual-computing-lab.github.io/openpose/web/html/doc/index.html) | Medium-to-Hard
| Docker Implementation | Add a preprocessing set of tools Docker build so that end users can sanity check their audio and video recordings. | up to contributor | variable (easy-to-hard)
| Pypi Library (jupyter notebook, document, and blog tutorials) | Create artifacts to educate users on ways to preprocess, process, and post-process data | data science, python, statistical analysis | Medium-to-Hard |
## Mentors
Mentors will consist of AiCure Engineering and Clinical Data Science Team. Community Members can apply to be mentors, see below for more information.
Mentor and admins will include but are not limited too
- [Aaron Masino, PhD](https://www.linkedin.com/in/aaron-masino-38989415/)
- [Andre Daniel Paredes, PhD](https://www.linkedin.com/in/andre-daniel-paredes/)
- [Jacob Epifano, PhD](https://www.linkedin.com/in/jrepifano/)
- [Rich Christie, MD,PhD](https://www.linkedin.com/in/richchristie/)
- [Sarah Kark, PhD](https://www.linkedin.com/in/sarahkark/)
- [Stephanie Caamano](https://www.linkedin.com/in/scaamano/)
-
Mentors and org admins can be reached in the public opendbm@aicure.com listserve. This includes any questions in both the application process or general questions about the project. If conversations advance we'll pull you into a private email This lets. *If selected we will add you to our private channel on the OpenDBM Community Home on the Discourse Platform*
Interested in volunteering with OpenDBM as a mentor?
We'd love to . Please consider the following:
- The easiest way to become a member is to be part of our discourse community and fill out our [OpenDBM Community Survey](https://docs.google.com/forms/d/e/1FAIpQLScKUCdYdK9UTd569IuF3O8Q2A9fXuMJ5z9wXbX4r5yzcwfphQ/viewform?fbzx=-1747756377554914236&pli=1) and let us know you are interested in mentoring
- Mentors you are expected to read and closely abide by [GSoC Mentor Guide](https://google.github.io/gsocguides/mentor/upstream-integration)*
- We expect around a 0-10 hr/week commitment
- We ideally would like more than two mentors per project, so cooperation is key.
- The most successfuly mentors are those who have subject matter expertise experience or are community members of the open source project.
- Mentors do have to do multiple evaluations on each GSoC Contributor, two mid-terms and one at the end.
- This is 100% volunteer role for people who are passionate about helping and giving back.

View File

@@ -0,0 +1,59 @@
# An ideal application will contain 5 things:
1. A **descriptive title** including the name of what you want to work with, i.e. pypi library, docker, restfulapi or a combination of the three.
> Good example: "OpenDBM Docker: add feature to select recording timeframe for processing " Bad example: "My gsoc project"
2. **Information about you**, including contact information.
3. Link to a **code contribution** you have made to your organization. (Usually this is a link to a pull request.)
4. Information about your **proposed project**. This should be fairly detailed and include a **timeline**.
5. Information about **other commitments** that might affect your ability to work during the GSoC period. (exams, classes, holidays, other jobs, weddings, etc.) We can work around a lot of things, but it helps to know in advance.
## Sample Application Template:
-------------------------------------------------------------------------------
## Project Area Name: The thing I want to do this summer
**Note**: Make sure to include the project area name in the title both in Google's system and in your document.
### About me
1. Name (and nicknames like your github and irc usernames)
2. University / program / year / expected graduation date (you don't need to be a student to be accepted, but if you are we'd like to know)
3. Contact info (email, phone, etc.)
4. Time zone
5. Link to a resume (if you want)
### Code or Issue contribution
Submit and link either a (1) pull request or (2) a detailed note on an issue, bug, or feature request you believe would be a contribution to the space with a known solution - follow the issue templates and please do not submit and link a discussion item.
* Link to a pull request, code sample,issue goes here.
* Ideally this should be code submitted as a pull request, patch, or issue.
* It must represent your own work, although you can have help from developers to improve it.
* It can be something small
* It must be publicly visible to your mentors and org admins.
* You can link more than one if you want.
### Project information
1. Project Area name
2. Project Abstract
3. Detailed description
4. Weekly timeline
* The default schedule for GSoC is 12 weeks, either full-time or part-time. See [the GSoC timeline](https://developers.google.com/open-source/gsoc/timeline) for precise dates. This template assumes you'll be using those 12 weeks; if you're doing an alternate schedule you can adjust appropriately.
* **Community Bonding**: List any prepwork you want to do before coding starts.
* For each coding week below, list planned code deliverables. Break the project into weeks and estimate what you will have complete at the end of each one. This schedule can be adjusted later if need be.
* **Week 1** Note that usually even week 1's deliverables should include some code.
* **Week 2**
* **Week 3**
* **Week 4**
* **Week 5**
* **Week 6** Midterm point. You need enough done at this point for your mentor to evaluate your progress and pass you. Usually you want to be a bit more than half done.
* **Week 7**
* **Week 8**
* **Week 9**
* **Week 10**
* **Week 11** you may want to try to "code freeze" in week 11 and complete any tests/documentation in week 11-12.
* **Week 12**
* **Final week**: This week you will be submitting your projects
### Other commitments
* List of any things that might affect your ability to work this summer.
* List any exams, classes, holidays, other jobs, weddings, etc. We can work around a lot of things, but it helps to know in advance.
* If you're applying to more than one organization, you can let us know which one you prefer in case of a tie.

View File

@@ -0,0 +1,113 @@
# Google Summer of Code - Contribution Guide
The Purpose of this document to help contributors answer the question:
> What do I need to know to participate in Google Summer of Code (GSoC) with OpenDBM?
***Note for mentors:*** *Mentors you are expected to read and closely abide by [GSoC Mentor Guide](https://google.github.io/gsocguides/mentor/upstream-integration)*
# Table of Contents
- [⭐️ What is it?](what-is-it?)
- [⭐️ Getting Started](getting-started)
- [⭐️ Application Process](application-process)
- [⭐️ Time commitment](time-commitment)
- [⭐️ Tips](tips)
- [⭐️ Google Resources](google-resources)
## ⭐️ What is it?
| OpenDBM | GSoC |
| :------ | ---: |
|OpenDBM is a software package that allows researchers to calculate digital traits (or digital phenotyping) from video/audio of a person's behavior by combining tools to measure behavioral characteristics like facial activity, voice, and movement into a single package to measure overall behavior. From those behavioral characteristics, researchers can measure clinically meaningful symptomatology such as emotional expressivity, the prosody of voice, the valence of speech, and severity of tremoramong many others. | Google Summer of Code (GSoC) is a global program that offers new contributors over 18 an opportunity to be paid for contributing to an open source project over a three month period. |
OpenDBM was started in 2020 as a free and open resource to support the wider scientific community. We are now starting new initiatives to ensure that OpenDBM feels like a community of developers, in addition to researchers and citizen scientists. Don't be afraid to enter this space, ask questions, and learn something. Everyone can be a contributor and help drive this public good!
> We are applying to be apart of GSoC 2023!
> Contributors please start with this document for Getting Started
## ⭐️ Getting Started
Any open source experince will help you prepare for GSoC, so don't worry about what project you try. Look over the [project ideas]().
- Start by letting us know you are interested in [OpenDBM's Open Source Community Survey](https://docs.google.com/forms/d/e/1FAIpQLScKUCdYdK9UTd569IuF3O8Q2A9fXuMJ5z9wXbX4r5yzcwfphQ/viewform?fbzx=-1747756377554914236&pli=1)
- Set up your own development environment
- Start with communicating with the developers. Join the maing list (and upcoming discourse community home)
- Find bugs and report them
- Help with documentation
- Help others
### General Recommendations before getting started
**Here's a few things you should consider to be effective and productive**
- You should have some kind of experience with Python
- You should celebrate this as opportunity to learn something new under guidance of mentorship. Don't be afraid of the unknown!
- You should feel comfortable asking questions
**Here are items to consider before applying**
1. Be comfortable communicating your work in public. All GSoC Contributos are required to post weekly and minimally communite the following:
> - What did you do this week?
> - What is coming up next?
> - Did you get stuck anywhere?
2. You should get a basic understanding of version control with git.
3. You should get a basic understanding of highly used toolkits in the field of digital phenotyping.
> OpenDBM is a compilation of existing but disparate open-source software tools that weve built on top of. All these tools are of course listed in the OpenDBM dependencies but we recommend you check out their github repos. They include the following
> - OpenFace, built on OpenCV, is at the heart of all facial measures and even some of the movement ones.
> - Parselmouth and its reliance on the Praat software library lies behind most of the vocal acoustic measures.
> - DeepSpeech was used for all speech transcription and NLTK is utilized for a lot of language metrics. OpenDBM would not be possible without theseand several otheropen source software packages.
## ⭐️ Application Process
To apply, can look over the [OpenDBM Repo](https://github.com/AiCure/open_dbm) and propose a new idea or pull from the [OpenDBM <> GSOC Ideas 2023]() to create a project proposal that's good for both you and the OpenDBM open source community. If you propose something new make especially sure that you work with our mentor(s) to make sure it's a good fit for the community. Unsolicited, undiscussed ideas are less likely to get accepted.
There are three primary project areas to consider for OpenDBM:
1. Docker
2. Pypi library
3. RESTful Api
Once you've narrowed it down to a project idea or two, use the application checklist to prepare your project proposal. (You can submit up to three proposals, but will only be offered one position if accepted.)
All applications are must be sent through the Google system.
### Short application Checklist
1. Read the links and instructions given on this site
2. Talk with your prospective mentor(s) about what they expect of GSoC applicants and get help from them to refine your project ideas.
3. Make an attempt at a patch. Usually we expect GSoC contributors to fix a bug and have made a pull request (or equivalent). Your code doesn't have to be accepted and merged, but it does have to be visible to the public and it does have to be your own work (mentor help is ok).
4. Write your application and ask for help mentor(s). We have an [application template]() to help you make sure you include all the information we expect. All applications must go through Google's application system; we can't accept any application unless it is submitted there.
- Use a descriptive title and include your project area. Good example: "OpenDBM Docker: add feature to select recording timeframe for processing " Bad example: "My gsoc project"
- Make it easy for your mentors to give you feedback. If you're using Google docs, you can enable comments and submit a "draft" to your mentors. If you're using a format that doesn't accept comments, make sure your email is on the document and don't forget to check for feedback!
6. Submit your application to Google before the deadline. Note that Google does not extend this deadline, so it's best to be prepared early! You can edit your application up until the system closes.
## ⭐️ Tips
### Time Commitment
Contributors are [expected](https://developers.google.com/open-source/gsoc/faq#how_much_time_does_gsoc_participation_take) to work either 350 hours (full-time eqivalent) or 175 hours (part-time equivalent) over the course of the program. The default schedule runs over 3 months and can potentially be spread over a longer period. We do not recommend taking on another full-time internship, job, or schooling during the GSoC period, although a few weeks of overlap is often fine.
### Selection Tips
#### Communicate with mentors
Ask questions directly on in the public opendbm@aicure.com listserve. If conversations advance we'll pull you into a private email This lets. *If selected we will add you to our private channel on the OpenDBM Community Home on the Discourse Platform*
#### Communicate with Community
Google intends this to be a way for new contributors to join the world of open source. The contributors most likely to be selected are those who are engaged with the community and hoping to continue their involvement for more than just a few months. It's more important to be a good community member than it is to be a good coder.
#### Have a learning mindset
Listen and use feedback from others. We value communication and will reject contributors who don't listen to mentors. If selected, we will place special oversight to ensure mentors and contributors are listening to eachother and having fruitful discussion. Remember: the mentors are using their interactions with you to figure out if it's worth their volunteer time to work with you. No one wants to have an intern who doesn't listen, and contributors who don't listen also don't produce code that the open source project can use, so contributors who don't listen don't get hired. Nor do contributors who are arrogant jerks, or who violate the Code of Conduct. Be professional and show that you will take the mentoring relationship seriously.
### What should I do if no one will answers my question
1. Be a ptient.
2. Make sure you're asking in the best place
3. Try giving more information
4. If you're really having trouble getting in touch with your mentors, talk to the python or admins by emailing gsoc-admins@python.org.
## ⭐️ Google Resources
The [GSoC student Guide](https://google.github.io/gsocguides/student/) -- This is a guide written by mentors and former contributors. It covers many questions that most contributors ask us. (Note that it was written when all GSoC contributors were students.) Please read it before asking any questions on the mailing list or IRC if you can! New contributors in particular might want to read the section [Am I Good Enough?](https://google.github.io/gsocguides/student/am-i-good-enough)
Check this out for [Google's list of resources](https://developers.google.com/open-source/gsoc/resources/ ).

View File

@@ -1,6 +1,6 @@
---
id: api-doc
title: OpendDBM API
title: OpenDBM API
---
This section give an overview of OpenDBM APi methods and functions. It is not a requirement to be familiar with all materials to be effective with OpenDBM. You can still benefit from this section as it will give you insights into how we manage things to give added values to this repository.

View File

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="126" height="20" role="img" aria-label="code:coverage: 81%"><title>code:coverage: 81%</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="126" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="91" height="20" fill="#555"/><rect x="91" width="35" height="20" fill="#97ca00"/><rect width="126" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="465" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="810">code:coverage</text><text x="465" y="140" transform="scale(.1)" fill="#fff" textLength="810">code:coverage</text><text aria-hidden="true" x="1075" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="250">81%</text><text x="1075" y="140" transform="scale(.1)" fill="#fff" textLength="250">81%</text></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="126" height="20" role="img" aria-label="code:coverage: 83%"><title>code:coverage: 83%</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="126" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="91" height="20" fill="#555"/><rect x="91" width="35" height="20" fill="#97ca00"/><rect width="126" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="465" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="810">code:coverage</text><text x="465" y="140" transform="scale(.1)" fill="#fff" textLength="810">code:coverage</text><text aria-hidden="true" x="1075" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="250">83%</text><text x="1075" y="140" transform="scale(.1)" fill="#fff" textLength="250">83%</text></g></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="133" height="20" role="img" aria-label="macos:build: failed"><title>macos:build: failed</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="133" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="94" height="20" fill="#555"/><rect x="94" width="39" height="20" fill="#e05d44"/><rect width="133" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><image x="5" y="3" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyBmaWxsPSJ3aGl0ZXNtb2tlIiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+QXBwbGU8L3RpdGxlPjxwYXRoIGQ9Ik0xMi4xNTIgNi44OTZjLS45NDggMC0yLjQxNS0xLjA3OC0zLjk2LTEuMDQtMi4wNC4wMjctMy45MSAxLjE4My00Ljk2MSAzLjAxNC0yLjExNyAzLjY3NS0uNTQ2IDkuMTAzIDEuNTE5IDEyLjA5IDEuMDEzIDEuNDU0IDIuMjA4IDMuMDkgMy43OTIgMy4wMzkgMS41Mi0uMDY1IDIuMDktLjk4NyAzLjkzNS0uOTg3IDEuODMxIDAgMi4zNS45ODcgMy45Ni45NDggMS42MzctLjAyNiAyLjY3Ni0xLjQ4IDMuNjc2LTIuOTQ4IDEuMTU2LTEuNjg4IDEuNjM2LTMuMzI1IDEuNjYyLTMuNDE1LS4wMzktLjAxMy0zLjE4Mi0xLjIyMS0zLjIyLTQuODU3LS4wMjYtMy4wNCAyLjQ4LTQuNDk0IDIuNTk3LTQuNTU5LTEuNDI5LTIuMDktMy42MjMtMi4zMjQtNC4zOS0yLjM3Ni0yLS4xNTYtMy42NzUgMS4wOS00LjYxIDEuMDl6TTE1LjUzIDMuODNjLjg0My0xLjAxMiAxLjQtMi40MjcgMS4yNDUtMy44My0xLjIwNy4wNTItMi42NjIuODA1LTMuNTMyIDEuODE4LS43OC44OTYtMS40NTQgMi4zMzgtMS4yNzMgMy43MTQgMS4zMzguMTA0IDIuNzE1LS42ODggMy41NTktMS43MDEiLz48L3N2Zz4="/><text aria-hidden="true" x="565" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="670">macos:build</text><text x="565" y="140" transform="scale(.1)" fill="#fff" textLength="670">macos:build</text><text aria-hidden="true" x="1125" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="290">failed</text><text x="1125" y="140" transform="scale(.1)" fill="#fff" textLength="290">failed</text></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="143" height="20" role="img" aria-label="macos:build: passed"><title>macos:build: passed</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="143" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="94" height="20" fill="#555"/><rect x="94" width="49" height="20" fill="#97ca00"/><rect width="143" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><image x="5" y="3" width="14" height="14" xlink:href="data:image/svg+xml;base64,PHN2ZyBmaWxsPSJ3aGl0ZXNtb2tlIiByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU+QXBwbGU8L3RpdGxlPjxwYXRoIGQ9Ik0xMi4xNTIgNi44OTZjLS45NDggMC0yLjQxNS0xLjA3OC0zLjk2LTEuMDQtMi4wNC4wMjctMy45MSAxLjE4My00Ljk2MSAzLjAxNC0yLjExNyAzLjY3NS0uNTQ2IDkuMTAzIDEuNTE5IDEyLjA5IDEuMDEzIDEuNDU0IDIuMjA4IDMuMDkgMy43OTIgMy4wMzkgMS41Mi0uMDY1IDIuMDktLjk4NyAzLjkzNS0uOTg3IDEuODMxIDAgMi4zNS45ODcgMy45Ni45NDggMS42MzctLjAyNiAyLjY3Ni0xLjQ4IDMuNjc2LTIuOTQ4IDEuMTU2LTEuNjg4IDEuNjM2LTMuMzI1IDEuNjYyLTMuNDE1LS4wMzktLjAxMy0zLjE4Mi0xLjIyMS0zLjIyLTQuODU3LS4wMjYtMy4wNCAyLjQ4LTQuNDk0IDIuNTk3LTQuNTU5LTEuNDI5LTIuMDktMy42MjMtMi4zMjQtNC4zOS0yLjM3Ni0yLS4xNTYtMy42NzUgMS4wOS00LjYxIDEuMDl6TTE1LjUzIDMuODNjLjg0My0xLjAxMiAxLjQtMi40MjcgMS4yNDUtMy44My0xLjIwNy4wNTItMi42NjIuODA1LTMuNTMyIDEuODE4LS43OC44OTYtMS40NTQgMi4zMzgtMS4yNzMgMy43MTQgMS4zMzguMTA0IDIuNzE1LS42ODggMy41NTktMS43MDEiLz48L3N2Zz4="/><text aria-hidden="true" x="565" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="670">macos:build</text><text x="565" y="140" transform="scale(.1)" fill="#fff" textLength="670">macos:build</text><text aria-hidden="true" x="1175" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="390">passed</text><text x="1175" y="140" transform="scale(.1)" fill="#fff" textLength="390">passed</text></g></svg>

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="108" height="20" role="img" aria-label="test:status: failed"><title>test:status: failed</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="108" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="69" height="20" fill="#555"/><rect x="69" width="39" height="20" fill="#e05d44"/><rect width="108" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="355" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="590">test:status</text><text x="355" y="140" transform="scale(.1)" fill="#fff" textLength="590">test:status</text><text aria-hidden="true" x="875" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="290">failed</text><text x="875" y="140" transform="scale(.1)" fill="#fff" textLength="290">failed</text></g></svg>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="118" height="20" role="img" aria-label="test:status: passed"><title>test:status: passed</title><linearGradient id="s" x2="0" y2="100%"><stop offset="0" stop-color="#bbb" stop-opacity=".1"/><stop offset="1" stop-opacity=".1"/></linearGradient><clipPath id="r"><rect width="118" height="20" rx="3" fill="#fff"/></clipPath><g clip-path="url(#r)"><rect width="69" height="20" fill="#555"/><rect x="69" width="49" height="20" fill="#97ca00"/><rect width="118" height="20" fill="url(#s)"/></g><g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110"><text aria-hidden="true" x="355" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="590">test:status</text><text x="355" y="140" transform="scale(.1)" fill="#fff" textLength="590">test:status</text><text aria-hidden="true" x="925" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="390">passed</text><text x="925" y="140" transform="scale(.1)" fill="#fff" textLength="390">passed</text></g></svg>

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -131,8 +131,8 @@ def docker_command_dec(fn):
def inner(*args, **kwargs):
wsl_cmd, path = wsllize((args[1]))
check_docker_model_exist(wsl_cmd, "dbm-openface")
openface_repo = "opendbmteam/dbm-openface"
check_docker_model_exist(wsl_cmd, openface_repo)
create_docker = wsl_cmd + [
"docker",
@@ -140,7 +140,7 @@ def docker_command_dec(fn):
"-ti",
"--name",
"dbm_container",
"dbm-openface",
openface_repo,
"bash",
]

Binary file not shown.

View File

@@ -0,0 +1,52 @@
### LIBRARIES ------
import pandas as pd
import numpy as np
import os, glob
from siuba import _ as D
import siuba.dply.verbs
import siuba.dply.vector
from opendbm import FacialActivity #needed with docker?
from opendbm import Movement as mv #needed with docker?
from opendbm import VerbalAcoustics as va
from opendbm import Speech as sp
### FINDING DATASETS ----
# find mp4 files -- assume in sample_data folder
str_ext = '*_actor.mp4'
list_mp4 = glob.glob(str_ext)
path_file = list_mp4[0]
### VERBAL ACOUSTICS -----
#fit the model
model_va = va()
model_va.fit(path_file)
#model_va = va().fit(pathfile) # one-line alternative
var_intensity = model_va.get_audio_intensity()
# get audio intensity
df_va_intensity = var_intensity.to_dataframe()
print(df_va_intensity)
# get attributes from audio intesity
va_inten_mean = var_intensity.mean()
### Movement
model_mv = mv()
model_mv.fit(path_file) # Requires Docker
#get head movement
var_headmv = model_mv.get_head_movement()
#convert head movement to dataframe
df_headmv = var_headmv.to_dataframe()
#note can check to see headmovement in jupyter:variables
# this can be helpful for QC to see if head movement was captured.
# wheh face is not detected no movement is captured and return is array of nan

View File

@@ -1,4 +1,3 @@
# Copyright (C) 2012-2022 james jameson
if __name__ == "__main__":