## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
library(knitr)

## ----pdfplot,  echo=F, out.width="700px", out.height="700px"------------------
include_graphics("Figure1.workflow.pdf")  

## ----eval=FALSE---------------------------------------------------------------
# install.packages("mMARCH.AC", dependencies = TRUE)

## ----eval=FALSE---------------------------------------------------------------
# library(mMARCH.AC)
# create.shell()

## ----eval=FALSE---------------------------------------------------------------
# 
# argv = commandArgs(TRUE);
# print(argv)
# print(paste("length=",length(argv),sep=""))
# mode<-as.numeric(argv[1])
# print(c("mode =", mode))
# # (Note) Please remove the above lines if you are running this within R console
# #        instead of submitting jobs to a cluster.
# 
# #########################################################################
# # (user-define 1) you need to redefine this according different study!!!!
# #########################################################################
# # example 1
# filename2id.1<-function(x)  unlist(strsplit(x,"\\."))[1]
# 
# #  example 2 (use csv file =c("filename","ggirID"))
# filename2id.2<-function(x) {
#   d<-read.csv("./mMARCH.AC/inst/extdata/example/filename2id.csv",head=1,stringsAsFactors=F)
#   y1<-which(d[,"filename"]==x)
#   if (length(y1)==0) stop(paste("Missing ",x," in filename2id.csv file",sep=""))
#   if (length(y1)>=1) y2<-d[y1[1],"newID"]
#   return(as.character(y2))
# }
# 
# 
# #########################################################################
# #  main call
# #########################################################################
# 
# mMARCH.AC.shell<-function(mode,filename2id=NULL){
# 
# library(mMARCH.AC)
# packageVersion("mMARCH.AC")
# #  ?mMARCH.AC.maincall  # run help to see all argumengts
# 
# #########################################################################
# # (user-define 2) Fill in parameters of your ggir output
# ##########################################################################
# 
# currentdir =
# studyname =
# bindir =
# outputdir =
# setwd(currentdir)
# 
# rmDup=FALSE   # keep all subjects in mMARCH.AC
# PA.threshold=c(50,100,400)
# part5FN="WW_L50M100V400_T5A5"
# epochIn = 5
# epochOut =  60
# use.cluster = FALSE
# log.multiplier = 9250
# QCdays.alpha = 7
# QChours.alpha = 16
# QCnights.feature.alpha = c(0,0,0,0)
# DoubleHour= "average"
# QC.sleepdur.avg=NULL
# QC.nblocks.sleep.avg=NULL
# useIDs.FN=NULL
# Rversion="R"
# desiredtz="US/Eastern"
# RemoveDaySleeper=FALSE
# NfileEachBundle=20
# holidayFN=NULL
# trace=FALSE
# #########################################################################
# #   remove duplicate sample IDs for plotting and feature extraction
# #########################################################################
# if (mode==3 & rmDup){
# # step 1: read ./summary/*remove_temp.csv file (output of mode=2)
# keep.last<-TRUE #keep the latest visit for each sample
# sumdir<-paste(currentdir,"/summary",sep="")
# setwd(sumdir)
# inFN<-paste(studyname,"_samples_remove_temp.csv",sep="")
# useIDs.FN<-paste(sumdir,"/",studyname,"_samples_remove.csv",sep="")
# 
# #########################################################################
# # (user-define 3 as rmDup=TRUE)  create useIDs.FN file
# #########################################################################
# # step 2: create the ./summary/*remove.csv file manually or by R commands
# d<-read.csv(inFN,head=1,stringsAsFactors=F)
# d<-d[order(d[,"Date"]),]
# d<-d[order(d[,"newID"]),]
# d[which(is.na(d[,"newID"])),]
# S<-duplicated(d[,"newID"],fromLast=keep.last) #keep the last copy for nccr
# d[S,"duplicate"]<-"remove"
# write.csv(d,file=useIDs.FN,row.names=F)
# 
# }
# 
# #########################################################################
# #   call afterggir
# #########################################################################
# 
# setwd(currentdir)
# mMARCH.AC.maincall(mode=mode,
#           useIDs.FN=useIDs.FN,
#           currentdir=currentdir,
#           studyname=studyname,
#           bindir=bindir,
#           outputdir=outputdir,
#           epochIn=epochIn,
#           epochOut=epochOut,
#           log.multiplier=log.multiplier,
#           use.cluster=use.cluster,
#           QCdays.alpha=QCdays.alpha,
#           QChours.alpha=QChours.alpha,
#           QCnights.feature.alpha=QCnights.feature.alpha,
#           DoubleHour= DoubleHour,
#           QC.sleepdur.avg=QC.sleepdur.avg,
#           QC.nblocks.sleep.avg=QC.nblocks.sleep.avg,
#           Rversion=Rversion,
#           filename2id=filename2id,
#           PA.threshold=PA.threshold,
#           desiredtz=desiredtz,
#           RemoveDaySleeper=RemoveDaySleeper,
#           part5FN=part5FN,
#           NfileEachBundle=NfileEachBundle,
#           holidayFN=holidayFN,
#           trace=trace)
# 
# }
# #########################################################################
#          mMARCH.AC.shell(mode)
# #########################################################################
# 
# #   Note:   mMARCH.AC.shell(mode)
# #        mode = 0 : creat sw/Rmd file
# #        mode = 1 : data transform using cluster or not
# #        mode = 2 : summary
# #        mode = 3 : clean
# #        mode = 4 : impu
# 

## ----eval=FALSE---------------------------------------------------------------
# mMARCH.AC.shell(mode,filename2id)

## ----eval=FALSE---------------------------------------------------------------
# #!/bin/bash
# #
# #$ -cwd
# #$ -j y
# #$ -S /bin/bash
#   source ~/.bash_profile
#   module load R ;
#      R --no-save --no-restore --args  < studyname_module0.maincall.R  0
#      R --no-save --no-restore --args  < studyname_module0.maincall.R  1
#      R --no-save --no-restore --args  < studyname_module0.maincall.R  2
#      R --no-save --no-restore --args  < studyname_module0.maincall.R  3
#      R --no-save --no-restore --args  < studyname_module0.maincall.R  4
# 
#      R -e "rmarkdown::render('module5_studyname_Data_process_report.Rmd'   )"
#      R -e "rmarkdown::render('module6_studyname_NonWear.report.Rmd'   )"
#      R -e "rmarkdown::render('module7a_studyname_calculate_newfeatures.Rmd'   )"
#      R -e "rmarkdown::render('module7b_studyname_merge_GGIRfeatures.Rmd'   )"
#      R -e "rmarkdown::render('module7c_studyname_runJIVE.Rmd'   )"
#      R -e "rmarkdown::render('module7d_studyname_calculate_WD_WE_avg_features.Rmd'   )"
# 
# 

## ----echo=F-------------------------------------------------------------------
input<-rbind(c("timestamp  ","ENMO   ","anglez   "),
             c("2017-11-30T00:00:00+0100",8e-04,-32.5758),
             c("2017-11-30T00:00:05+0100",0.0198,-25.5726),
             c("2017-11-30T00:00:10+0100",0.0177,3.7972),
             c("2017-11-30T00:00:15+0100",0.0118,6.7154),
             c("2017-11-30T00:00:20+0100",0.0106,10.0357),
             c("2017-11-30T00:00:25+0100",0.0341,21.0143),
             c("2017-11-30T00:00:30+0100",0.1708,19.5008),
             c("......","......","......"),
             c("2017-11-30T23:59:55+0100",0.1504,-0.596))


output<-rbind(c( "Date","0:00:00","0:00:05","0:00:10","0:00:15","0:00:20","0:00:25","0:00:30","......","23:59:55"),
              c( "11/30/2017","8.00E-04",0.0198,0.0177,0.0118,0.0106,0.0341,0.1708,"......",0.1504))
kable(input,format = "html")

## ----echo=F-------------------------------------------------------------------
kable(output)

## ----s1,echo=F----------------------------------------------------------------
library(xlsx)   
library(knitr)  
library(kableExtra)  


feaFN<-system.file("template", "features.dictionary.xlsx", package = "mMARCH.AC")   
#feaFN<-"/data/guow4/project0/GGIR/postGGIR/postGGIR_compile/v2/mMARCH.AC/inst/template/features.dictionary.xlsx" 
    
dict<-read.xlsx(feaFN,head=1,sheetName="dictionary",stringsAsFactors=F)
dict.SL<-dict[which(dict[,"Domain"]=="SL"),c("Variable","Description","level","Source")]
dict.PA<-dict[which(dict[,"Domain"]=="PA"),c("Variable","Description","level","Source")] 
dict.CR<-dict[which(dict[,"Domain"]=="CR"),c("Variable","Description","level","Source")]

row.names(dict.SL)<-NULL
row.names(dict.PA)<-NULL
row.names(dict.CR)<-NULL

kable(dict.SL) %>%
     kable_styling(bootstrap_options = c("striped", "hover"))

## ----s2,echo=F----------------------------------------------------------------
kable(dict.PA) %>%
     kable_styling(bootstrap_options = c("striped", "hover"))

## ----s3,echo=F----------------------------------------------------------------
kable(dict.CR) %>%
    kable_styling(bootstrap_options = c("striped", "hover"))

## ----s4,eval=FALSE,include=FALSE----------------------------------------------
# d1<-read.xlsx("mMARCH.AC.output.description.xlsx",sheetName="output.format")
# 
# cd /data/guow4/project0/GGIR/postGGIR/postGGIR_compile/v2/mMARCH.AC/vignettes
# R -e "rmarkdown::render('mMARCH.AC.Rmd'   )"