Skip to main content

This library provides functions to analyzes food logging data.

Project description

TREETS

Time Restricted Eating ExperimenTS.

Link to the documetation page: https://qiwenzz.github.io/treets/core.html

Install

pip install treets

Example for high level data analysis on the study with experimental phases

import treets.core as treets
import pandas as pd

Take a brief look on the food logging dataset and the reference information sheet

treets.file_loader('data/col_test_data','yrt*').head(2)
read the csv files in data/col_test_data folder successfully.
Unnamed: 0 original_logtime desc_text food_type PID
0 0 2021-05-12 02:30:00 +0000 milk b yrt1999
1 1 2021-05-12 02:45:00 +0000 some medication m yrt1999
pd.read_excel('data/col_test_data/toy_data_17May2021.xlsx').head(2)
mCC_ID Participant_Study_ID Study Phase Intervention group (TRE or HABIT) Start_Day End_day Eating_Window_Start Eating_Window_End
0 yrt1999 2 S-REM TRE 2021-05-12 2021-05-14 00:00:00 23:59:00
1 yrt1999 2 T3-INT TRE 2021-05-15 2021-05-18 08:00:00 18:00:00

make the table that contains extra analytic information that we want

df = treets.summarize_data_with_experiment_phases(treets.file_loader('data/col_test_data','yrt*')\
                      , pd.read_excel('data/col_test_data/toy_data_17May2021.xlsx'))
read the csv files in data/col_test_data folder successfully.
Participant yrt1999 didn't log any food items in the following day(s):
2021-05-18
Participant yrt2000 didn't log any food items in the following day(s):
2021-05-12
2021-05-13
2021-05-14
2021-05-15
2021-05-16
2021-05-17
2021-05-18
Participant yrt1999 have bad logging day(s) in the following day(s):
2021-05-12
2021-05-15
Participant yrt1999 have bad window day(s) in the following day(s):
2021-05-15
2021-05-17
Participant yrt1999 have non adherent day(s) in the following day(s):
2021-05-12
2021-05-15
2021-05-17
df
mCC_ID Participant_Study_ID Study Phase Intervention group (TRE or HABIT) Start_Day End_day Eating_Window_Start Eating_Window_End phase_duration caloric_entries ... logging_day_counts %_logging_day_counts good_logging_days %_good_logging_days good_window_days %_good_window_days outside_window_days %_outside_window_days adherent_days %_adherent_days
0 yrt1999 2 S-REM TRE 2021-05-12 2021-05-14 00:00:00 23:59:00 3 days 7.0 ... 3.0 1.00 2.0 0.666667 3.0 1.00 0.0 0.0 2.0 0.666667
1 yrt1999 2 T3-INT TRE 2021-05-15 2021-05-18 08:00:00 18:00:00 4 days 8.0 ... 3.0 0.75 2.0 0.500000 1.0 0.25 2.0 0.5 1.0 0.250000
2 yrt2000 3 T3-INT TRE 2021-05-12 2021-05-14 08:00:00 16:00:00 3 days 0.0 ... 0.0 0.00 0.0 0.000000 0.0 0.00 0.0 0.0 0.0 0.000000
3 yrt2000 3 T3-INT TRE 2021-05-15 2021-05-18 08:00:00 16:00:00 4 days 0.0 ... 0.0 0.00 0.0 0.000000 0.0 0.00 0.0 0.0 0.0 0.000000
4 yrt2001 4 T12-A TRE NaT NaT NaN NaN NaT NaN ... NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN

5 rows × 26 columns

df.iloc[0]
mCC_ID                                           yrt1999
Participant_Study_ID                                   2
Study Phase                                        S-REM
Intervention group (TRE or HABIT)                    TRE
Start_Day                            2021-05-12 00:00:00
End_day                              2021-05-14 00:00:00
Eating_Window_Start                             00:00:00
Eating_Window_End                               23:59:00
phase_duration                           3 days 00:00:00
caloric_entries                                      7.0
mean_daily_eating_window                           13.75
std_daily_eating_window                        11.986972
earliest_entry                                       4.5
2.5%                                                 NaN
97.5%                                                NaN
duration mid 95%                                     NaN
logging_day_counts                                   3.0
%_logging_day_counts                                 1.0
good_logging_days                                    2.0
%_good_logging_days                             0.666667
good_window_days                                     3.0
%_good_window_days                                   1.0
outside_window_days                                  0.0
%_outside_window_days                                0.0
adherent_days                                        2.0
%_adherent_days                                 0.666667
Name: 0, dtype: object
df.iloc[1]
mCC_ID                                           yrt1999
Participant_Study_ID                                   2
Study Phase                                       T3-INT
Intervention group (TRE or HABIT)                    TRE
Start_Day                            2021-05-15 00:00:00
End_day                              2021-05-18 00:00:00
Eating_Window_Start                             08:00:00
Eating_Window_End                               18:00:00
phase_duration                           4 days 00:00:00
caloric_entries                                      8.0
mean_daily_eating_window                        8.666667
std_daily_eating_window                         8.504901
earliest_entry                                       7.5
2.5%                                                 NaN
97.5%                                                NaN
duration mid 95%                                     NaN
logging_day_counts                                   3.0
%_logging_day_counts                                0.75
good_logging_days                                    2.0
%_good_logging_days                                  0.5
good_window_days                                     1.0
%_good_window_days                                  0.25
outside_window_days                                  2.0
%_outside_window_days                                0.5
adherent_days                                        1.0
%_adherent_days                                     0.25
Name: 1, dtype: object

Example for data analysis using time restricted eating experiments without experiment phases

take a look at the original dataset

df = treets.file_loader('data/test_food_details.csv')
df.head(2)
Unnamed: 0 ID unique_code research_info_id desc_text food_type original_logtime foodimage_file_name
0 1340147 7572733 alqt14018795225 150 Water w 2017-12-08 17:30:00+00:00 NaN
1 1340148 411111 alqt14018795225 150 Coffee White b 2017-12-09 00:01:00+00:00 NaN

preprocess the data to have extra basic features

df = treets.load_public_data(df,'unique_code', 'original_logtime',4)
df.head(2)
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}
</style>
Unnamed: 0 ID unique_code research_info_id desc_text food_type original_logtime date local_time time week_from_start year
0 1340147 7572733 alqt14018795225 150 Water w 2017-12-08 17:30:00+00:00 2017-12-08 17.500000 17:30:00 1 2017
1 1340148 411111 alqt14018795225 150 Coffee White b 2017-12-09 00:01:00+00:00 2017-12-08 24.016667 00:01:00 1 2017

do a brief annalysis

df = treets.summarize_data(df, 'unique_code', 'local_time', 'date')
df.head(2)
<style scoped> .dataframe tbody tr th:only-of-type { vertical-align: middle; }
.dataframe tbody tr th {
    vertical-align: top;
}

.dataframe thead th {
    text-align: right;
}
</style>
unique_code num_days num_total_items num_f_n_b num_medications num_water first_cal_avg first_cal_std last_cal_avg last_cal_std eating_win_avg eating_win_std good_logging_count first_cal variation (90%-10%) last_cal variation (90%-10%) 2.5% 95% duration mid 95%
0 alqt1148284857 13 149 96 19 34 7.821795 6.710717 23.485897 4.869082 15.664103 -1.841635 146 2.966667 9.666667 4.535000 26.813333 22.636667
1 alqt14018795225 64 488 484 3 1 7.525781 5.434563 25.858594 3.374839 18.332813 -2.059723 484 13.450000 3.100000 4.183333 27.438333 23.416667
df.iloc[0]
unique_code                      alqt1148284857
num_days                                     13
num_total_items                             149
num_f_n_b                                    96
num_medications                              19
num_water                                    34
first_cal_avg                          7.821795
first_cal_std                          6.710717
last_cal_avg                          23.485897
last_cal_std                           4.869082
eating_win_avg                        15.664103
eating_win_std                        -1.841635
good_logging_count                          146
first_cal variation (90%-10%)          2.966667
last_cal variation (90%-10%)           9.666667
2.5%                                      4.535
95%                                   26.813333
duration mid 95%                      22.636667
Name: 0, dtype: object
df.iloc[1]
unique_code                      alqt14018795225
num_days                                      64
num_total_items                              488
num_f_n_b                                    484
num_medications                                3
num_water                                      1
first_cal_avg                           7.525781
first_cal_std                           5.434563
last_cal_avg                           25.858594
last_cal_std                            3.374839
eating_win_avg                         18.332813
eating_win_std                         -2.059723
good_logging_count                           484
first_cal variation (90%-10%)              13.45
last_cal variation (90%-10%)                 3.1
2.5%                                    4.183333
95%                                    27.438333
duration mid 95%                       23.416667
Name: 1, dtype: object

Project details


Download files

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

Source Distribution

treets-1.0.1.tar.gz (31.7 kB view hashes)

Uploaded Source

Built Distribution

treets-1.0.1-py3-none-any.whl (148.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page