aboutsummaryrefslogtreecommitdiff
path: root/apps/rappor-analysis
diff options
context:
space:
mode:
Diffstat (limited to 'apps/rappor-analysis')
-rw-r--r--apps/rappor-analysis/counts.csv8
-rw-r--r--apps/rappor-analysis/map.csv300
-rw-r--r--apps/rappor-analysis/params.csv2
-rwxr-xr-xapps/rappor-analysis/run_app.sh12
-rwxr-xr-xapps/rappor-analysis/server.R206
-rw-r--r--apps/rappor-analysis/test.csv20
-rwxr-xr-xapps/rappor-analysis/ui.R96
7 files changed, 644 insertions, 0 deletions
diff --git a/apps/rappor-analysis/counts.csv b/apps/rappor-analysis/counts.csv
new file mode 100644
index 0000000..60eeb54
--- /dev/null
+++ b/apps/rappor-analysis/counts.csv
@@ -0,0 +1,8 @@
+1250276,626224,629830,638341,625107,629059,637733,627237,624856,626511,639218,625191,636727,652194,625005,626731,624685,627324,626537,625196,630818,632501,626862,628955,634134,625457,625492,630140,625310,625480,626724,625815,625012,626208,633380,627120,626236,630380,626096,643400,624581,633043,637383,637500,638889,638850,631609,629736,629781,631053,626856,625761,632677,626132,626524,640677,626872,625908,627774,645562,629118,626503,624811,625076,642209,624358,631656,625994,629471,627062,626615,628072,625104,634685,625712,627828,636920,628467,633497,625136,638445,640503,625158,626136,628873,628966,637418,636806,625767,625513,625005,629592,629663,625826,625291,629936,629981,633462,626834,634088,637785,626311,626268,631188,631489,627571,624682,625826,633909,625579,629158,627053,645113,632824,632781,629234,642502,626189,630451,627350,626339,625728,625176,633351,625507,624950,629719,629840,633691
+1250323,625902,627628,632084,633514,631008,628084,635489,626732,626260,634849,630196,630422,632669,628821,633097,626636,625641,628467,625592,632206,629610,625690,634899,626677,624795,643035,631852,627271,630507,628361,626473,628526,625776,625730,643589,629456,626836,626582,643557,628080,624552,627590,635085,638493,637141,626796,640932,625243,625471,636482,627287,626797,629338,626896,629384,628924,634787,626067,640203,627410,627300,630067,626616,631823,626115,627773,638473,636225,627615,625744,625323,625527,624919,625326,626282,631728,625763,625117,634744,626183,627635,635496,625418,625878,625656,632471,638729,624696,628542,633674,631028,625470,629210,625481,629249,626665,625463,642764,633562,625800,626148,625704,632663,626100,637283,628144,630706,637841,648419,629031,630624,629286,637650,633796,629327,625004,636779,626399,636405,627180,633733,624644,634934,633892,629981,624763,625490,626905
+1249338,627195,626020,630380,640061,624400,638641,625450,628965,627574,633128,627024,628953,624679,630959,629477,625165,624683,630564,629084,626893,627642,638929,628032,624605,624784,624866,625057,626514,625119,629974,636058,631212,632188,630549,633040,626200,635410,630642,625288,638902,625661,626883,631472,625034,628598,631335,633431,626116,625614,623893,624451,630719,625543,628438,629185,636862,624480,646320,633045,625899,631646,624480,632985,629712,627226,624685,630739,631352,624473,637188,626034,632661,642084,625588,623221,624143,627064,630239,632201,654697,623959,627282,634094,629300,629071,627907,628366,635018,629682,625013,625243,625787,625923,626455,624202,632402,626223,626239,629648,633212,627390,634006,624844,625376,623740,625066,624661,638579,627998,633964,626940,638640,625384,623877,634034,630904,627611,634589,641012,629763,639537,631585,633523,635568,625207,625550,627737,626509
+1250153,626278,632891,631440,628057,628399,632155,625425,630851,635905,628782,625907,626233,637552,646036,626268,625907,627308,624871,632340,632054,635781,626448,625755,629482,627888,628903,626740,625991,633765,627295,636278,631528,628661,624947,632013,625776,631390,629058,628824,626829,624329,638907,628410,625438,624753,634174,625978,637687,635135,636697,631489,641863,629839,626623,628555,636126,625301,630757,623565,641466,626623,625080,627400,640478,632570,625320,631842,628536,631022,640929,629782,626027,626572,625598,627779,626217,626792,633894,626197,625890,630099,628750,648340,625980,637857,625096,633319,633900,626561,625530,625522,635756,624511,627024,630723,630942,625503,631642,635463,625264,628220,634951,638631,632815,632761,626389,639287,630862,625804,628154,629082,632816,623961,625637,625300,634069,624859,626082,627940,631644,628774,627405,627828,627791,627485,635126,625856,625356
+1250771,626134,634334,635292,633584,629653,627784,630316,636331,635721,634720,625729,626505,625530,643654,627007,628882,636509,634843,627260,632665,630581,625935,626325,626154,626445,630192,631350,625497,626602,625785,635212,629901,631934,644065,625364,630139,625888,640241,642082,625550,628504,628584,625236,631908,634277,633968,628403,626574,628714,628817,626215,625343,626530,636299,625761,630238,635510,625792,626638,626019,625385,632164,642123,626560,631990,626524,629389,635020,642185,630844,641785,624691,625537,627970,637709,624936,632891,627287,624731,635772,626065,628167,639165,625399,627285,635614,624716,629091,635905,632939,644740,627730,636927,628454,626539,625964,629538,624913,627352,626349,634596,649781,633051,625859,641258,626367,626550,632163,631919,626057,626404,633310,626017,625033,625715,628007,627435,625799,629168,625984,627762,630920,636178,628996,636303,625454,626447,624878
+1249304,625217,634782,633262,627543,626709,626259,631738,625249,627135,624159,631445,623885,625673,627572,625728,637424,629831,631160,626828,625299,624976,632627,629163,633376,642828,628996,628394,625273,635767,634001,625608,626359,630964,629573,626843,631347,637799,632082,626361,625640,633128,625114,625259,624855,623835,627899,629085,633190,627906,625598,628426,628591,635388,627417,625277,626112,625438,629344,624804,635266,631869,627757,629650,634634,635120,626939,631203,624800,628294,629751,625873,625454,626784,643152,624555,626007,634075,624735,634702,635161,631006,633192,624404,645213,630656,626274,628042,626383,627361,626584,626495,634171,626099,645988,623858,633567,627545,627303,632595,625658,635634,627582,637475,632164,627445,624430,624834,634950,627360,625178,635287,628042,627459,625008,625474,624222,632271,631753,625880,634756,627221,634187,625343,629496,633121,638032,643509,627915
+1249371,629603,627151,624917,626164,635408,629423,628587,625809,628232,627395,633229,624598,625802,625063,624578,625570,625994,640692,627609,626231,624600,624999,624317,627324,627285,635594,628657,624688,634166,625095,635016,627523,625254,625486,625502,625508,628331,639758,625131,625854,632769,632613,626049,623943,625238,626959,644100,631137,631036,627617,638092,631651,633351,635808,626236,631018,623797,640254,625197,637365,630925,631001,629339,624785,629808,625059,625946,625454,626813,628688,638763,633084,630962,642853,633396,625614,625457,653628,627484,624393,624605,624069,631721,624595,629449,632112,630484,624621,638576,641526,627252,640009,632488,626154,627389,635583,630346,628182,641448,625741,626562,624782,629489,624792,625233,627673,636352,628509,629039,632497,627705,625475,625157,633092,627202,639182,624828,635046,628816,625704,629771,627364,625016,632477,623903,625941,630072,636475
+1250464,631025,631173,631404,626236,625778,628353,626059,628664,626525,626935,626403,635178,632979,625756,627707,634003,624578,631404,632468,627611,626047,625666,625608,638402,626190,626682,624400,624847,635537,645362,625061,626119,625017,626119,629502,630321,644285,627412,626713,627653,633124,624801,634043,630719,625353,625964,629839,647639,630311,640621,625757,624985,630278,628313,625287,628762,625189,627223,635090,629585,634519,627744,625372,631604,631082,633258,624555,629062,635039,629732,646917,627305,629446,625210,628958,626225,635697,650677,633385,628222,626950,632745,628532,624715,628624,632778,636588,633436,628344,628059,628093,628365,625570,625747,626402,629726,627742,630508,625999,641140,632459,631071,625998,626277,630781,629860,635807,635853,635068,634698,628617,625904,626756,624358,625808,628317,628376,625252,626063,624903,627357,647659,633890,636314,629070,630367,643689,628442
diff --git a/apps/rappor-analysis/map.csv b/apps/rappor-analysis/map.csv
new file mode 100644
index 0000000..09e8f55
--- /dev/null
+++ b/apps/rappor-analysis/map.csv
@@ -0,0 +1,300 @@
+"V_1",73,116,175,185,287,380,448,469,583,635,656,693,819,884,933,1018
+"V_2",13,76,154,226,329,344,467,483,521,529,724,734,815,846,983,1004
+"V_3",39,59,195,245,314,377,433,491,550,566,705,767,794,799,908,926
+"V_4",81,112,138,237,296,336,454,510,551,575,665,720,797,815,967,1023
+"V_5",45,108,241,252,260,364,467,487,515,520,669,751,858,886,946,955
+"V_6",3,43,135,236,319,356,426,486,598,614,664,766,842,875,944,1006
+"V_7",13,113,167,172,278,375,398,496,526,603,724,765,846,864,967,1020
+"V_8",64,226,242,312,374,397,472,581,601,739,762,773,867,926,1018,
+"V_9",10,39,178,237,288,336,434,500,614,624,714,734,822,860,974,1023
+"V_10",55,100,171,207,262,266,404,432,522,595,681,757,810,851,933,978
+"V_11",86,97,154,210,375,379,444,488,575,602,704,719,786,826,982,1005
+"V_12",78,112,151,247,314,335,390,436,558,614,662,748,826,843,909,996
+"V_13",21,114,163,231,278,326,416,440,514,543,678,701,786,854,915,974
+"V_14",6,59,163,249,336,378,398,451,539,557,665,743,830,860,937,944
+"V_15",81,87,196,214,289,299,430,449,617,621,643,688,828,867,920,997
+"V_16",12,128,141,237,303,315,421,462,595,617,741,758,779,841,925,1003
+"V_17",10,52,131,251,336,371,387,405,546,577,658,677,842,846,898,984
+"V_18",42,104,155,227,317,328,386,435,532,603,736,767,806,878,957,961
+"V_19",6,123,133,233,329,368,436,442,530,589,700,707,829,858,899,914
+"V_20",44,80,164,187,334,339,419,476,580,587,714,760,809,817,920,946
+"V_21",20,55,163,215,291,293,403,482,569,605,670,766,824,839,965,969
+"V_22",44,46,132,233,294,377,392,444,546,637,691,764,831,896,939,962
+"V_23",45,116,192,219,302,324,415,476,546,550,657,721,806,896,945,973
+"V_24",24,127,167,190,352,358,405,415,526,581,666,717,882,895,965,1001
+"V_25",12,64,167,187,358,366,437,471,538,615,732,744,816,857,996,1019
+"V_26",41,115,143,253,341,372,432,479,568,605,703,714,775,871,1002,1022
+"V_27",34,87,139,204,323,339,426,452,551,587,673,760,846,884,974,1021
+"V_28",91,96,172,218,262,368,448,454,554,582,642,741,821,833,994,998
+"V_29",92,99,142,173,264,293,389,393,544,545,700,725,840,866,897,992
+"V_30",34,80,149,215,268,314,398,504,551,553,663,722,795,861,950,1019
+"V_31",13,47,240,251,260,355,408,505,519,609,642,647,857,887,944,960
+"V_32",48,49,140,239,345,364,397,444,580,583,676,752,777,861,944,974
+"V_33",5,85,148,184,274,321,393,413,562,592,677,743,819,821,967,1012
+"V_34",64,103,181,196,270,311,394,465,516,620,742,745,820,865,912,1003
+"V_35",23,42,183,227,301,366,423,467,556,569,674,687,839,855,966,1024
+"V_36",42,58,173,238,259,376,409,436,574,579,677,734,792,839,956,1013
+"V_37",66,118,148,195,260,286,422,491,543,574,710,727,809,882,912,964
+"V_38",68,126,234,236,275,340,410,492,526,592,689,732,853,877,975,996
+"V_39",100,128,143,188,271,365,430,487,517,548,704,719,769,864,931,940
+"V_40",27,41,156,207,296,333,434,489,613,636,654,722,787,828,973,975
+"V_41",35,59,241,247,290,312,466,480,620,634,649,667,838,842,932,988
+"V_42",44,80,179,221,291,354,494,508,533,603,665,710,857,876,973,984
+"V_43",75,95,173,235,257,326,393,459,556,637,651,698,800,892,902,958
+"V_44",3,43,210,243,286,373,427,504,528,583,728,736,820,835,949,986
+"V_45",84,99,134,157,267,308,413,489,533,561,651,748,779,855,925,1007
+"V_46",110,123,209,243,303,320,471,491,569,611,709,717,805,806,940,952
+"V_47",86,98,171,178,290,310,388,413,600,603,642,717,840,889,957,960
+"V_48",2,77,170,175,265,368,403,417,546,606,669,675,774,822,939,987
+"V_49",99,105,217,223,259,296,455,485,514,545,644,692,814,892,904,971
+"V_50",22,112,187,197,258,276,401,455,518,637,670,721,778,818,954,962
+"V_51",24,95,173,187,308,343,480,489,631,761,768,770,883,957,979,
+"V_52",2,71,218,235,308,383,469,481,600,615,647,713,874,890,949,968
+"V_53",1,13,132,194,279,298,453,495,526,592,645,726,828,892,943,1017
+"V_54",27,56,136,215,352,371,453,577,617,686,751,879,896,1015,1018,
+"V_55",3,66,140,224,310,367,414,439,516,548,659,737,793,857,976,1020
+"V_56",7,37,146,151,275,315,462,509,613,634,679,711,820,907,934,
+"V_57",24,55,168,212,277,342,438,485,516,530,767,768,774,865,966,1018
+"V_58",49,76,160,203,270,350,424,440,530,613,706,729,859,880,925,981
+"V_59",13,111,215,249,316,326,386,507,535,557,690,692,875,889,936,1005
+"V_60",33,121,130,174,371,376,465,503,559,581,702,744,786,874,897,998
+"V_61",84,103,157,158,326,353,419,448,607,613,643,753,788,858,905,920
+"V_62",37,86,146,223,274,324,440,506,566,604,722,725,769,869,993,1006
+"V_63",60,118,239,248,304,372,492,495,520,578,656,712,867,894,983,985
+"V_64",13,119,175,180,270,340,398,433,556,597,651,672,773,823,916,928
+"V_65",9,17,217,256,271,357,395,453,563,630,673,724,816,843,939,977
+"V_66",71,110,183,189,328,379,447,492,629,634,676,738,784,882,931,932
+"V_67",55,124,218,221,284,302,415,439,587,628,688,729,839,840,935,
+"V_68",60,69,158,233,279,366,385,388,571,622,646,670,818,838,932,941
+"V_69",46,86,137,187,320,359,417,472,565,631,743,759,806,847,934,974
+"V_70",52,103,135,208,342,349,406,503,594,615,698,731,798,817,926,943
+"V_71",66,100,132,157,329,338,471,506,543,594,670,694,828,857,916,935
+"V_72",36,56,168,247,287,327,468,473,516,601,686,744,853,877,921,1002
+"V_73",13,116,245,256,317,346,411,431,522,532,644,678,822,839,992,1009
+"V_74",50,70,166,194,272,277,435,478,537,581,687,734,773,858,909,911
+"V_75",78,100,178,245,264,357,460,461,520,633,687,696,826,876,906,991
+"V_76",47,60,141,205,266,342,412,449,524,633,740,743,840,886,902,985
+"V_77",44,54,204,223,314,345,440,479,534,586,648,717,784,842,906,974
+"V_78",80,126,182,230,329,338,392,457,581,635,662,688,863,885,926,979
+"V_79",64,112,159,192,320,345,487,489,592,605,672,694,771,781,985,1007
+"V_80",30,120,198,200,343,368,436,454,598,636,647,749,794,847,993,997
+"V_81",105,126,196,238,271,292,471,490,613,639,643,730,808,865,951,956
+"V_82",49,70,152,182,265,338,421,433,527,610,671,724,847,856,908,939
+"V_83",30,37,166,187,262,314,386,454,593,609,712,733,813,831,943,1000
+"V_84",15,24,218,244,323,384,447,507,587,590,656,722,878,892,988,1009
+"V_85",38,72,189,204,295,348,480,486,576,637,686,705,785,867,936,952
+"V_86",88,126,145,246,352,360,393,456,538,629,660,749,776,862,967,981
+"V_87",26,74,175,191,296,365,434,453,580,633,657,702,786,795,975,996
+"V_88",37,87,181,247,274,311,389,401,579,601,681,693,824,892,905,959
+"V_89",39,40,160,194,268,367,429,471,559,617,673,737,803,805,987,1003
+"V_90",16,64,175,242,301,369,399,411,555,558,650,655,837,863,912,1018
+"V_91",7,117,211,216,289,292,387,457,589,637,713,748,772,845,949,1001
+"V_92",14,20,184,253,268,380,408,413,526,527,699,737,799,889,951,996
+"V_93",29,32,140,224,312,383,426,442,559,629,652,681,828,890,993,999
+"V_94",37,46,143,155,320,378,473,586,623,716,749,780,805,956,968,
+"V_95",57,68,147,234,262,369,472,509,550,616,676,730,816,845,937,939
+"V_96",7,53,182,235,262,384,478,500,530,570,709,732,778,804,912,952
+"V_97",38,125,144,242,274,286,456,493,529,610,674,694,770,862,908,994
+"V_98",58,77,193,248,335,336,410,503,582,593,687,743,843,855,947,977
+"V_99",6,59,129,233,265,302,414,426,519,568,653,755,821,868,928,1019
+"V_100",99,108,150,170,328,374,427,507,516,559,753,759,783,834,975,979
+"V_101",69,125,204,222,347,373,420,505,567,609,698,752,869,885,1022,1023
+"V_102",59,76,135,189,291,352,441,461,530,618,732,767,772,858,992,1023
+"V_103",15,53,154,184,261,308,462,466,557,571,700,720,813,888,933,940
+"V_104",49,120,168,191,353,376,445,490,566,604,646,763,796,834,947,967
+"V_105",6,101,141,229,269,317,399,486,530,546,653,749,815,868,951,972
+"V_106",76,83,193,237,376,377,494,508,582,630,704,710,774,794,947,1001
+"V_107",17,89,135,251,292,308,455,495,581,586,645,743,886,889,962,1021
+"V_108",77,91,172,209,274,330,424,487,549,632,649,658,782,788,903,996
+"V_109",6,127,157,192,271,353,445,456,619,621,647,653,803,833,897,1005
+"V_110",82,116,173,231,326,357,469,492,625,628,705,721,803,881,917,946
+"V_111",61,130,183,277,370,391,445,517,594,708,742,793,819,928,964,
+"V_112",76,114,189,237,341,378,486,508,519,528,739,756,869,879,974,1004
+"V_113",5,15,144,160,333,358,400,417,569,596,694,727,881,893,916,933
+"V_114",15,70,153,239,259,348,389,502,567,618,684,695,781,830,943,956
+"V_115",69,112,217,240,263,362,447,458,549,597,739,746,853,969,1000,
+"V_116",18,94,216,221,357,374,427,458,595,636,647,654,829,832,929,944
+"V_117",47,60,203,225,282,343,403,428,513,640,719,730,773,859,906,955
+"V_118",17,51,135,180,319,374,463,482,561,627,700,744,806,872,906,980
+"V_119",38,48,129,244,343,364,442,456,515,606,667,763,845,876,992,1022
+"V_120",69,101,219,242,315,378,491,495,597,602,670,748,770,784,930,1016
+"V_121",14,101,159,178,265,279,409,486,545,606,674,737,790,871,983,1013
+"V_122",55,110,221,233,316,342,454,480,597,602,644,762,787,866,912,921
+"V_123",72,124,133,160,304,308,424,458,586,601,678,747,769,834,1010,1024
+"V_124",44,96,156,158,374,384,399,455,558,569,676,697,802,823,906,950
+"V_125",52,116,173,175,349,359,499,500,513,529,732,749,849,867,926,976
+"V_126",18,50,165,176,310,322,499,507,557,613,655,699,814,868,998,1004
+"V_127",51,56,153,211,257,377,418,427,544,621,755,767,796,810,919,922
+"V_128",29,83,222,230,288,354,386,511,519,562,669,689,842,869,913,990
+"V_129",6,47,215,230,266,301,418,507,585,602,731,765,797,875,968,1009
+"V_130",35,97,138,144,326,383,471,502,532,554,659,711,779,782,972,999
+"V_131",44,99,154,219,300,307,386,427,531,631,686,723,815,852,904,917
+"V_132",67,86,151,225,294,353,391,407,574,575,720,754,782,813,914,999
+"V_133",32,84,151,164,293,302,404,437,593,625,660,756,773,803,942,960
+"V_134",73,80,143,234,318,355,412,451,524,537,655,688,782,842,920,1018
+"V_135",4,60,138,229,345,380,395,397,613,635,714,746,844,896,952,1023
+"V_136",9,62,161,227,267,290,395,485,516,628,744,755,793,802,942,975
+"V_137",6,53,134,189,271,373,395,447,533,589,641,652,817,869,901,923
+"V_138",9,107,206,223,261,339,499,511,613,632,653,767,775,801,919,931
+"V_139",26,41,136,158,328,343,434,453,540,575,727,752,790,861,942,1017
+"V_140",27,32,146,152,325,354,415,451,592,617,647,649,808,887,957,982
+"V_141",4,72,200,249,264,287,392,425,572,576,744,746,788,896,908,967
+"V_142",7,75,167,249,374,381,440,473,574,576,662,747,834,838,908,1001
+"V_143",44,58,147,167,303,369,409,427,595,619,741,756,824,878,908,945
+"V_144",12,41,247,253,335,375,406,459,579,607,740,763,772,826,919,1017
+"V_145",71,75,186,210,299,380,395,452,535,624,643,725,787,851,1005,1018
+"V_146",74,111,162,213,293,381,417,457,515,560,654,726,790,839,954,966
+"V_147",17,90,144,212,322,352,414,416,546,635,710,731,815,872,913,940
+"V_148",3,74,132,174,288,323,467,498,524,588,658,676,824,846,915,985
+"V_149",69,85,236,237,328,364,411,474,563,565,757,758,798,839,948,971
+"V_150",30,113,183,234,275,367,447,466,519,523,719,754,848,888,1000,1010
+"V_151",40,77,198,226,290,307,437,500,519,625,659,764,802,854,992,994
+"V_152",38,56,177,241,277,378,387,461,538,570,687,717,821,859,930,956
+"V_153",79,125,194,255,317,364,397,422,518,591,748,759,796,853,934,965
+"V_154",28,101,151,242,316,365,448,476,549,561,645,750,777,787,1008,1015
+"V_155",99,113,212,254,267,273,457,506,540,578,722,754,789,827,990,1022
+"V_156",6,97,201,208,272,369,444,509,516,525,707,759,829,865,938,1001
+"V_157",106,107,150,191,272,318,420,504,550,571,644,716,866,885,933,990
+"V_158",26,53,161,226,312,353,397,423,574,628,729,762,804,861,903,930
+"V_159",33,126,153,252,259,296,435,442,568,599,641,687,812,890,899,1003
+"V_160",96,117,157,201,288,344,389,467,620,628,692,760,827,864,910,973
+"V_161",103,109,184,204,271,321,412,433,528,626,667,735,769,821,930,955
+"V_162",12,123,150,170,306,381,407,448,580,613,654,711,832,918,956,
+"V_163",34,51,172,307,319,390,479,561,615,695,741,824,878,933,1002,
+"V_164",13,25,131,204,282,347,489,509,565,630,732,768,842,889,981,1012
+"V_165",8,100,146,236,279,323,441,483,529,545,699,711,796,880,959,992
+"V_166",79,126,166,255,324,362,458,507,543,581,668,686,781,787,951,952
+"V_167",53,125,202,214,275,343,493,505,589,622,670,672,825,868,904,971
+"V_168",33,80,129,191,284,378,441,453,548,585,671,680,806,893,987,997
+"V_169",48,75,155,183,278,365,453,491,537,590,677,752,769,786,926,989
+"V_170",77,102,137,181,270,344,387,446,513,629,728,736,808,818,922,999
+"V_171",30,78,162,177,373,378,414,478,620,637,718,752,788,824,955,988
+"V_172",67,126,177,179,321,366,455,474,580,612,654,742,789,852,971,1008
+"V_173",11,20,129,182,285,361,405,470,630,744,757,842,847,906,940,
+"V_174",59,69,130,189,277,361,473,510,615,635,731,749,771,786,922,1012
+"V_175",32,107,142,256,308,320,457,511,528,535,753,766,774,874,915,959
+"V_176",66,112,146,212,342,373,404,498,544,560,700,713,781,796,899,1002
+"V_177",88,124,201,228,268,361,395,441,580,604,645,751,775,801,908,929
+"V_178",41,89,139,233,268,370,424,496,519,563,650,658,805,863,898,1012
+"V_179",126,127,200,252,275,343,434,496,568,589,678,711,801,876,908,1024
+"V_180",5,116,134,210,314,354,412,511,522,620,738,746,835,845,951,992
+"V_181",109,122,137,177,257,308,490,505,577,589,653,676,784,894,904,936
+"V_182",57,86,172,180,335,368,410,452,525,577,708,717,810,846,918,1005
+"V_183",31,61,139,225,261,356,429,506,533,630,696,749,769,799,986,1005
+"V_184",16,70,173,198,314,316,482,508,605,614,656,699,818,868,950,987
+"V_185",14,126,137,186,287,345,385,487,593,612,679,702,815,817,897,943
+"V_186",87,115,150,216,321,375,475,494,603,624,664,767,797,865,965,1021
+"V_187",110,122,176,247,302,350,401,403,593,635,708,721,815,833,940,952
+"V_188",59,128,150,213,261,332,478,508,515,533,663,695,788,869,922,932
+"V_189",71,104,163,252,299,377,385,475,573,641,731,828,830,956,989,
+"V_190",56,86,135,189,282,374,391,496,538,623,723,724,818,820,977,989
+"V_191",47,72,158,166,259,290,484,496,605,612,690,746,822,866,939,949
+"V_192",26,118,194,210,270,372,394,421,588,601,659,725,792,835,993,1001
+"V_193",17,64,151,169,293,381,397,444,556,620,722,810,876,958,986,
+"V_194",87,88,139,176,290,339,395,492,533,558,710,744,790,827,917,978
+"V_195",3,112,181,214,367,375,399,412,524,564,647,724,820,886,1000,1014
+"V_196",81,96,156,207,312,332,413,436,554,626,694,741,822,891,939,1022
+"V_197",37,82,150,211,261,379,420,479,537,589,655,673,803,885,938,954
+"V_198",54,64,159,216,382,384,393,447,565,571,681,729,769,823,963,1021
+"V_199",91,118,135,235,357,383,465,480,544,639,693,733,872,891,909,936
+"V_200",31,91,168,172,259,354,436,473,545,563,652,694,803,874,922,946
+"V_201",74,93,152,218,296,328,475,490,570,609,643,768,784,801,968,1020
+"V_202",6,23,154,224,323,365,461,467,558,619,710,717,839,869,983,1011
+"V_203",72,126,216,255,296,381,395,431,591,600,702,704,870,885,944,1000
+"V_204",56,60,154,182,315,383,385,468,524,602,641,725,807,869,963,1008
+"V_205",68,79,141,215,258,370,389,485,623,633,695,795,882,944,955,
+"V_206",105,123,134,219,330,361,463,485,538,575,717,748,782,826,906,981
+"V_207",44,107,192,240,303,311,412,430,526,583,716,761,825,829,1008,1018
+"V_208",4,14,136,202,300,384,404,503,558,565,651,696,845,878,903,1017
+"V_209",53,107,173,204,304,381,393,396,625,627,666,684,795,896,900,941
+"V_210",25,71,167,272,302,400,453,537,600,668,738,786,847,922,996,
+"V_211",69,84,161,172,301,328,443,479,520,577,660,664,777,817,926,1021
+"V_212",14,25,134,212,339,348,486,491,569,580,699,740,802,815,927,982
+"V_213",72,89,199,246,258,305,391,430,604,625,668,724,826,857,987,1016
+"V_214",19,125,142,194,269,277,418,429,529,581,693,740,807,890,924,992
+"V_215",71,89,132,220,257,375,434,487,520,625,736,763,881,885,929,995
+"V_216",8,81,189,225,286,326,409,505,579,594,641,757,794,891,903,907
+"V_217",16,60,135,186,284,383,432,498,557,576,646,703,842,877,966,998
+"V_218",6,67,184,245,307,366,423,468,527,558,646,726,816,835,897,952
+"V_219",4,12,158,228,323,352,446,456,569,616,644,709,845,880,951,988
+"V_220",74,80,133,249,334,364,387,473,567,614,673,702,787,889,993,1017
+"V_221",43,120,187,212,289,302,392,409,560,622,654,722,778,834,970,1019
+"V_222",106,110,146,164,302,352,392,404,527,618,694,736,791,800,997,1012
+"V_223",97,110,190,225,261,275,419,512,544,637,644,764,795,878,917,925
+"V_224",48,60,161,243,277,302,419,506,551,588,705,713,803,884,1001,1002
+"V_225",91,123,147,214,325,331,403,447,532,573,693,748,790,871,954,965
+"V_226",8,102,132,234,282,355,428,458,538,640,684,701,870,876,976,984
+"V_227",39,71,137,192,286,319,447,477,531,586,738,745,772,846,935,976
+"V_228",54,108,219,223,296,302,428,487,514,565,684,725,775,776,949,1013
+"V_229",54,123,130,136,286,377,422,435,594,628,675,688,842,893,1014,1017
+"V_230",28,99,162,225,291,337,390,410,543,590,700,742,801,804,933,1013
+"V_231",70,113,160,208,278,318,423,496,549,626,752,758,852,853,935,959
+"V_232",27,81,154,234,265,349,388,459,602,610,655,662,821,829,907,944
+"V_233",77,106,133,194,280,333,403,485,527,635,687,727,803,884,922,1024
+"V_234",1,110,177,211,284,382,415,467,584,620,724,727,838,878,909,920
+"V_235",47,64,155,255,297,364,469,500,557,634,689,764,820,884,908,975
+"V_236",38,116,158,240,293,358,477,487,547,630,722,733,838,865,923,966
+"V_237",79,122,169,195,304,359,409,504,569,581,690,748,798,810,978,
+"V_238",1,109,170,199,263,365,424,496,582,625,680,704,770,801,942,951
+"V_239",66,121,139,217,299,345,420,494,554,600,649,733,812,852,930,969
+"V_240",89,104,190,240,272,307,391,399,529,557,699,745,786,815,921,996
+"V_241",82,93,152,250,260,355,401,410,531,554,690,724,815,848,935,1018
+"V_242",7,116,234,251,277,310,395,437,579,632,687,747,823,883,905,949
+"V_243",82,110,140,215,282,378,389,463,521,589,746,763,804,831,905,931
+"V_244",57,78,160,199,305,368,435,472,544,573,688,713,833,847,919,942
+"V_245",91,112,150,186,287,383,385,400,532,579,668,753,778,839,916,953
+"V_246",69,121,148,172,335,359,429,432,591,638,686,725,794,873,910,940
+"V_247",4,86,237,252,260,378,448,503,634,636,731,756,815,825,1003,1008
+"V_248",15,111,166,224,274,283,407,436,531,554,645,688,833,887,987,1004
+"V_249",4,121,160,170,341,349,494,506,517,619,724,734,775,866,897,1000
+"V_250",43,91,138,159,263,328,393,456,522,614,746,757,808,854,1010,1012
+"V_251",16,31,138,162,270,374,428,510,542,637,726,740,820,861,984,1012
+"V_252",19,26,129,223,307,314,389,503,513,609,711,737,787,806,944,1000
+"V_253",38,50,170,250,261,337,415,474,543,605,642,674,769,785,988,1019
+"V_254",42,85,159,175,306,329,415,464,555,574,685,688,821,836,992,1011
+"V_255",35,126,162,197,258,269,407,473,562,637,661,753,795,817,939,1007
+"V_256",29,37,133,174,258,339,463,511,517,613,717,744,811,888,918,1010
+"V_257",29,88,210,252,334,351,438,467,601,639,720,744,770,892,960,1012
+"V_258",102,105,140,243,281,339,434,501,561,640,645,696,795,796,969,1023
+"V_259",5,122,210,216,278,353,418,447,545,559,716,768,806,892,964,970
+"V_260",81,108,131,138,274,330,419,488,617,633,668,718,804,867,957,1014
+"V_261",17,119,192,226,289,298,427,445,541,611,690,721,808,851,953,954
+"V_262",18,67,158,168,301,384,457,496,519,565,678,733,803,832,971,982
+"V_263",53,64,166,185,307,356,395,473,515,553,671,707,788,829,937,947
+"V_264",39,116,187,189,287,355,424,471,552,622,680,748,830,848,940,993
+"V_265",103,126,163,170,354,374,467,482,550,605,649,672,823,824,976,1006
+"V_266",14,83,150,253,348,355,437,490,554,557,642,692,795,858,956,974
+"V_267",22,108,151,166,333,374,421,503,526,585,682,710,800,820,943,996
+"V_268",18,33,181,198,266,310,420,458,585,612,645,697,866,883,918,929
+"V_269",39,53,239,246,285,311,420,425,540,546,679,750,779,823,898,979
+"V_270",16,37,155,222,267,377,474,509,543,639,643,710,800,895,925,1005
+"V_271",5,87,138,204,272,371,405,476,525,567,744,762,792,861,986,1011
+"V_272",12,15,218,219,260,293,399,426,598,637,666,741,799,835,918,938
+"V_273",20,106,140,242,355,366,392,499,514,601,729,732,790,847,927,938
+"V_274",13,70,137,251,272,377,416,420,632,633,660,753,865,869,956,
+"V_275",15,81,161,195,273,286,388,444,525,615,675,706,803,853,922,940
+"V_276",25,39,174,213,336,351,398,435,556,567,759,762,804,808,906,936
+"V_277",42,46,143,158,282,368,464,500,522,616,686,715,845,883,986,1002
+"V_278",25,30,152,194,260,360,390,477,566,634,690,707,814,879,995,1024
+"V_279",6,22,224,345,367,410,481,532,569,694,721,854,859,1019,1023,
+"V_280",72,97,179,182,299,378,442,498,529,542,642,725,780,802,948,1008
+"V_281",34,125,190,214,269,338,434,447,550,631,653,749,858,893,958,980
+"V_282",35,73,232,245,310,341,418,511,534,639,721,747,859,878,966,1018
+"V_283",32,101,176,196,298,351,402,411,562,618,664,715,814,869,993,1013
+"V_284",44,111,166,243,273,382,414,467,522,561,670,682,773,823,897,964
+"V_285",25,100,165,171,289,380,398,469,537,636,735,745,805,874,998,1021
+"V_286",42,91,136,229,309,363,397,445,556,591,722,756,774,780,928,929
+"V_287",23,35,186,201,331,341,457,503,540,571,674,691,845,877,928,940
+"V_288",4,10,129,218,288,367,391,418,556,594,684,695,857,880,969,1008
+"V_289",18,35,142,208,274,330,414,436,609,613,683,737,856,891,917,943
+"V_290",101,107,162,241,373,378,392,434,523,568,668,749,795,801,911,987
+"V_291",33,97,149,225,277,346,419,428,526,590,696,745,829,896,926,959
+"V_292",84,86,191,200,310,318,412,457,542,626,742,744,808,851,938,1014
+"V_293",51,82,152,215,330,379,393,457,557,561,643,681,791,837,957,971
+"V_294",13,118,170,247,261,265,465,495,558,584,650,767,847,869,916,995
+"V_295",98,113,164,206,342,376,477,509,623,624,701,737,829,895,943,981
+"V_296",72,115,214,221,318,337,446,486,520,605,660,694,865,874,990,1022
+"V_297",32,109,161,191,263,371,469,474,575,581,703,743,868,885,933,987
+"V_298",66,76,181,238,341,373,401,446,517,560,690,768,856,884,961,
+"V_299",18,66,210,220,340,376,458,488,515,611,694,753,774,888,976,993
+"V_300",17,45,170,195,273,290,421,440,543,604,739,765,776,868,916,962
diff --git a/apps/rappor-analysis/params.csv b/apps/rappor-analysis/params.csv
new file mode 100644
index 0000000..b9107d5
--- /dev/null
+++ b/apps/rappor-analysis/params.csv
@@ -0,0 +1,2 @@
+"k","h","m","p","q","f"
+128,2,8,0.5,0.75,0
diff --git a/apps/rappor-analysis/run_app.sh b/apps/rappor-analysis/run_app.sh
new file mode 100755
index 0000000..b605730
--- /dev/null
+++ b/apps/rappor-analysis/run_app.sh
@@ -0,0 +1,12 @@
+#!/bin/sh
+#
+# Run the Shiny app in this directory.
+#
+# Usage:
+# ./run_app.sh [port]
+
+app_dir=$(dirname $0)
+port=${1:-6789}
+
+# host= makes it serve to other machines, not just localhost.
+exec R --vanilla --slave -e "shiny::runApp('$app_dir', host='0.0.0.0', port=$port)"
diff --git a/apps/rappor-analysis/server.R b/apps/rappor-analysis/server.R
new file mode 100755
index 0000000..1f3b868
--- /dev/null
+++ b/apps/rappor-analysis/server.R
@@ -0,0 +1,206 @@
+library(shiny)
+
+source("../../analysis/R/read_input.R")
+source("../../analysis/R/decode.R")
+
+# Random number associated with the session used in exported file names.
+seed <- sample(10^6, 1)
+
+PlotCohorts <- function(x, highlighted, color = "grey") {
+ n <- nrow(x)
+ k <- ncol(x)
+ if (n < 16) {
+ par(mfrow = c(n, 1), mai = c(0, .5, .5, 0))
+ } else if (n < 64) {
+ par(mfrow = c(n / 2, 2), mai = c(0, .5, .5, 0))
+ } else {
+ par(mfrow = c(n / 4, 4), mai = c(0, .5, .5, 0))
+ }
+ for (i in 1:n) {
+ cc <- rep(color, k)
+ if (!is.null(highlighted)) {
+ ind <- highlighted[which(ceiling(highlighted / k) == i)] %% k
+ cc[ind] <- "greenyellow"
+ }
+ barplot(x[i, ], main = paste0("Cohort ", i), col = cc, border = cc,
+ names.arg = "")
+ }
+}
+
+shinyServer(function(input, output, session) {
+ Params <- reactive({
+ param_file <- input$params
+ if (!is.null(param_file)) {
+ params <- ReadParameterFile(param_file$datapath)
+ updateSelectInput(session, "size", selected = params$k)
+ updateSelectInput(session, "hashes", selected = params$h)
+ updateSelectInput(session, "instances", selected = params$m)
+ updateSliderInput(session, "p", value = params$p)
+ updateSliderInput(session, "q", value = params$q)
+ updateSliderInput(session, "f", value = params$f)
+ } else {
+ params <- list(k = as.numeric(input$size),
+ h = as.numeric(input$hashes),
+ m = as.numeric(input$instances),
+ p = as.numeric(input$p),
+ q = as.numeric(input$q),
+ f = as.numeric(input$f))
+ }
+ params
+ })
+
+ Counts <- reactive({
+ params <- Params()
+ counts_file <- input$counts
+ if (is.null(counts_file)) {
+ return(NULL)
+ }
+
+ counts <- ReadCountsFile(counts_file$datapath, params)
+ updateNumericInput(session, "N", value = sum(counts[, 1]))
+ counts
+ })
+
+ output$countsUploaded <- reactive({
+ ifelse(is.null(input$counts), FALSE, TRUE)
+ })
+ outputOptions(output, 'countsUploaded', suspendWhenHidden=FALSE)
+
+ Map <- reactive({
+ params <- Params()
+ map_file <- input$map
+ if (is.null(map_file)) {
+ return(NULL)
+ }
+
+ map <- ReadMapFile(map_file$datapath, params)
+ updateSelectInput(session, "selected_string", choices = map$strs, selected = map$strs[1])
+ map
+ })
+
+ output$mapUploaded <- reactive({
+ ifelse(is.null(input$map), FALSE, TRUE)
+ })
+ outputOptions(output, 'mapUploaded', suspendWhenHidden=FALSE)
+
+ DecodingParams <- reactive({
+ list(alpha = as.numeric(input$alpha),
+ correction = input$correction)
+ })
+
+ Analyze <- reactive({
+ if (is.null(input$map) || is.null(input$counts)) {
+ return()
+ }
+ params <- Params()
+ map <- Map()
+ counts <- Counts()
+ decoding_params <- DecodingParams()
+
+ fit <- Decode(counts, map$map, params,
+ alpha = decoding_params$alpha,
+ correction = decoding_params$correction)
+ fit
+ })
+
+ # Results summary.
+ output$pr <- renderTable({
+ Analyze()$summary
+ },
+ include.rownames = FALSE, include.colnames = FALSE)
+
+ # Results table.
+ output$tab <- renderDataTable({
+ Analyze()$fit
+ },
+ options = list(iDisplayLength = 100))
+
+ # Results barplot.
+ output$res_barplot <- renderPlot({
+ fit <- Analyze()$fit
+
+ par(mai = c(2, 1, 1, .5))
+
+ bp <- barplot(fit$proportion, col = "palegreen",
+ main = "Discovered String Distribution")
+ abline(h = Analyze()$privacy[7, 2], col = "darkred", lty = 2, lwd = 2)
+ text(bp[, 1], 0, paste(fit$strings, " "), srt = 45, adj = c(1, 1), xpd = NA)
+ legend("topright", legend = "Detection Frequency", lty = 2, lwd = 2, col = "darkred",
+ bty = "n")
+ })
+
+ # Epsilon.
+ output$epsilon <- renderTable({
+ Analyze()$privacy
+ },
+ include.rownames = FALSE, include.colnames = FALSE, digits = 4)
+
+ output$map <- renderPlot({
+ image(as.matrix(Map()$map), col = c("white", "darkred"), xaxt = "n", yaxt = "n", bty = "n")
+ })
+
+ # Estimated bits patterns.
+ output$ests <- renderPlot({
+ ests <- Analyze()$ests
+ ind <- which(input$selected_string == Map()$strs)
+ high <- unlist(Map()$map_pos[ind, -1])
+ PlotCohorts(ests, high, color = "darkred")
+ })
+
+ # Collisions.
+ output$collisions <- renderPlot({
+ params <- Params()
+ map <- Map()
+ tab <- table(unlist(map$map_pos[, -1]))
+ tab <- tab[as.character(1:(params$k * params$m))]
+ tab[is.na(tab)] <- 0
+ tab <- matrix(tab, nrow = params$m, byrow = TRUE)
+
+ ind <- which(input$selected_string == map$strs)
+ high <- unlist(map$map_pos[ind, -1])
+
+ PlotCohorts(tab, high, color = "navajowhite")
+ })
+
+ # Observed counts.
+ output$counts <- renderPlot({
+ counts <- as.matrix(Analyze()$counts)
+ ind <- which(input$selected_string == Map()$strs)
+ high <- unlist(Map()$map_pos[ind, -1])
+ PlotCohorts(counts, high, color = "darkblue")
+ })
+
+ # Downloadable datasets.
+ output$download_fit <- downloadHandler(
+ filename = function() { paste("results_", seed, "_", date(), '.csv', sep='') },
+ content = function(file) {
+ write.csv(Analyze()$fit, file, row.names = FALSE)
+ }
+ )
+
+ output$download_summary <- downloadHandler(
+ filename = function() { paste("summary_", seed, "_", date(), '.csv', sep='') },
+ content = function(file) {
+ write.csv(rbind(Analyze()$summary, Analyze()$privacy, Analyze()$params),
+ file, row.names = FALSE)
+ }
+ )
+
+ output$example_params <- renderTable({
+ as.data.frame(ReadParameterFile("params.csv"))
+ },
+ include.rownames = FALSE)
+
+ output$example_counts <- renderTable({
+ counts <- ReadCountsFile("counts.csv")[, 1:15]
+ cbind(counts, rep("...", nrow(counts)))
+ },
+ include.rownames = FALSE, include.colnames = FALSE)
+
+ output$example_map <- renderTable({
+ map <- ReadMapFile("map.csv", ReadParameterFile("params.csv"))
+ map$map_pos[1:10, ]
+ },
+ include.rownames = FALSE, include.colnames = FALSE)
+
+})
diff --git a/apps/rappor-analysis/test.csv b/apps/rappor-analysis/test.csv
new file mode 100644
index 0000000..d6105ae
--- /dev/null
+++ b/apps/rappor-analysis/test.csv
@@ -0,0 +1,20 @@
+[1] String Estimate St.Dev P.value Proportion SNR
+<0 rows> (or 0-length row.names)
+SUMMARY
+ parameters values
+1 Candidate strings 300.000
+2 Detected strings 0.000
+3 Discovered Prop (out of N) 0.000
+4 Explained Variance 0.000
+5 Missing Variance 0.988
+6 Noise Variance 0.012
+7 Theoretical Noise Std. Dev. 2236.068
+PRIVACY
+ parameters values
+1 Effective p 0.500000000
+2 Effective q 0.750000000
+3 exp(e_1) 9.000000000
+4 e_1 2.197224577
+5 exp(e_inf) Inf
+6 e_inf Inf
+7 Detection frequency 0.001040297
diff --git a/apps/rappor-analysis/ui.R b/apps/rappor-analysis/ui.R
new file mode 100755
index 0000000..3230726
--- /dev/null
+++ b/apps/rappor-analysis/ui.R
@@ -0,0 +1,96 @@
+library(shiny)
+
+shinyUI(pageWithSidebar(
+ headerPanel("RAPPOR Analysis"),
+ sidebarPanel(
+ tabsetPanel(tabPanel("Input",
+ fileInput('params', 'Select Params File (optional)',
+ accept=c('txt/csv', 'text/comma-separated-values,text/plain', '.csv')),
+ fileInput('counts', 'Select Counts File',
+ accept=c('txt/csv', 'text/comma-separated-values,text/plain', '.csv')),
+ fileInput('map', 'Select Map File',
+ accept=c('txt/csv', 'text/comma-separated-values,text/plain', '.csv')),
+ br(),
+ br()
+ ),
+ tabPanel("RAPPOR",
+ selectInput("size", "Bloom filter size:",
+ c(64, 128, 256, 512, 1024, 2048, 4096),
+ selected = 128),
+ selectInput("hashes", "Number of hash functions:",
+ c(1, 2, 4, 8, 16, 32),
+ selected = 2),
+ selectInput("instances", "Number of cohorts:",
+ c(1, 2, 4, 8, 16, 32, 64),
+ selected = 8),
+ numericInput("N", "Number of reports", 0),
+ br(),
+ br(),
+ br()
+ ),
+ tabPanel("Privacy",
+ sliderInput("p", "Probability of reporting noise (p):",
+ min = .01, max = .99, value = .5, step = .01),
+ sliderInput("q", "Probability of reporting signal (q):",
+ min = .01, max = .99, value = .75, step = .01),
+ sliderInput("f", "Probability of lies (f):",
+ min = 0, max = .99, value = .5, step = .01),
+ br(),
+ htmlOutput("epsilon"),
+ br(),
+ helpText("* In addition to p, q and f, the number of hash functions (set in the RAPPOR tab) also effects privacy guarantees."),
+ br(),
+ br(),
+ br()
+ ),
+ tabPanel("Decoding",
+ sliderInput("alpha", "Alpha - probability of false positive:",
+ min = .01, max = 1, value = .05, step = .01),
+ br(),
+ selectInput("correction", "Multiple testing correction",
+ c("None", "Bonferroni", "FDR"),
+ selected = "FDR"),
+ br(),
+ br()
+ )
+ ),
+ conditionalPanel(
+ condition = "output.countsUploaded && output.mapUploaded",
+ helpText(actionButton("run", "Run Analysis"), align = "center")
+ ),
+ br(),
+ br(),
+ helpText("Version 0.1", align = "center"),
+ helpText(a("RAPPOR Paper", href="http://arxiv.org/abs/1407.6981"), align = "center")),
+ mainPanel(
+ conditionalPanel(
+ condition = "!output.countsUploaded || !output.mapUploaded",
+ helpText(h2("Welcome to the RAPPOR Analysis Tool")),
+ helpText("To analyze a RAPPOR collection, please upload three files:"),
+ helpText(h3("1. Params file"), "This file specifies the 6 parameters that were used to encode RAPPOR reports. An example is shown below. It must have column names in the header line, 6 columns in this order, and 1 row. "),
+ htmlOutput("example_params"),
+ helpText(h3("2. Counts file"), "Required. This file must have as many rows as cohorts. The first column contains the number of reports in the cohort. The remaining k columns specify the number of times the corresponding bit was set in all reports (in the corresponding cohort). This file cannot have a CSV header line."),
+ htmlOutput("example_counts"),
+ helpText(h3("3. Map file"), "Required. The first column contains candidate strings. The remaining columns show which bit each string is hashed to within each cohort. Indices are specified in the extended format, starting with index 1 (not 0!). Because we do not specify a cohort in the map file, indices must be adjusted in the following way. For example, if bits i and j are set in cohort 2, then their corresponding indices are i + k and j + k in the map file. The number of columns is equal to (h * m). This file cannot have a CSV header line."),
+ htmlOutput("example_map")
+ ),
+ conditionalPanel(
+ condition = "output.countsUploaded && output.mapUploaded",
+ tabsetPanel(
+ tabPanel("Results",
+ helpText(h3("Summary")), htmlOutput("pr"), br(),
+ downloadButton('download_summary', 'Download Summary'),
+ downloadButton('download_fit', 'Download Results'),
+ br(), br(), dataTableOutput("tab")),
+ tabPanel("Distribution", plotOutput("res_barplot", height = "800px")),
+ tabPanel("Observed Counts",
+ selectInput("selected_string", "Select String",
+ ""),
+ plotOutput("counts", height = "800px")),
+ tabPanel("Estimated Counts", plotOutput("ests", height = "800px")),
+ tabPanel("Collision Counts", plotOutput("collisions", height = "800px")),
+ tabPanel("Map", plotOutput("map", height = "800px"))
+ )
+ )
+ )
+ ))