Skip to main content

title: YAMS emoji: 🍠 colorFrom: purple colorTo: purple sdk: gradio sdk_version: 5.15.0 app_file: yams/main.py pinned: false license: mit

YAMS

Yet Another Motionsense Service utility

Code | PyPI | 🤗 Demo (UI only)

Quickstart

Pre-compiled version

  • Download the latest release from here

Development

  1. (optional) create a dedicated conda environment
    • conda create -n yams python=3.12
    • conda activate yams
  2. Clone this repository
    • git clone https://github.com/SenSE-Lab-OSU/YAMS.git
    • cd yams
  3. Install dependencies
    • pip install -r requirements.txt
  4. Config liblsl
    • conda install -c conda-forge liblsl
  5. Lauch YAMS
    • python -m yams

(Deprecated) Windows

Python 3.12 or newer is needed

  1. Download setup scripts
  2. Run the installation script
    • Run the script by double-click the install.bat file
    • The script will perform any necessary setup
  3. Start the app
    • by double-click the start_yams.bat file
    • Once the initialization is completed, you will see a messge similar to: * Running on local URL: http://127.0.0.1:7860
  4. Access the application

(Deprecated) MacOS / Linux

  1. Download scripts/unix to a desired location
  2. Run run.sh to install and start the app

General usage

Download onboard data

Refer to Extract onboard data

Extract raw data

Refer to Data Extraction Feature

Emergency stop

Terminating data collection is also available in YAMS web app under bluetooth scanner - collection control - stop

To halt all on-going collection on the MotionSenSE wristbands,

  • On windows, go to your folder where the setup scripts are located as in Quickstart-Windows part
  • Locate and double-click emergency_stop.bat
  • Wait until all operations are completed

Installation

  • pip install -U yams-util
  • python -m yams

Development guide

  • Clone the repository
    • git clone https://github.com/SenSE-Lab-OSU/YAMS.git
  • Install dependencies
    • pip install -r requirements.txt
  • Launch the application
    • python -m yams
  • Visit http://127.0.0.1:7860 (by default, check on-screen prompt)

Build guide

  • Install pyinstaller via pip install pyinstaller
  • Create .spec by pyi-makespec --collect-data=gradio_client --collect-data=gradio --collect-data=safehttpx --collect-data=groovy --onefile app.py
  • Manually add the following in a = analysis ...
    module_collection_mode={
        'gradio': 'py',  # Collect gradio package as source .py files
    },
  • Build the app: pyinstaller app.spec

MacOS

pyi-makespec --collect-data=gradio_client --collect-data=gradio --collect-data=safehttpx --collect-data=groovy --onefile --osx-bundle-identifier 'com.yams' --icon yams/resources/icons/yams.icns app.py

Instructions

(advanced) running data extraction in command line

Run from the project root:

python -m yams.data_extraction -i "data_in" -o "data_out"

All options:

Flag Default Description
-i, --in_dir (required) Directory containing .bin files
-o, --out_dir ./ Output directory
--save_format csv Output format: csv or pickle
--ignore_id off Skip subject/session ID parsing; use raw filenames
--legacy_fs off Use 25 Hz clock for CDCT (uncommon, old devices)
--force_new_format off Force v4.7.0+ binary layout regardless of uuid.txt version
--mode dir dir: single folder of .bin files; batch: folder of .zip archives

Examples:

# Basic extraction
python -m yams.data_extraction -i "data_in" -o "data_out"

# Save as pickle, skip ID parsing
python -m yams.data_extraction -i "data_in" -o "data_out" --save_format pickle --ignore_id

# Force new format on a device reporting an older version
python -m yams.data_extraction -i "data_in" -o "data_out" --ignore_id --force_new_format

# Batch extract a folder of zip archives
python -m yams.data_extraction -i "data_in" --mode batch

The device version is read automatically from uuid.txt in the input directory. If v4.7.0+, the new binary layout (uint32 PPG, quaternion IMU, 32-bit counter at 512 Hz) is used; otherwise the legacy layout is used.

Roadmap

  • Device data transfer
  • Device data post processing
    • format conversion
    • visualization
  • simple data collection utilities
  • LSL support
  • Auto reconnect
  • Selected file download
  • Advanced device monitoring [ ] global state: active connection, active outlet, ctl status [ ] BAT monitoring [ ] storage monitoring

Acknowledgement

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yams_util-1.4.1.tar.gz (25.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yams_util-1.4.1-py3-none-any.whl (26.3 kB view details)

Uploaded Python 3

File details

Details for the file yams_util-1.4.1.tar.gz.

File metadata

  • Download URL: yams_util-1.4.1.tar.gz
  • Upload date:
  • Size: 25.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for yams_util-1.4.1.tar.gz
Algorithm Hash digest
SHA256 be32cadd69f649eb5e0241c8dc557c3036fcdea1040a472c6bf8942aaa55d7ba
MD5 e7dfec8a4da5302b977e1616d0ceab40
BLAKE2b-256 731a7d3019514a37e9f9ed2056b2928acb7451efba32a0bd0c1b89d15d4ee991

See more details on using hashes here.

Provenance

The following attestation bundles were made for yams_util-1.4.1.tar.gz:

Publisher: python-publish.yml on SenSE-Lab-OSU/YAMS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file yams_util-1.4.1-py3-none-any.whl.

File metadata

  • Download URL: yams_util-1.4.1-py3-none-any.whl
  • Upload date:
  • Size: 26.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for yams_util-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6ccbdf203cfc5304b6d1d273215236c820e9e0d25814955bea4a833f9d58755a
MD5 fa0e2c5f405edc6f2283bfe8ef734487
BLAKE2b-256 2ad309ac3d81a822c6547887b4f37327c4f1c841f285350ff2db13140eb0499e

See more details on using hashes here.

Provenance

The following attestation bundles were made for yams_util-1.4.1-py3-none-any.whl:

Publisher: python-publish.yml on SenSE-Lab-OSU/YAMS

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

1.6.0

2 files

1.5.0

2 files

This release

1.4.1 This release

2 files

1.3.0

2 files

1.2.3

2 files

1.2.2

2 files

1.2.1

2 files

1.2.0

2 files

1.1.2

2 files

1.1.1

2 files

1.1.0

2 files

1.0.0

2 files

0.3.0

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page