library(DRrequired)
library(knitr)
opts_chunk$set(tidy  = FALSE, out.width=".9\\paperwidth")
message('Comparing HR and RR for GMC and HUNK Gene\n')
## Comparing HR and RR for GMC and HUNK Gene
message('Windowing URL RR: https://wwwdev.ebi.ac.uk/mi/impc/dev/phenotype-archive/media/images/windowing/?alleleSymbol=Hunk%3Ctm1b(EUCOMM)Wtsi%3E&colonyID=H4884-EPD0822_3_A06-1&procedure=Electrocardiogram%20(ECG)%20%7C%20IMPC_ECG&parameter=RR%20%7C%20IMPC_ECG_004_001&center=HMGU&zygosity=homozygote&metadata=1d0db8dd7f80ac3c47bb1c9e737fee90&version=DR8%7CResults_9.1')
## Windowing URL RR: https://wwwdev.ebi.ac.uk/mi/impc/dev/phenotype-archive/media/images/windowing/?alleleSymbol=Hunk%3Ctm1b(EUCOMM)Wtsi%3E&colonyID=H4884-EPD0822_3_A06-1&procedure=Electrocardiogram%20(ECG)%20%7C%20IMPC_ECG&parameter=RR%20%7C%20IMPC_ECG_004_001&center=HMGU&zygosity=homozygote&metadata=1d0db8dd7f80ac3c47bb1c9e737fee90&version=DR8%7CResults_9.1
message('Windowing URL HR: https://wwwdev.ebi.ac.uk/mi/impc/dev/phenotype-archive/media/images/windowing/?alleleSymbol=Hunk%3Ctm1b(EUCOMM)Wtsi%3E&colonyID=H4884-EPD0822_3_A06-1&procedure=Electrocardiogram%20(ECG)%20%7C%20IMPC_ECG&parameter=HR%20%7C%20IMPC_ECG_002_001&center=HMGU&zygosity=homozygote&metadata=1d0db8dd7f80ac3c47bb1c9e737fee90&version=DR9.1%7CResults_9.1')
## Windowing URL HR: https://wwwdev.ebi.ac.uk/mi/impc/dev/phenotype-archive/media/images/windowing/?alleleSymbol=Hunk%3Ctm1b(EUCOMM)Wtsi%3E&colonyID=H4884-EPD0822_3_A06-1&procedure=Electrocardiogram%20(ECG)%20%7C%20IMPC_ECG&parameter=HR%20%7C%20IMPC_ECG_002_001&center=HMGU&zygosity=homozygote&metadata=1d0db8dd7f80ac3c47bb1c9e737fee90&version=DR9.1%7CResults_9.1
dfRR = read.csv(
    file = UnzipAndfilePath(
        'https://wwwdev.ebi.ac.uk/~hamedhm/windowing/DR9.1/jobs/Results_9.1/HMGU/IMPC_ECG/IMPC_ECG_004_001/H4884_EPD0822_3_A06_1/homozygote/1d0db8dd7f80ac3c47bb1c9e737fee90/output_rawData.csv.zip'
    )[1]
)
## 2018-11-30 10:52:56. Unziping file ...
## 2018-11-30 10:52:56. Successfully unziped. List of files:
##      1 ==> C:\Users\hamedhm\AppData\Local\Temp\RtmpG6uknf/XWDP/output_rawData.csv
##      2 ==> C:\Users\hamedhm\AppData\Local\Temp\RtmpG6uknf/XWDP/ReadMe.txt
dfHR = read.csv(
    file = UnzipAndfilePath(
        'https://wwwdev.ebi.ac.uk/~hamedhm/windowing/DR9.1/jobs/Results_9.1/HMGU/IMPC_ECG/IMPC_ECG_002_001/H4884_EPD0822_3_A06_1/homozygote/1d0db8dd7f80ac3c47bb1c9e737fee90/output_rawData.csv.zip'
    )[1]
)
## 2018-11-30 10:52:56. Unziping file ...
## 2018-11-30 10:52:56. Successfully unziped. List of files:
##      1 ==> C:\Users\hamedhm\AppData\Local\Temp\RtmpG6uknf/RFBJ/output_rawData.csv
##      2 ==> C:\Users\hamedhm\AppData\Local\Temp\RtmpG6uknf/RFBJ/ReadMe.txt
df = merge(dfRR, dfHR, by = 'external_sample_id')
dp = cbind(RR = df$data_point.x,
                     'HR->RR' = round(60 / df$data_point.y * 1000, 2),
                     HR       = df$data_point.y,
                     external_sample_id=df$external_sample_id)

f = function(dp,
                         er = 2,
                         col = 2,
                         ...) {
    outliers = dp[abs(dp[, 1] - dp[, 2]) > er,,drop=FALSE]
    plot(dp, sub = paste0('Total = ',nrow(outliers)),...)
    points(
        outliers[, 1],
        outliers[, 2],
        col = col,
        pch = 5,
        lwd = 3,
        cex = 3
    )
    print(outliers)
}

f(dp, .25, col = 2 , main = '(deviation of RR from HR->RR)  greater than  0.25')

##          RR HR->RR  HR external_sample_id
##  [1,]  88.4  88.11 681           30254295
##  [2,]  91.1  90.50 663           30261447
##  [3,]  88.6  88.24 680           30261589
##  [4,] 121.3 103.27 581           30262136
##  [5,]  80.7  79.26 757           30262142
##  [6,]  78.6  78.33 766           30266731
##  [7,] 110.5 109.69 547           30274858
##  [8,]  82.9  80.65 744           30278932
##  [9,]  85.8  83.10 722           30279621
## [10,]  89.9  89.55 670           30293602
## [11,]  83.0  82.64 726           30297710
## [12,]  76.3  75.57 794           30299711
## [13,]  81.9  81.63 735           30300381
## [14,]  78.9  78.64 763           30300391
## [15,]  86.1  85.47 702           30301654
## [16,]  74.8  74.07 810           30302238
## [17,]  82.3  81.97 732           30306113
## [18,]  85.9  85.59 701           30308340
## [19,]  87.6  86.96 690           30309631
## [20,]  92.4  91.05 659           30313887
## [21,]  80.7  80.32 747           30314784
## [22,]  97.1  96.46 622           30317673
## [23,]  76.2  75.47 795           30318194
## [24,]  80.3  80.00 750           30319194
## [25,]  81.9  81.63 735           30320448
## [26,]  84.2  83.92 715           30321058
## [27,]  97.2  96.93 619           30328730
## [28,]  81.3  78.33 766           30328740
## [29,]  86.1  85.71 700           30329534
## [30,]  85.6  85.23 704           30329535
## [31,] 100.9 100.17 599           30330000
## [32,]  92.0  91.32 657           30331292
## [33,]  74.1  73.53 816           30334754
## [34,]  79.2  78.84 761           30335462
## [35,]  85.5  84.39 711           30336085
## [36,]  80.3  80.00 750           30338352
## [37,]  78.9  76.82 781           30340049
## [38,]  85.3  84.99 706           30340749
## [39,]  86.4  86.08 697           30346116
## [40,]  79.4  78.23 767           30346119
## [41,]  74.0  73.53 816           30347238
## [42,]  91.3  83.80 716           30347353
## [43,]  83.9  83.45 719           30349452
## [44,]  79.0  75.00 800           30349455
## [45,]  81.2  80.54 745           30349458
## [46,]  84.6  84.15 713           30351279
## [47,]  74.8  74.53 805           30353328
## [48,]  87.3  86.46 694           30355559
## [49,]  86.6  86.33 695           30357652
## [50,]  74.0  73.62 815           30359756
## [51,]  86.0  85.71 700           30362449
## [52,]  82.3  81.97 732           30362470
## [53,]  78.3  77.82 771           30363357
## [54,]  80.3  79.68 753           30367669
## [55,]  78.9  78.53 764           30368953
## [56,]  79.6  78.02 769           30368961
## [57,]  76.4  75.57 794           30368962
## [58,]  79.8  78.64 763           30368964
## [59,]  78.0  77.22 777           30370946
## [60,]  77.4  77.02 779           30372443
## [61,]  78.9  78.53 764           30376913
## [62,]  84.3  84.03 714           30377419
## [63,]  78.3  77.92 770           30385985
## [64,]  85.2  84.51 710           30389470
## [65,]  80.8  79.05 759           30394140
## [66,]  75.5  74.44 806           30395734
f(dp,  1 , col = 3 , main = '(deviation of RR from HR->RR)  greater than 1')

##          RR HR->RR  HR external_sample_id
##  [1,] 121.3 103.27 581           30262136
##  [2,]  80.7  79.26 757           30262142
##  [3,]  82.9  80.65 744           30278932
##  [4,]  85.8  83.10 722           30279621
##  [5,]  92.4  91.05 659           30313887
##  [6,]  81.3  78.33 766           30328740
##  [7,]  85.5  84.39 711           30336085
##  [8,]  78.9  76.82 781           30340049
##  [9,]  79.4  78.23 767           30346119
## [10,]  91.3  83.80 716           30347353
## [11,]  79.0  75.00 800           30349455
## [12,]  79.6  78.02 769           30368961
## [13,]  79.8  78.64 763           30368964
## [14,]  80.8  79.05 759           30394140
## [15,]  75.5  74.44 806           30395734
f(dp,  2 , col = 4 , main = '(deviation of RR from HR->RR)  greater than 3')

##         RR HR->RR  HR external_sample_id
## [1,] 121.3 103.27 581           30262136
## [2,]  82.9  80.65 744           30278932
## [3,]  85.8  83.10 722           30279621
## [4,]  81.3  78.33 766           30328740
## [5,]  78.9  76.82 781           30340049
## [6,]  91.3  83.80 716           30347353
## [7,]  79.0  75.00 800           30349455
f(dp,  5 , col = 5 , main = '(deviation of RR from HR->RR)  greater than 5')

##         RR HR->RR  HR external_sample_id
## [1,] 121.3 103.27 581           30262136
## [2,]  91.3  83.80 716           30347353
f(dp,  18, col = 6 , main = '(deviation of RR from HR->RR)  greater than 18!')

##         RR HR->RR  HR external_sample_id
## [1,] 121.3 103.27 581           30262136
cor(dp[,1:2])
##               RR    HR->RR
## RR     1.0000000 0.9905745
## HR->RR 0.9905745 1.0000000