NEWS | R Documentation |
Now R version 4.0 compatible
Part 1 Clipping detection expanded: If any value in block more than 150 percent dynamic range then ignore entire block.
Part 2 report now able to handle changing variable count due to missing data
Part 2 L5M5 better able to handle small qwindow intervals
Part 3 HDCZA algorithm expanded to be able to detect daysleepers
Part 3 various improvements to qc plots.
Part 5 now also stores full and cleaned output
Part 5 now better handles missing days in part 4 output.
Part 5 behavioral class SIB removed from daytime
Part 5 time series export more user-friendly.
Part 5 function code split up in 7 new functions.
Part 4 + 5 argument data_cleaning_file added.
Part 4 + 5 output variable names improved and documented in vignette
Numunpack function moved back to c++
Various updates to visualreport (plot5 function)
External function embedding feature added
We now consistently refer to ID (not id) and calendar_date, spelling was inconsistent.
Vignette now has documentation on sleep and time-use analysis.
Metric ENMOa now facilitated for MVPA calculation
Bug fixed with part4 daysleeper handling
Part5 WW window calculation improved, first day now uses sleeplog or HDCZA algorithm estimate, and last day is ignored if no sleep estimates are available. This also affects csv exports by argument save_ms5rawlevels.
Added explanation to vignette on how to use published cut-points.
Axivity AX6 (acc + gyro) in cwa format now supported for file reading, actually using the gyro data for feature calculation is future work. In the mean time, gyro signal will be ignored by the rest of GGIR.
Axivity AX3 acc data in cwa format can now also be read if dynamic range is not 8g. Previously this was not possible.
Fixed bug related to visual report generation when qwindow is set to non-default value.
Added way to handle Actigraph files which start with several days of zeros which complicates the auto-calibration.
Default for desiredtz to timezone of machine.
Fixed bug that emerged in previous version with GENEActiv .bin data not being processed by g.getmeta for some files.
read.myacc.csv is now able to resample data with irregular sample rates and handle timestamps in character format.
function resample can now handle any matrix size, previous only 3 columns.
Fixed bug when using multiple non-angle metrics in part1 and trying to calculate 1to6am average metric value in part 2.
Expanded Actigraph date format recognition ability.
visualisationreport (function g.plot5) enhanced with colour coding for activity classes.
Fixed bug in sleep period time recognition for first day of measurement.
Fixed functionality to supply calibration coefficients file to backup.cal.coef.
Fix OSx flavor not being released on CRAN in previous version.
Upgrades to foreach loop to ease package maintenance
Documentation part4 expanded to clarify difference between full and cleaned report.
Non-wear detection now possible at 1 minute resolution, previously 5 minute.
Function read.myacc.csv now able to utilize 3rd party wear detection.
Device serial number recognition in Axivity cwa files fixed
New GitHub release, because previous version did not install.
Fixed bug introduced in version 1.10-1 in the conversion from numeric to character sleep times
Dependencies of dependencies removed from the DESCRIPTION file
Fixed 1to6am variables, which was wrong in version 1.10-1
Added functionality to handle accelerometer data from any accelerometer brand stored in csv files via read.myacc.csv. Pass on the arguments of this function to g.shell.GGIR to use this functionality.
Added reference to new GGIR paper to the documentation
Configuration file option now added to g.shell.GGIR and documented in vignette
metric lfen added (low-pass filter signels followed by Euclidean norm)
issues fixed with passing on of hb and lb arguments
argument backup.cal.coef can now also handle data_quality_reports.csv files
part 1 now automatically uses previously generated calibration coefficients if the datafile was previously processed, see documentation g.part1 for further details.
Enabled multiple values for argument winhr, by which part2 can now calculated for example L3M3, L5M5, L6M6, L10M10 all in one go. Further, option added (qM5L5) to extract percentiles (quantiles) from the value distribution corresponding to these windows.
Moved IVIS calculation to seperate function, and split up function g.analyse.
Now possible to specify time windows that need to be ignored for imputation, see TimeSegments2ZeroFile.
Default value for argument mode changed from mode = c(1,2) to mode = 1:5, to perform all the parts.
Checks added for user write and read access permission, and subsequent warnings given..
Parts 1, 2, 3, and 5 can now use multi CPU cores which speeds up the processing.
Argument minimumFileSizeMB added to g.part1 to aid filtering out too small data files.
Added functionality to work with studies where accelerometer is configured in one timezone and used in other timezone. Only functional for AX3 cwa data at the moment. See argument 'configtz'.
Sleep estimation is now skipped if a day only has one sustained inactivity bout
Arguments ignorenonwear default value changed to TRUE and def.noc.sleep default changed to 1 in line with literature.
Fixed AX3 csv format starttimestamp recognition
Part5 csv export now also includes class labels (previously only class numbers).
Fixed part5 output midnight-midnight window when monitor not worn during first days.
Fixed assumption that when using argument idloc=2 the ID has a letter at the end, and automatically removes the last value in the index. The code now first checks for this assumption.
Update vignette with a more elaborate explanation of the optional arguments to g.shell.GGIR.
functionality storefilestructure should now store filestructure in output of part 2, 4 and 5.
filelocationkey.csv that was previously written by storefilestructure was redundant and removed.
sessioninfo storage improved.
Fixed bug that caused part2 to provide incorrect window specific estimates on first day. of measurement if day is incomplete (not 23, 24 or 25 hours).
Calibrate function now better able to handle files with more than a week of data, where auto-calibration struggles to find enough sphere data in the first week.
Fixed part5 output midnight-midnight window when monitor not worn during first days.
Part4 handling of clocktime 9am corrected in addition to fix from version 1.7-1.
Fixed bug for Actigraph csv header recognition when column 2 and 3 are NA (prevented processing before)
Fixed bug in g.report.part5 in the calculation of the total number of valid days per person.
Fixed bug that caused part5 to struggle with timezones west of greenwhich time.
desiredtz added as explicit argument to g.inspectfile, g.cwaread, and g.dotorcomma.
Fixed bug in pageindexing in g.readaccfile when machine runs out of memory.
Fixed bug in pageindexing in Actigraph csv files (10 rows in raw data skipped every block (day)) of data.
Added more informative warning message in g.report.part2 if file cannot be read.
Fixed bug in scenario when person is daysleeper and wakingup time occurs before noon, and 12 hours too early.
Fixed bug re. storefolderstructure=TRUE causing 2 variables to drop in g.report.part4 if storefolderstructure=TRUE.
g.intensitygradient enabled to handle absense of data.
tidied up some of the redundant or even confusiong information printer to the console
Fixed order of Nbouts output in g.part5 was not consistent with bout duration.
Functionality added to read AX3 Axivity csv files that have the following characteristics: Raw data in g-units, not resampled, and with timestamps stored in the first column.
Fixed bug that caused the date of the last measurement day in part5 output to be one day ahead if argument dayborder=12.
Part5 struggled to process measurements with more than 40 days, now fixed.
g.getstarttime can now also handle dates in Actigraph csv-file headers that are dot separated, e.g. 20.05.2016, before it only handled 20-05-2016 and 20/05/2016.
Part4 handling of clocktime 9am corrected.
Filename identification in part5 improved when saving raw level data.
Fixed ability to read wav file header when shorter than expected.
Fixed issue with CWA read functionality causing some files not to be completely read
Link with Zenodo for doi generation removed.
Broken url fixed in vignette.
Report part 4: Count of available nights with accelerometer data fixed
Report part 4: NA and NaN values replaced by empty cells like in other reports
Intensity gradient analysis added to part2 output according to Rowlands et al. MSSE 2018, doi: 10.1249/MSS.0000000000001561
Documentation on part4 output variables improved.
Providing incorrect value of sleeplogidnum in part4 should now provide a more informative error message
Added functionality to handle timestamps that start with the year.
Fixed timezone dependency of g.analyse (affected only order of columns), g.part5 (affected time detection), and consequently test_chainof5parts.R
Read functionality for Actigraph csv files speeded up by replacing read.csv by data.table::fread
Argument qwindow is now able to handle input vectors longer than 2 and will derive all part2 variables for each time window that can be defined from the values of qwindow, e.g. value =c(0,8,24) will analyse the windows: 0-8, 8-24 and 0-24 hour.
Argument L5M5window depricated because argument qwindow now defines the window over which L5M5 analysis is performed.
Argument winhr is now reflected in g.analyse/g.part2 output variable names, previously this variable name was hardcoded as L5M5, even if winhr was not 5.
Part2 output variable names updated to be more consistent in structure and more explicit about the timewindow over which they are calculated. The variables that were calculated over the full recording (using diurnal normalization) now have the extension "fullRecording", this in contrast to the variables that are only calculated from measurement days with 'enough' valid data.
Fixed calculation of N valid WEdays and Nvalid WKdays in part2 that was wrong since version 1.5-21. It counted all days and did not exclude days with insufficient amount of data.
Fixed warning message in test of g.part5.
output variable acc_timeinbed renamed to acc_SptDuration to avoid confusion with terminology used in supporting papers, which are about SPT (sleep period time) detection and not about time in bed detection.
output variable acc_dur_noc renamed to acc_SleepDurationInSpt to improve clarity of variable name relative to acc_SptDuration
Variable names ENMO accidentatly disappeared from g.analyse output in 1.5-23, this has now been reversed.
Fixed issue in g.part5 in handling the last day of measurement when using 'MM' windows and dayborder not equal to 0 (midnight) sometimes resulting in the last day longer than 25 hours.
Fixed error message in g.part5 that occurs when calculating L5M5 when day is shorter than L5M5 time window.
Unit tests speeded up by using a smaller test file.
g.part4 bug fixed that was introduced in version 1.5-21 regarding the handling of daysleepers (people who wake up after noon) causing sleep estimates to be zero.
g.part5 is now able to generate summary from all measurment days (thanks Jairo).
MM results in g.part5 now correctly stores onset and waking for single date per row.
Various checks added to g.part4 to ensure measurements in all shapes and size can be processed.
minor improvements to documentation g.part5
size of example data and vignette images reduced to reduce package size
Improved handling of day saving time in g.part3 and g.part4 within the two nights in a year when the clock changes (DST was already correctly handled in the rest of the year)
Algorithm HDCZA is now the default algorithm to use, if a sleeplog is used and an entry is missing for a particular night.
pdf generation in part 3 is now optional (argument do.part3.pdf), this may be useful for slightly speeding up data processing as it takes a few second to generate the plot.
test added for g.getbout function.
bug fixed in timestamp recognition for object timebb in function g.part5
SPT-window detection now updated with a constrained threshold to make it more robust against between accelerometer brand differences. This is the approach used for our PSG in <https://www.biorxiv.org/content/early/2018/02/01/257972>
cwaread issue #57 fixed
SPT-window detection included (work in progress)
cpp code fixed which did not compile anymore
a machine specific function test removed following feedback from CRAN maintainers
Fixed bug introduced in 1.5-1: large window size of 3600 seconds was accidentally hardcoded when the g.readaccfile function was added to GGIR in version 1.5-1
Codecov testing added and badge added to the README file
Functions added to create dummy accelerometer file (csv) and dummy sleeplog (csv), needed for testing
Bug fixed in g.wavread to recognize .wav extension file header for files with alternative header size
Default IVIS_epochsize_seconds parameter updated from 30 to 3600
g.part1 messages on the consolo are now condensed printing only the number of the blocks loaded separated by spaces rather than new lines
Split g.part5 function into multiple smaller functions
Replace hard-coded "Europe/London" in g.part5 by desiredtz, to make the function work for users outside the UK
Data frame output from g.part5 is now tidied up by removing empty rows and columns generated
Calculation of mean amplitude deviation (MAD) is now implemented in g.part1 by the argument do.mad
Percentiles and levels in g.part2 are now calculated for all the acceleration metrics selected
g.part3, g.part4 and g.part5 are now independent on metric ENMO to work, argument acc.metric allows the user to select which metric to use to describe behavior
Argument dayborder is now included in g.part5 to consider the whole measurement in case the protocol starts after midnight
Jairo Migueles added to list of contributors
Date format recognition improved for Actigraph csv files
g.inspectfile now also functional with cwa data
option added to enforce dynamic range with argument dynrange
vignette expanded
vignette expanded
Bugs fixes in relation to new cwa-read functionality c++ routine registration
Documentation added for all underlying functions
vignette added
Bugs fixes in relation to new cwa-read functionality
Bugs fixes in correct number of days recognition in part5
Removed teLindert2013 metric, because it was not used and not verified
Split g.getmeta function into multiple smaller functions
Added IS and IV variables to g.analyse (still in explorative version)
bug fixed related to wav file read errors
function g.cwaread added (credits to E. Mirkes) for reading Axivity .cwa-format data. g.shellGGIR will automatically use this function when input data has .cwa extension
bug fixed related to for GENEactiv starttime recognition which was introduced in version 1.2-11
g.part5 documentation added on its output
bug fixed in functionlity to process only specific days in measurement (credits to J Heywood)
bug fixed in midnight recognition in g.part5
improvement to handling of measurements that start a few minutes before midnight (credits to E Mirkes)
bug fixed related processing files shorter than 1 day, introduced in previous version
documentationa added for Axivity wav-format data
start made with implementing code testing functionality using testthat and covr
documentation improved for argument def.noc.sleep in function g.part4
g.part5 added. g.part5 merges the output from the first four parts
Functionality added to read Axivity wav-format files with acceleration in first three channels. No documentation added yet until I have more confirmation that it works well
Bug fixed related to MVPA variable. The bug was a result of the updates in version 1.2-10
Changed function argument 'mvpa.2014' into 'bout.metric' across the package in preparation for a central defintion of bouts for future GGIR version which will not only provide bout calculations for MVPA but also for inactivity. Further, I added function g.getbout to improve transparency about the bout calculations
Updated documentation for function g.analyse to clarify different bout metric definitions
Improvements to the functionality to only process specific days from a long accelerometer file using the argument selectdaysfile
Timestamps are now in ISO 8601 format. I have updated the code such that it can still handle old timestamp format, but newly processed files will produce timestamps in the ISO 8601 format. The practical difference is that it will include a numeric timezone indicator.
Bugs fixed in data selection in g.getmeta function. In the old code it tended to drop the last 30-45 minutes of a file.
Added more optional features to be generated by g.getmeta, including rolling medians of the acceleration signals.
Updated documentation for function g.analyse to clarify different mvpa bout definitions
mvpa.2014 = TRUE turned back on again (was disable in last version)
mvpa.2014 TRUE/FALSE was swapped, FALSE is now the default
mvpa.2014 = TRUE disabled
Modified warning message in relation to the change in MVPA bout defintion
Accelerometer non-wear time is now also reported in the output of part 4
Part 1 is now able to only process specific days of a measurement via argument selectdaysfile. This is useful when measurement lasts for a week and the participant is instructed to only wear the accelerometer on one or two specific days.
Argument mvpa.2014 and closedbout added to function g.analyse. The calculation of MVPA (moderate and vigorous physical activity) has been available since 2014. This calculation has been improved, but the user has the option to continue using the old calculation.
Bug fixed in the loading of data files with (very) large amounts of data
Bug fixed in starttime allocation for measurements starting in the 15 minutes before midnight
Literature reference for sleep detection updated
Argument backup.cal.coef now with improved feedback if something goes wrong
Report generation for part 4 much faster now
Bug fixed in part 4 in assignment of dayname when a person sleeps during the day
g.shell.GGIR now capable of handling minimal input argument specifications
Console output from part 3 and 4 more compact now
Package expanded with functions for detecting sleep (g.part3 and g.part4)
Additional bugs fixs related to dealing with csv-format data from the Actigraph accelerometer brand
g.part2 now also stores its output as milestone data just like g.part1. This to facilitate parallel processing of large amounts of data files on clusters.
The orginal report generation functionality in g.part2 has now been moved to shell function g.shell.GGIR because part3, 4 and 5 which are scheduled for later this year will combine milestone data from multiple analysis parts. It therefore, is more logical to control all report generation from the top level in the function hierarchy (g.shell.GGIR).
g.part1 now comes with the option to provide backup calibration coefficients in case auto-calibration is unsuccessful. This function is primarily designed for studies with short lasting experiments.
g.part2 now has the option to export epoch values to a csv-file. Note that these same epoch values are also stored in the .RData milestone file from part2. The export option is mainly to ease access to epoch level data outside the R environment.
g.shell.GGIR now offers the option to overwrite previously generated milestone data with variable 'overwrite'. The default setting (FALSE) is still to skip previously analysed files, which is intended to avoid having to do the same analyses twice after an interruption. However, overwriting previously generated milestone data could be useful when modifications are being made to the input arguments.
g.shell.GGIR now offers the option to record the folderstructure in which an accelerometer file is located, especially useful for studies where accelerometer files are stored hierarchally in line with the study design.
Additional bugs fixs related to recognising data format in Actigraph data
Angle variables are now extracted based on 5 second rolling median as opposed to 501 sample rolling median
Package expanded with functions: g.part1, g.part2, and g.shell.GGIR. These shell functions should help movement scientists to utilize the package without too much prior knowledge about R
Additional bugs fixs related to recognising data format in Actigraph data
Package expanded with axis angle metrics
Package expanded with metric for replicating teLindert2013 counts, see g.getmeta
Package expanded with metric ENMOa, see function tutorial g.getmeta
Bug fixed related to recognising date format in csv-file header from Actigraph accelerometer brand
Literature reference added to function g.calibrate
function g.getmeta expanded with argument 'chunksize'
Implemented functionality for csv-fromat data from GENEActiv and Actigraph. It seems to work for the test files I have, more testing may be necessary
Cleaned up some of the NaN and NA output to aim for consistent annotation of missing data
Fixed bug in modified g.analyse in version 1.0-2
Expanded g.analyse with estimates of time spent in moderate and vigorous activity (a construct popular among physical activity researchers)
Re-named a number of variables in the output from g.analyse to be more friendly for re-use in stata or sas. The majority of variable names are now shorter and do not include spaces, dots or commas
Fixed Linux-Windows sensitivty in g.getmeta. Certain damaged files can only be read with mmap.load set to FALSE in package GENEAread. Function g.getmeta in GGIR catches this problem and turns mmap.load to FALSE if necessary. This catch worked well under Linux, but not for R in Windows. I have now fixed this
Added examples
Expanded documentation for function g.analyse
Fixed bug in extraction of starttime that caused the starttime to be truncated to 00:00:00 in a fraction of measurements.
Fixed bug in extract of temperature in function g.calibrate
Deleted three explorative variables that were only extracted in g.analyse if argument doangle was set to TRUE in function g.getmeta. A number of bugs and the lack of referable journal publications made me decide to remove these variables while working on them. I intend on re-releasing these variables during the course of 2014. Please contact me if this causes you problems
This was the first version