MARQ 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +20 -0
- data/R/CustomDS.R +80 -0
- data/R/GEO.R +249 -0
- data/R/MA.R +359 -0
- data/README.rdoc +29 -0
- data/bin/marq_config +170 -0
- data/install_scripts/CustomDS/Rakefile +223 -0
- data/install_scripts/GEO/Rakefile +258 -0
- data/install_scripts/GEO/platforms/GPL100.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1002.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1007.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL101.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1010.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1073.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1074.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL1090.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1104.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL118.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1205.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL1211.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1213.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1219.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL1223.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1226.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1229.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1230.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1231.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1232.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1260.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL1261.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL127.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL128.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1290.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1292.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1293.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1294.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1295.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL13.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL1310.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1313.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1323.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1331.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1352.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL1355.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL1382.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1387.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1397.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL14.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1412.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1415.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1420.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL144.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1449.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1458.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1523.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1524.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1528.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL153.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1530.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1535.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL155.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL163.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL168.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL169.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1704.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL1708.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1739.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1740.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL1749.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL177.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1790.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1792.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL181.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1818.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1820.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL1823.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1826.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL183.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1831.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1833.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1872.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL1911.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1914.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL1928.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1942.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1945.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL1964.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL198.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL1981.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL200.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL2006.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL201.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL2011.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL2026.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL205.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL207.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL2136.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL220.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL226.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL24.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL246.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL247.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL2507.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL2529.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL2531.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL254.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL2569.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL257.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL2598.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL260.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL2614.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL2622.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL2623.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL2660.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL2670.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL2677.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL2700.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL2721.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL2727.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL273.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL2763.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL2824.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL284.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL287.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL2872.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL288.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL2883.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL289.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL2895.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL2897.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL2902.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL2987.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL2995.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL3039.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL3050.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL3084.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL3113.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL317.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL319.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL32.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL3222.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL3295.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL3305.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL3306.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL3307.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL333.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL3341.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL3349.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL339.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL340.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL3408.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL341.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL3415.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL3423.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL3440.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL3457.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL3504.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL3506.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL355.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL3558.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL3607.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL368.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL3695.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL371.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL3834.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL4006.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL4055.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL409.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL4191.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL4226.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL4371.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL4567.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL4685.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL483.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL49.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL50.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL500.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL507.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL51.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL513.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL519.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL52.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL529.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL53.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL5356.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL538.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL54.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL543.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL544.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL545.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL546.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL547.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL549.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL550.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL56.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL560.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL564.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL57.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL570.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL571.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL576.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL58.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL5823.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL59.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL5915.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL5947.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL61.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL64.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL6419.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL6424.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL65.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL6574.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL6649.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL67.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL6720.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL7054.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL737.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL738.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL74.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL75.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL76.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL764.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL772.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL782.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL783.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL784.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL80.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL81.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL82.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL83.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL85.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL86.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL87.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL870.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL875.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL884.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL887.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL89.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL890.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL891.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL90.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL91.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL92.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL920.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL922.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL924.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL93.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL96.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL968.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL97.yaml +4 -0
- data/install_scripts/GEO/platforms/GPL98.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL981.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL99.yaml +7 -0
- data/install_scripts/GEO/platforms/GPL999.yaml +7 -0
- data/install_scripts/GEO/series/GSE10018.yaml +61 -0
- data/install_scripts/GEO/series/GSE1002.yaml +135 -0
- data/install_scripts/GEO/series/GSE10066.yaml +31 -0
- data/install_scripts/GEO/series/GSE10073.yaml +19 -0
- data/install_scripts/GEO/series/GSE10091.yaml +15 -0
- data/install_scripts/GEO/series/GSE101.yaml +17 -0
- data/install_scripts/GEO/series/GSE10100.yaml +15 -0
- data/install_scripts/GEO/series/GSE10101.yaml +15 -0
- data/install_scripts/GEO/series/GSE10102.yaml +15 -0
- data/install_scripts/GEO/series/GSE10267.yaml +37 -0
- data/install_scripts/GEO/series/GSE10268.yaml +115 -0
- data/install_scripts/GEO/series/GSE10279.yaml +23 -0
- data/install_scripts/GEO/series/GSE103.yaml +19 -0
- data/install_scripts/GEO/series/GSE104.yaml +19 -0
- data/install_scripts/GEO/series/GSE10514.yaml +27 -0
- data/install_scripts/GEO/series/GSE10521.yaml +56 -0
- data/install_scripts/GEO/series/GSE10554.yaml +19 -0
- data/install_scripts/GEO/series/GSE1073.yaml +127 -0
- data/install_scripts/GEO/series/GSE10860.yaml +25 -0
- data/install_scripts/GEO/series/GSE10930.yaml +15 -0
- data/install_scripts/GEO/series/GSE10933.yaml +15 -0
- data/install_scripts/GEO/series/GSE10944.yaml +21 -0
- data/install_scripts/GEO/series/GSE10947.yaml +21 -0
- data/install_scripts/GEO/series/GSE10948.yaml +21 -0
- data/install_scripts/GEO/series/GSE11061.yaml +19 -0
- data/install_scripts/GEO/series/GSE11071.yaml +67 -0
- data/install_scripts/GEO/series/GSE11111.yaml +25 -0
- data/install_scripts/GEO/series/GSE11236.yaml +25 -0
- data/install_scripts/GEO/series/GSE11282.yaml +19 -0
- data/install_scripts/GEO/series/GSE11377.yaml +19 -0
- data/install_scripts/GEO/series/GSE11380.yaml +13 -0
- data/install_scripts/GEO/series/GSE11397.yaml +55 -0
- data/install_scripts/GEO/series/GSE11412.yaml +11 -0
- data/install_scripts/GEO/series/GSE11452.yaml +354 -0
- data/install_scripts/GEO/series/GSE11620.yaml +33 -0
- data/install_scripts/GEO/series/GSE11621.yaml +31 -0
- data/install_scripts/GEO/series/GSE11651.yaml +94 -0
- data/install_scripts/GEO/series/GSE11754.yaml +29 -0
- data/install_scripts/GEO/series/GSE11799.yaml +59 -0
- data/install_scripts/GEO/series/GSE11856.yaml +11 -0
- data/install_scripts/GEO/series/GSE11878.yaml +19 -0
- data/install_scripts/GEO/series/GSE11983.yaml +15 -0
- data/install_scripts/GEO/series/GSE12004.yaml +41 -0
- data/install_scripts/GEO/series/GSE12055.yaml +109 -0
- data/install_scripts/GEO/series/GSE12061.yaml +13 -0
- data/install_scripts/GEO/series/GSE12104.yaml +10 -0
- data/install_scripts/GEO/series/GSE12138.yaml +13 -0
- data/install_scripts/GEO/series/GSE12150.yaml +32 -0
- data/install_scripts/GEO/series/GSE12684.yaml +47 -0
- data/install_scripts/GEO/series/GSE12685.yaml +34 -0
- data/install_scripts/GEO/series/GSE1365.yaml +14 -0
- data/install_scripts/GEO/series/GSE1404.yaml +596 -0
- data/install_scripts/GEO/series/GSE1492.yaml +15 -0
- data/install_scripts/GEO/series/GSE15222.yaml +731 -0
- data/install_scripts/GEO/series/GSE1553.yaml +23 -0
- data/install_scripts/GEO/series/GSE1617.yaml +39 -0
- data/install_scripts/GEO/series/GSE1688.yaml +36 -0
- data/install_scripts/GEO/series/GSE1693.yaml +60 -0
- data/install_scripts/GEO/series/GSE1752.yaml +32 -0
- data/install_scripts/GEO/series/GSE1753.yaml +16 -0
- data/install_scripts/GEO/series/GSE1754.yaml +19 -0
- data/install_scripts/GEO/series/GSE1758.yaml +15 -0
- data/install_scripts/GEO/series/GSE1759.yaml +18 -0
- data/install_scripts/GEO/series/GSE1760.yaml +18 -0
- data/install_scripts/GEO/series/GSE1763.yaml +19 -0
- data/install_scripts/GEO/series/GSE1915.yaml +39 -0
- data/install_scripts/GEO/series/GSE1927.yaml +14 -0
- data/install_scripts/GEO/series/GSE1941.yaml +23 -0
- data/install_scripts/GEO/series/GSE1942.yaml +31 -0
- data/install_scripts/GEO/series/GSE1944.yaml +58 -0
- data/install_scripts/GEO/series/GSE1975.yaml +65 -0
- data/install_scripts/GEO/series/GSE20.yaml +24 -0
- data/install_scripts/GEO/series/GSE2107.yaml +14 -0
- data/install_scripts/GEO/series/GSE2159.yaml +31 -0
- data/install_scripts/GEO/series/GSE2246.yaml +157 -0
- data/install_scripts/GEO/series/GSE2263.yaml +57 -0
- data/install_scripts/GEO/series/GSE2267.yaml +155 -0
- data/install_scripts/GEO/series/GSE23.yaml +58 -0
- data/install_scripts/GEO/series/GSE2329.yaml +43 -0
- data/install_scripts/GEO/series/GSE2330.yaml +55 -0
- data/install_scripts/GEO/series/GSE2349.yaml +19 -0
- data/install_scripts/GEO/series/GSE2412.yaml +58 -0
- data/install_scripts/GEO/series/GSE2419.yaml +27 -0
- data/install_scripts/GEO/series/GSE2420.yaml +29 -0
- data/install_scripts/GEO/series/GSE2434.yaml +37 -0
- data/install_scripts/GEO/series/GSE2526.yaml +23 -0
- data/install_scripts/GEO/series/GSE2579.yaml +19 -0
- data/install_scripts/GEO/series/GSE2806.yaml +11 -0
- data/install_scripts/GEO/series/GSE2831.yaml +35 -0
- data/install_scripts/GEO/series/GSE2832.yaml +17 -0
- data/install_scripts/GEO/series/GSE29.yaml +16 -0
- data/install_scripts/GEO/series/GSE3006.yaml +35 -0
- data/install_scripts/GEO/series/GSE3043.yaml +18 -0
- data/install_scripts/GEO/series/GSE3122.yaml +12 -0
- data/install_scripts/GEO/series/GSE3130.yaml +12 -0
- data/install_scripts/GEO/series/GSE3151.yaml +118 -0
- data/install_scripts/GEO/series/GSE3160.yaml +31 -0
- data/install_scripts/GEO/series/GSE3190.yaml +14 -0
- data/install_scripts/GEO/series/GSE3205.yaml +36 -0
- data/install_scripts/GEO/series/GSE3206.yaml +23 -0
- data/install_scripts/GEO/series/GSE3315.yaml +13 -0
- data/install_scripts/GEO/series/GSE3335.yaml +15 -0
- data/install_scripts/GEO/series/GSE34.yaml +31 -0
- data/install_scripts/GEO/series/GSE3470.yaml +15 -0
- data/install_scripts/GEO/series/GSE35.yaml +80 -0
- data/install_scripts/GEO/series/GSE3503.yaml +19 -0
- data/install_scripts/GEO/series/GSE3683.yaml +83 -0
- data/install_scripts/GEO/series/GSE3684.yaml +19 -0
- data/install_scripts/GEO/series/GSE3685.yaml +31 -0
- data/install_scripts/GEO/series/GSE3686.yaml +63 -0
- data/install_scripts/GEO/series/GSE3687.yaml +83 -0
- data/install_scripts/GEO/series/GSE3802.yaml +19 -0
- data/install_scripts/GEO/series/GSE3803.yaml +19 -0
- data/install_scripts/GEO/series/GSE3804.yaml +19 -0
- data/install_scripts/GEO/series/GSE3805.yaml +19 -0
- data/install_scripts/GEO/series/GSE3813.yaml +9 -0
- data/install_scripts/GEO/series/GSE3814.yaml +71 -0
- data/install_scripts/GEO/series/GSE3815.yaml +75 -0
- data/install_scripts/GEO/series/GSE3817.yaml +13 -0
- data/install_scripts/GEO/series/GSE3818.yaml +15 -0
- data/install_scripts/GEO/series/GSE3819.yaml +13 -0
- data/install_scripts/GEO/series/GSE3820.yaml +61 -0
- data/install_scripts/GEO/series/GSE3821.yaml +55 -0
- data/install_scripts/GEO/series/GSE3844.yaml +11 -0
- data/install_scripts/GEO/series/GSE3853.yaml +31 -0
- data/install_scripts/GEO/series/GSE3935.yaml +12 -0
- data/install_scripts/GEO/series/GSE3969.yaml +14 -0
- data/install_scripts/GEO/series/GSE4049.yaml +80 -0
- data/install_scripts/GEO/series/GSE4144.yaml +9 -0
- data/install_scripts/GEO/series/GSE4261.yaml +59 -0
- data/install_scripts/GEO/series/GSE4295.yaml +63 -0
- data/install_scripts/GEO/series/GSE4398.yaml +50 -0
- data/install_scripts/GEO/series/GSE4719.yaml +76 -0
- data/install_scripts/GEO/series/GSE4720.yaml +78 -0
- data/install_scripts/GEO/series/GSE4721.yaml +14 -0
- data/install_scripts/GEO/series/GSE4807.yaml +67 -0
- data/install_scripts/GEO/series/GSE4826.yaml +39 -0
- data/install_scripts/GEO/series/GSE4934.yaml +23 -0
- data/install_scripts/GEO/series/GSE5027.yaml +31 -0
- data/install_scripts/GEO/series/GSE5070.yaml +25 -0
- data/install_scripts/GEO/series/GSE5238.yaml +31 -0
- data/install_scripts/GEO/series/GSE5267.yaml +55 -0
- data/install_scripts/GEO/series/GSE5281.yaml +492 -0
- data/install_scripts/GEO/series/GSE5290.yaml +24 -0
- data/install_scripts/GEO/series/GSE5376.yaml +107 -0
- data/install_scripts/GEO/series/GSE5575.yaml +13 -0
- data/install_scripts/GEO/series/GSE5835.yaml +25 -0
- data/install_scripts/GEO/series/GSE5836.yaml +37 -0
- data/install_scripts/GEO/series/GSE5837.yaml +37 -0
- data/install_scripts/GEO/series/GSE5938.yaml +187 -0
- data/install_scripts/GEO/series/GSE600.yaml +29 -0
- data/install_scripts/GEO/series/GSE6018.yaml +55 -0
- data/install_scripts/GEO/series/GSE6066.yaml +20 -0
- data/install_scripts/GEO/series/GSE6067.yaml +31 -0
- data/install_scripts/GEO/series/GSE6068.yaml +55 -0
- data/install_scripts/GEO/series/GSE6070.yaml +31 -0
- data/install_scripts/GEO/series/GSE6071.yaml +30 -0
- data/install_scripts/GEO/series/GSE6072.yaml +37 -0
- data/install_scripts/GEO/series/GSE6101.yaml +26 -0
- data/install_scripts/GEO/series/GSE6111.yaml +20 -0
- data/install_scripts/GEO/series/GSE6190.yaml +30 -0
- data/install_scripts/GEO/series/GSE6277.yaml +19 -0
- data/install_scripts/GEO/series/GSE6331.yaml +51 -0
- data/install_scripts/GEO/series/GSE6346.yaml +49 -0
- data/install_scripts/GEO/series/GSE6358.yaml +22 -0
- data/install_scripts/GEO/series/GSE6405.yaml +36 -0
- data/install_scripts/GEO/series/GSE6450.yaml +51 -0
- data/install_scripts/GEO/series/GSE6687.yaml +15 -0
- data/install_scripts/GEO/series/GSE6705.yaml +19 -0
- data/install_scripts/GEO/series/GSE6801.yaml +27 -0
- data/install_scripts/GEO/series/GSE6847.yaml +18 -0
- data/install_scripts/GEO/series/GSE6870.yaml +23 -0
- data/install_scripts/GEO/series/GSE7103.yaml +28 -0
- data/install_scripts/GEO/series/GSE7140.yaml +19 -0
- data/install_scripts/GEO/series/GSE7188.yaml +23 -0
- data/install_scripts/GEO/series/GSE7261.yaml +16 -0
- data/install_scripts/GEO/series/GSE7337.yaml +19 -0
- data/install_scripts/GEO/series/GSE7338.yaml +19 -0
- data/install_scripts/GEO/series/GSE7362.yaml +123 -0
- data/install_scripts/GEO/series/GSE7369.yaml +15 -0
- data/install_scripts/GEO/series/GSE7525.yaml +33 -0
- data/install_scripts/GEO/series/GSE7537.yaml +27 -0
- data/install_scripts/GEO/series/GSE7645.yaml +152 -0
- data/install_scripts/GEO/series/GSE7660.yaml +41 -0
- data/install_scripts/GEO/series/GSE7820.yaml +30 -0
- data/install_scripts/GEO/series/GSE79.yaml +32 -0
- data/install_scripts/GEO/series/GSE8035.yaml +19 -0
- data/install_scripts/GEO/series/GSE8088.yaml +13 -0
- data/install_scripts/GEO/series/GSE8089.yaml +19 -0
- data/install_scripts/GEO/series/GSE8111.yaml +15 -0
- data/install_scripts/GEO/series/GSE8237.yaml +35 -0
- data/install_scripts/GEO/series/GSE8326.yaml +37 -0
- data/install_scripts/GEO/series/GSE8399.yaml +13 -0
- data/install_scripts/GEO/series/GSE850.yaml +15 -0
- data/install_scripts/GEO/series/GSE8506.yaml +32 -0
- data/install_scripts/GEO/series/GSE8542.yaml +47 -0
- data/install_scripts/GEO/series/GSE8558.yaml +19 -0
- data/install_scripts/GEO/series/GSE8559.yaml +47 -0
- data/install_scripts/GEO/series/GSE8613.yaml +19 -0
- data/install_scripts/GEO/series/GSE8629.yaml +18 -0
- data/install_scripts/GEO/series/GSE8729.yaml +19 -0
- data/install_scripts/GEO/series/GSE8761.yaml +55 -0
- data/install_scripts/GEO/series/GSE8765.yaml +15 -0
- data/install_scripts/GEO/series/GSE8805.yaml +64 -0
- data/install_scripts/GEO/series/GSE8825.yaml +79 -0
- data/install_scripts/GEO/series/GSE8895.yaml +31 -0
- data/install_scripts/GEO/series/GSE8897.yaml +17 -0
- data/install_scripts/GEO/series/GSE8898.yaml +18 -0
- data/install_scripts/GEO/series/GSE8900.yaml +43 -0
- data/install_scripts/GEO/series/GSE8982.yaml +106 -0
- data/install_scripts/GEO/series/GSE920.yaml +20 -0
- data/install_scripts/GEO/series/GSE960.yaml +10 -0
- data/install_scripts/GEO/series/GSE961.yaml +14 -0
- data/install_scripts/GEO/series/GSE962.yaml +20 -0
- data/install_scripts/GEO/series/GSE963.yaml +14 -0
- data/install_scripts/GEO/series/GSE964.yaml +14 -0
- data/install_scripts/GEO/series/GSE965.yaml +14 -0
- data/install_scripts/GEO/series/GSE966.yaml +14 -0
- data/install_scripts/GEO/series/GSE993.yaml +9 -0
- data/lib/MARQ.rb +79 -0
- data/lib/MARQ/CustomDS.rb +99 -0
- data/lib/MARQ/GEO.rb +585 -0
- data/lib/MARQ/ID.rb +148 -0
- data/lib/MARQ/MADB.rb +243 -0
- data/lib/MARQ/annotations.rb +740 -0
- data/lib/MARQ/fdr.rb +177 -0
- data/lib/MARQ/main.rb +227 -0
- data/lib/MARQ/rankproduct.rb +146 -0
- data/lib/MARQ/score.rb +395 -0
- data/merb/Rakefile +35 -0
- data/merb/app/controllers/application.rb +2 -0
- data/merb/app/controllers/exceptions.rb +13 -0
- data/merb/app/controllers/help.rb +22 -0
- data/merb/app/controllers/main.rb +72 -0
- data/merb/app/controllers/normalize.rb +41 -0
- data/merb/app/controllers/results.rb +247 -0
- data/merb/app/controllers/series.rb +44 -0
- data/merb/app/helpers/global_helpers.rb +5 -0
- data/merb/app/helpers/main_helper.rb +5 -0
- data/merb/app/helpers/results_helper.rb +50 -0
- data/merb/app/stylesheets/marq.sass +561 -0
- data/merb/app/stylesheets/marq_mixins.sass +23 -0
- data/merb/app/stylesheets/rounded_corners.sass +35 -0
- data/merb/app/views/exceptions/not_acceptable.html.erb +63 -0
- data/merb/app/views/exceptions/not_found.html.erb +47 -0
- data/merb/app/views/help/_menu.html.haml +4 -0
- data/merb/app/views/help/index.html.haml +110 -0
- data/merb/app/views/help/meth.html.haml +301 -0
- data/merb/app/views/help/quick.html.haml +149 -0
- data/merb/app/views/layout/application.html.haml +27 -0
- data/merb/app/views/main/index.html.haml +96 -0
- data/merb/app/views/normalize/index.html.haml +51 -0
- data/merb/app/views/partials/_annotations.html.haml +37 -0
- data/merb/app/views/partials/_enrichment.html.haml +17 -0
- data/merb/app/views/partials/_experiment.html.haml +33 -0
- data/merb/app/views/partials/_ie.html.haml +19 -0
- data/merb/app/views/partials/_video.html.haml +5 -0
- data/merb/app/views/results/compare.html.haml +161 -0
- data/merb/app/views/results/error.html.haml +5 -0
- data/merb/app/views/results/explore_hits.html.haml +54 -0
- data/merb/app/views/results/images.html.haml +18 -0
- data/merb/app/views/results/main.html.haml +125 -0
- data/merb/app/views/results/wait.html.haml +10 -0
- data/merb/app/views/series/main.html.haml +99 -0
- data/merb/autotest/discover.rb +1 -0
- data/merb/autotest/merb.rb +149 -0
- data/merb/autotest/merb_rspec.rb +165 -0
- data/merb/config.ru +76 -0
- data/merb/config/environments/development.rb +15 -0
- data/merb/config/environments/production.rb +10 -0
- data/merb/config/environments/rake.rb +11 -0
- data/merb/config/environments/staging.rb +10 -0
- data/merb/config/environments/test.rb +12 -0
- data/merb/config/init.rb +66 -0
- data/merb/config/rack.rb +11 -0
- data/merb/config/router.rb +64 -0
- data/merb/doc/rdoc/generators/merb_generator.rb +1362 -0
- data/merb/doc/rdoc/generators/template/merb/api_grease.js +640 -0
- data/merb/doc/rdoc/generators/template/merb/index.html.erb +37 -0
- data/merb/doc/rdoc/generators/template/merb/merb.css +252 -0
- data/merb/doc/rdoc/generators/template/merb/merb.rb +351 -0
- data/merb/doc/rdoc/generators/template/merb/merb_doc_styles.css +492 -0
- data/merb/doc/rdoc/generators/template/merb/prototype.js +2515 -0
- data/merb/lib/helper.rb +452 -0
- data/merb/public/favicon.ico +0 -0
- data/merb/public/images/guide/annotations.png +0 -0
- data/merb/public/images/guide/compare.png +0 -0
- data/merb/public/images/guide/compare_page.png +0 -0
- data/merb/public/images/guide/download.png +0 -0
- data/merb/public/images/guide/genes.png +0 -0
- data/merb/public/images/guide/hits.png +0 -0
- data/merb/public/images/guide/name.png +0 -0
- data/merb/public/images/guide/organism.png +0 -0
- data/merb/public/images/guide/table.png +0 -0
- data/merb/public/images/loadingAnimation.gif +0 -0
- data/merb/public/images/logo_ARTECS.jpg +0 -0
- data/merb/public/images/logo_BCU.jpg +0 -0
- data/merb/public/images/logo_MICRO.png +0 -0
- data/merb/public/images/macFFBgHack.png +0 -0
- data/merb/public/images/merb.jpg +0 -0
- data/merb/public/images/meth/G.gif +0 -0
- data/merb/public/images/meth/MARQ.gif +0 -0
- data/merb/public/images/meth/PS_bottom.gif +0 -0
- data/merb/public/images/meth/PS_bottom_formula.gif +0 -0
- data/merb/public/images/meth/PS_top.gif +0 -0
- data/merb/public/images/meth/PS_top_formula.gif +0 -0
- data/merb/public/images/meth/Q.gif +0 -0
- data/merb/public/images/meth/Rplot.png +0 -0
- data/merb/public/images/meth/S_bottom.gif +0 -0
- data/merb/public/images/meth/S_diff.gif +0 -0
- data/merb/public/images/meth/S_down.gif +0 -0
- data/merb/public/images/meth/S_top.gif +0 -0
- data/merb/public/images/meth/S_up.gif +0 -0
- data/merb/public/images/meth/alpha.gif +0 -0
- data/merb/public/images/meth/beta_0.gif +0 -0
- data/merb/public/images/meth/beta_1.gif +0 -0
- data/merb/public/images/meth/d.gif +0 -0
- data/merb/public/images/meth/d_formula.gif +0 -0
- data/merb/public/images/meth/d_noabs.gif +0 -0
- data/merb/public/images/meth/d_range.gif +0 -0
- data/merb/public/images/meth/g.gif +0 -0
- data/merb/public/images/meth/i.gif +0 -0
- data/merb/public/images/meth/m.gif +0 -0
- data/merb/public/images/meth/p.gif +0 -0
- data/merb/public/images/meth/penalty.gif +0 -0
- data/merb/public/images/meth/q.gif +0 -0
- data/merb/public/images/meth/w.gif +0 -0
- data/merb/public/images/meth/w_formula.gif +0 -0
- data/merb/public/images/meth/w_weight.gif +0 -0
- data/merb/public/images/meth/weight.gif +0 -0
- data/merb/public/images/meth/weight_function.gif +0 -0
- data/merb/public/images/top.png +0 -0
- data/merb/public/images/top2.png +0 -0
- data/merb/public/images/wait.gif +0 -0
- data/merb/public/javascripts/jquery-ui.core.js +519 -0
- data/merb/public/javascripts/jquery-ui.hitarea.js +168 -0
- data/merb/public/javascripts/jquery.js +19 -0
- data/merb/public/javascripts/jquery.scrollTo.js +11 -0
- data/merb/public/javascripts/jquery.tablescroll.js +124 -0
- data/merb/public/javascripts/jquery.tabs.js +642 -0
- data/merb/public/javascripts/marq.js +51 -0
- data/merb/public/javascripts/marq_pages.js +504 -0
- data/merb/public/javascripts/thickbox.js +320 -0
- data/merb/public/javascripts/wz_jsgraphics.js +1108 -0
- data/merb/public/merb.fcgi +22 -0
- data/merb/public/plugins/dialog/javascripts/jquery-ui.dialog.js +44 -0
- data/merb/public/plugins/dialog/stylesheets/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/merb/public/plugins/dialog/stylesheets/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/merb/public/plugins/dialog/stylesheets/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/merb/public/plugins/dialog/stylesheets/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/merb/public/plugins/dialog/stylesheets/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/merb/public/plugins/dialog/stylesheets/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/merb/public/plugins/dialog/stylesheets/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/merb/public/plugins/dialog/stylesheets/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/merb/public/plugins/dialog/stylesheets/images/ui-icons_222222_256x240.png +0 -0
- data/merb/public/plugins/dialog/stylesheets/images/ui-icons_2e83ff_256x240.png +0 -0
- data/merb/public/plugins/dialog/stylesheets/images/ui-icons_454545_256x240.png +0 -0
- data/merb/public/plugins/dialog/stylesheets/images/ui-icons_888888_256x240.png +0 -0
- data/merb/public/plugins/dialog/stylesheets/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/merb/public/plugins/dialog/stylesheets/jquery-ui.dialog.css +404 -0
- data/merb/public/plugins/tablesorter/images/asc.gif +0 -0
- data/merb/public/plugins/tablesorter/images/bg.gif +0 -0
- data/merb/public/plugins/tablesorter/images/blue.zip +0 -0
- data/merb/public/plugins/tablesorter/images/desc.gif +0 -0
- data/merb/public/plugins/tablesorter/javascripts/jquery.tablesorter.js +2 -0
- data/merb/public/plugins/tablesorter/stylesheets/jquery.tablesorter.css +39 -0
- data/merb/public/robots.txt +5 -0
- data/merb/public/stylesheets/thickbox.css +163 -0
- data/merb/spec/requests/main_spec.rb +7 -0
- data/merb/spec/requests/results_spec.rb +7 -0
- data/merb/spec/spec.opts +0 -0
- data/merb/spec/spec_helper.rb +20 -0
- data/merb/tasks/merb.thor/app_script.rb +31 -0
- data/merb/tasks/merb.thor/common.rb +68 -0
- data/merb/tasks/merb.thor/gem_ext.rb +125 -0
- data/merb/tasks/merb.thor/main.thor +150 -0
- data/merb/tasks/merb.thor/ops.rb +93 -0
- data/merb/tasks/merb.thor/utils.rb +40 -0
- data/tasks/install.rake +21 -0
- data/webservice/MARQWS.rb +167 -0
- metadata +798 -0
data/lib/MARQ/fdr.rb
ADDED
@@ -0,0 +1,177 @@
|
|
1
|
+
require 'inline'
|
2
|
+
|
3
|
+
module FDR
|
4
|
+
|
5
|
+
# values should be sorted
|
6
|
+
def self.step_up_native(values, rate)
|
7
|
+
total = values.length
|
8
|
+
|
9
|
+
last = 0
|
10
|
+
values.each_with_index do |value, i|
|
11
|
+
if value > rate * (i + 1).to_f / total
|
12
|
+
return last
|
13
|
+
end
|
14
|
+
last = value
|
15
|
+
end
|
16
|
+
return last
|
17
|
+
end
|
18
|
+
|
19
|
+
# values should be sorted
|
20
|
+
def self.adjust_native(values)
|
21
|
+
total = values.length.to_f
|
22
|
+
|
23
|
+
adjusted = []
|
24
|
+
last = 1
|
25
|
+
values.reverse.each_with_index do |value, i|
|
26
|
+
adj = [last, value * total / (total - i )].min
|
27
|
+
last = adj
|
28
|
+
adjusted << adj
|
29
|
+
end
|
30
|
+
|
31
|
+
adjusted.reverse
|
32
|
+
end
|
33
|
+
|
34
|
+
class << self
|
35
|
+
inline do |builder|
|
36
|
+
builder.c <<-EOC
|
37
|
+
double step_up_fast(VALUE ps, double rate){
|
38
|
+
long idx;
|
39
|
+
int total = RARRAY(ps)->len;
|
40
|
+
|
41
|
+
double last_value = 0;
|
42
|
+
for (idx = 0; idx < total; idx++){
|
43
|
+
double p = (double) RFLOAT(rb_ary_entry(ps, idx))->value;
|
44
|
+
|
45
|
+
if (p > rate * (double) (idx + 1) / (double) total){
|
46
|
+
return last_value;
|
47
|
+
}
|
48
|
+
last_value = p;
|
49
|
+
}
|
50
|
+
|
51
|
+
return last_value;
|
52
|
+
}
|
53
|
+
|
54
|
+
EOC
|
55
|
+
|
56
|
+
|
57
|
+
builder.c <<-EOC
|
58
|
+
|
59
|
+
VALUE adjust_fast_self(VALUE ps){
|
60
|
+
long idx;
|
61
|
+
|
62
|
+
int total = RARRAY(ps)->len;
|
63
|
+
|
64
|
+
VALUE new = rb_ary_new();
|
65
|
+
|
66
|
+
double last = 1;
|
67
|
+
for (idx = total - 1; idx >= 0 ; idx-- ){
|
68
|
+
double p = (double) RFLOAT(rb_ary_entry(ps, idx))->value;
|
69
|
+
|
70
|
+
|
71
|
+
p = p * (double) total / (double) (idx + 1);
|
72
|
+
if (p > last) p = last;
|
73
|
+
last = p;
|
74
|
+
|
75
|
+
RFLOAT(rb_ary_entry(ps, idx))->value = p;
|
76
|
+
}
|
77
|
+
|
78
|
+
return ps;
|
79
|
+
}
|
80
|
+
EOC
|
81
|
+
|
82
|
+
builder.c <<-EOC
|
83
|
+
VALUE adjust_fast(VALUE ps){
|
84
|
+
long idx;
|
85
|
+
|
86
|
+
int total = RARRAY(ps)->len;
|
87
|
+
|
88
|
+
VALUE new = rb_ary_new();
|
89
|
+
|
90
|
+
double last = 1;
|
91
|
+
for (idx = total - 1; idx >= 0 ; idx-- ){
|
92
|
+
double p = (double) RFLOAT(rb_ary_entry(ps, idx))->value;
|
93
|
+
|
94
|
+
|
95
|
+
p = p * (double) total / (double) (idx + 1);
|
96
|
+
if (p > last) p = last;
|
97
|
+
last = p;
|
98
|
+
|
99
|
+
rb_ary_unshift(new,rb_float_new(p));
|
100
|
+
}
|
101
|
+
|
102
|
+
return new;
|
103
|
+
}
|
104
|
+
EOC
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
class << self
|
109
|
+
alias_method :adjust, :adjust_fast
|
110
|
+
alias_method :adjust!, :adjust_fast_self
|
111
|
+
alias_method :step_up, :step_up_fast
|
112
|
+
end
|
113
|
+
|
114
|
+
# This will change the values of the floats in situ
|
115
|
+
def self.adjust_hash!(data, field = nil)
|
116
|
+
keys = []
|
117
|
+
values = []
|
118
|
+
|
119
|
+
data.collect{|key, value| [key, field.nil? ? value : value[field]] }.sort{|a,b|
|
120
|
+
a[1] <=> b[1]
|
121
|
+
}.each{|p|
|
122
|
+
keys << p[0]
|
123
|
+
values << p[1]
|
124
|
+
}
|
125
|
+
|
126
|
+
FDR.adjust!(values)
|
127
|
+
|
128
|
+
data
|
129
|
+
end
|
130
|
+
|
131
|
+
end
|
132
|
+
|
133
|
+
if __FILE__ == $0
|
134
|
+
|
135
|
+
require 'test/unit'
|
136
|
+
require 'rsruby'
|
137
|
+
|
138
|
+
class FDRTest < Test::Unit::TestCase
|
139
|
+
def clean(values)
|
140
|
+
if Array === values
|
141
|
+
values.collect{|v| (v * 10000).to_i.to_f / 10000}
|
142
|
+
else
|
143
|
+
(values * 10000).to_i.to_f / 10000
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
147
|
+
def copy(values)
|
148
|
+
values.collect{|v| v + 0.0}
|
149
|
+
end
|
150
|
+
|
151
|
+
def setup
|
152
|
+
@r = RSRuby.instance
|
153
|
+
@values = [0.001, 0.002, 0.003, 0.003, 0.003, 0.004, 0.006, 0.07, 0.09]
|
154
|
+
@threshold = 0.01
|
155
|
+
@r_adj = @r.p_adjust(@values,'BH')
|
156
|
+
|
157
|
+
end
|
158
|
+
|
159
|
+
def test_step_up
|
160
|
+
assert_equal(0.006, clean(FDR.step_up(@values, @threshold)))
|
161
|
+
assert_equal(clean(FDR.step_up_native(@values, @threshold)), clean(FDR.step_up_fast(@values,@threshold)))
|
162
|
+
assert_equal(@r_adj.select{|v| v <= @threshold}.length, @values.select{|v| v <= FDR.step_up(@values, @threshold)}.length)
|
163
|
+
end
|
164
|
+
|
165
|
+
def test_adjust
|
166
|
+
assert_equal(clean(@r_adj), clean(FDR.adjust_native(@values)))
|
167
|
+
assert_equal(clean(FDR.adjust_fast(@values)), clean(FDR.adjust_native(@values)))
|
168
|
+
|
169
|
+
assert_equal(clean(@r_adj), clean(FDR.adjust_fast_self(copy(@values))))
|
170
|
+
end
|
171
|
+
|
172
|
+
end
|
173
|
+
|
174
|
+
require 'test/unit/ui/console/testrunner'
|
175
|
+
Test::Unit::UI::Console::TestRunner.run(FDRTest)
|
176
|
+
|
177
|
+
end
|
data/lib/MARQ/main.rb
ADDED
@@ -0,0 +1,227 @@
|
|
1
|
+
require 'MARQ'
|
2
|
+
require 'MARQ/MADB'
|
3
|
+
require 'MARQ/score'
|
4
|
+
|
5
|
+
module MARQ
|
6
|
+
def self.platform_type(platform)
|
7
|
+
if platform.match(/GPL\d+|GDS\d+|GSE\d+/)
|
8
|
+
return :GEO
|
9
|
+
else
|
10
|
+
return :CustomDS
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.dataset_path(dataset)
|
15
|
+
if platform_type(dataset) == :GEO
|
16
|
+
GEO::dataset_path(dataset)
|
17
|
+
else
|
18
|
+
CustomDS::path(dataset)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.platform_organism(platform)
|
23
|
+
if platform_type(platform) == :GEO
|
24
|
+
if platform.match(/^GPL/)
|
25
|
+
GEO::GPL_info(platform)[:organism]
|
26
|
+
else
|
27
|
+
GEO::GPL_info(GEO::dataset_platform(platform))[:organism]
|
28
|
+
end
|
29
|
+
else
|
30
|
+
CustomDS::organism(platform)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.organism_platforms(org)
|
35
|
+
GEO::organism_platforms(org) + CustomDS::datasets(org)
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.has_cross_platform?(dataset, platform=nil)
|
39
|
+
if platform_type(platform) == :GEO
|
40
|
+
GEO::has_cross_platform?(dataset, platform)
|
41
|
+
else
|
42
|
+
CustomDS::has_cross_platform?(platform)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def self.is_cross_platform?(dataset, platform=nil)
|
47
|
+
if platform_type(platform) == :GEO
|
48
|
+
GEO::is_cross_platform?(dataset, platform)
|
49
|
+
else
|
50
|
+
CustomDS::is_cross_platform?(platform)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
def self.complete_positions(positions, matched, genes)
|
54
|
+
|
55
|
+
pos = Hash[*matched.zip(positions).flatten]
|
56
|
+
complete = genes.collect{|gene|
|
57
|
+
gene = gene.downcase.strip
|
58
|
+
if matched.include? gene
|
59
|
+
pos[gene] || "MISSING"
|
60
|
+
else
|
61
|
+
"NOT IN PLATFORM"
|
62
|
+
end
|
63
|
+
}
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
def self.platform_scores_up_down(platform, up, down)
|
68
|
+
if platform_type(platform) == :GEO
|
69
|
+
GEORQ.platform_scores_up_down(platform, up, down)
|
70
|
+
else
|
71
|
+
CustomDSRQ.scores_up_down(platform, up, down)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
module CustomDSRQ
|
76
|
+
|
77
|
+
def self.scores_up_down(platform, up, down)
|
78
|
+
matched_up = DBcache.matches(platform + '_codes', up).length
|
79
|
+
positions_up, matched_up = *MADB::CustomDS.positions(platform, up)
|
80
|
+
missing_up = up.length - matched_up.length
|
81
|
+
|
82
|
+
|
83
|
+
|
84
|
+
matched_down = DBcache.matches(platform + '_codes', down).length
|
85
|
+
positions_down, matched_down = *MADB::CustomDS.positions(platform, down)
|
86
|
+
missing_down = down.length - matched_down.length
|
87
|
+
|
88
|
+
experiments = positions_up.keys
|
89
|
+
platform_entries = MADB::CustomDS.platform_entries(platform)
|
90
|
+
|
91
|
+
scores = experiments.collect{|experiment|
|
92
|
+
score = Score.score_up_down(positions_up[experiment], positions_down[experiment], platform_entries, missing_up, missing_down)
|
93
|
+
score[:total_entries] = platform_entries
|
94
|
+
score[:positions_up] = MARQ.complete_positions(positions_up[experiment], matched_up, up) if positions_up.any?
|
95
|
+
score[:positions_down] = MARQ.complete_positions(positions_down[experiment], matched_down, down) if positions_down.any?
|
96
|
+
score
|
97
|
+
}
|
98
|
+
|
99
|
+
pvalues = Score.pvalues(scores.collect{|s| s[:score]}, up.length, down.length, platform_entries)
|
100
|
+
|
101
|
+
results = {}
|
102
|
+
experiments.each_with_index{|experiment,i|
|
103
|
+
results[experiment] = scores[i].merge(:pvalue => pvalues[i])
|
104
|
+
}
|
105
|
+
|
106
|
+
|
107
|
+
results
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
module GEORQ
|
112
|
+
|
113
|
+
def self.platform_scores_up_down(platform, up, down)
|
114
|
+
platform_entries = MADB::GEO.platform_entries(platform)
|
115
|
+
|
116
|
+
positions_up, matched_up = *MADB::GEO.positions(platform, up)
|
117
|
+
missing_up = up.length - matched_up.length
|
118
|
+
|
119
|
+
positions_down, matched_down = *MADB::GEO.positions(platform, down)
|
120
|
+
missing_down = down.length - matched_down.length
|
121
|
+
|
122
|
+
return {} if positions_up.keys.empty? && positions_down.keys.empty?
|
123
|
+
if positions_up.keys.any?
|
124
|
+
experiments = positions_up.keys
|
125
|
+
else
|
126
|
+
experiments = positions_down.keys
|
127
|
+
end
|
128
|
+
|
129
|
+
scores = experiments.collect{|experiment|
|
130
|
+
score = Score.score_up_down(positions_up[experiment], positions_down[experiment], platform_entries, missing_up, missing_down)
|
131
|
+
score[:total_entries] = platform_entries
|
132
|
+
score[:positions_up] = MARQ.complete_positions(positions_up[experiment], matched_up, up) if positions_up.any?
|
133
|
+
score[:positions_down] = MARQ.complete_positions(positions_down[experiment], matched_down, down) if positions_down.any?
|
134
|
+
score
|
135
|
+
}
|
136
|
+
|
137
|
+
pvalues = Score.pvalues(scores.collect{|s| s[:score]}, up.length, down.length, platform_entries)
|
138
|
+
|
139
|
+
results = {}
|
140
|
+
experiments.each_with_index{|experiment,i|
|
141
|
+
results[experiment] = scores[i]
|
142
|
+
results[experiment][:pvalue] = pvalues[i]
|
143
|
+
}
|
144
|
+
|
145
|
+
|
146
|
+
results
|
147
|
+
end
|
148
|
+
|
149
|
+
|
150
|
+
def self.draw_hits(platform, genes, directory)
|
151
|
+
positions, matched = MADB::GEO.positions(platform, genes).values_at(0,1)
|
152
|
+
|
153
|
+
platform_entries = MADB::GEO.platform_entries(platform)
|
154
|
+
|
155
|
+
positions.each{|experiment, positions|
|
156
|
+
Score.draw_hits(positions.compact, platform_entries, File.join(directory, experiment.hash_code + '.png'), {:size => 1000, :bg_color => :green})
|
157
|
+
}
|
158
|
+
end
|
159
|
+
|
160
|
+
|
161
|
+
def self.dataset_positions(dataset, genes)
|
162
|
+
if dataset =~ /_cross_platform/
|
163
|
+
dataset.sub!(/_cross_platform/,'')
|
164
|
+
platform = GEO.dataset_platform(dataset) + '_cross_platform'
|
165
|
+
else
|
166
|
+
platform = GEO.dataset_platform(dataset)
|
167
|
+
end
|
168
|
+
|
169
|
+
|
170
|
+
positions = {}
|
171
|
+
MADB::GEO.positions(platform, genes).first.select{|k,v| k =~ /^#{ dataset }/}.each{|p|
|
172
|
+
positions[p[0].sub(/^#{ dataset }: /,'')] = p[1]
|
173
|
+
}
|
174
|
+
positions
|
175
|
+
end
|
176
|
+
|
177
|
+
def self.dataset_scores(dataset, genes)
|
178
|
+
total = DBcache::num_rows(platform)
|
179
|
+
positions = dataset_positions(dataset, genes)
|
180
|
+
|
181
|
+
scores = {}
|
182
|
+
positions.each{|experiment, positions|
|
183
|
+
scores[experiment] = Score.score(positions, total, genes.length - positions.length)
|
184
|
+
}
|
185
|
+
scores
|
186
|
+
end
|
187
|
+
|
188
|
+
end
|
189
|
+
end
|
190
|
+
|
191
|
+
if __FILE__ == $0
|
192
|
+
#puts MARQ::organism_platforms('human')
|
193
|
+
#puts MARQ.platform_organism("HaploidData")
|
194
|
+
#puts MARQ::platform_scores_up_down("HaploidData",%w( YMR261c YDL140c YIL122w YPL093w YHR211w YDL142c YHR106w YOR103c YDR233c YLR181c),%w()).keys
|
195
|
+
|
196
|
+
up = %w(
|
197
|
+
|
198
|
+
51228_at 215046_at 205009_at 204915_s_at 202707_at
|
199
|
+
208265_at 210618_at 201185_at 206650_at 200719_at
|
200
|
+
215661_at 202071_at 214408_s_at 215092_s_at 206168_at
|
201
|
+
212686_at 214162_at 221008_s_at 217709_at 210957_s_at
|
202
|
+
|
203
|
+
)
|
204
|
+
|
205
|
+
|
206
|
+
require 'MARQ/ID'
|
207
|
+
require 'pp'
|
208
|
+
genes = ID.translate('human',up).compact
|
209
|
+
|
210
|
+
#pp up.zip(genes)
|
211
|
+
#genes = Open.read("/home/miki/git/MARQ/test/GDS1375_malignant_vs_normal_down.genes").collect{|l| l.chomp.strip}
|
212
|
+
positions = MARQ::GEORQ.dataset_positions('GDS1231_cross_platform',genes)
|
213
|
+
pp positions
|
214
|
+
|
215
|
+
|
216
|
+
#MARQ::GEORQ.platform_scores_up_down('GPL96_cross_platform',genes,[]).each{|ex, r|
|
217
|
+
# puts ex
|
218
|
+
# puts r[:pvalue]
|
219
|
+
#}
|
220
|
+
|
221
|
+
#Score.draw_hits(positions["disease.state: malignant melanoma <=> normal"], MADB::GEORQ.experiment_entries('GPL96','GDS1375: disease.state: malignant melanoma <=> normal') , '/tmp/foo.png',:size => 1000)
|
222
|
+
|
223
|
+
|
224
|
+
|
225
|
+
end
|
226
|
+
|
227
|
+
|
@@ -0,0 +1,146 @@
|
|
1
|
+
require 'MARQ'
|
2
|
+
module RankProduct
|
3
|
+
|
4
|
+
def self.ranks(dataset, experiment , from_FC = false, invert = false)
|
5
|
+
path = MARQ.dataset_path(dataset)
|
6
|
+
codes = Open.read(path + '.codes').collect{|line| line.strip}
|
7
|
+
|
8
|
+
experiments = Open.read(path + '.experiments').collect{|line| line.strip}
|
9
|
+
field = experiments.index experiment.strip
|
10
|
+
|
11
|
+
if from_FC
|
12
|
+
ratios = Open.read(path + '.logratios').collect{|line|
|
13
|
+
value = line.strip.split("\t")[field]
|
14
|
+
case
|
15
|
+
when value == "NA"
|
16
|
+
nil
|
17
|
+
|
18
|
+
# To sort decreasingly we change sign by default
|
19
|
+
when invert
|
20
|
+
value.to_f
|
21
|
+
else
|
22
|
+
- value.to_f
|
23
|
+
end
|
24
|
+
}
|
25
|
+
Hash[*codes.zip(ratios).sort{|a,b| b[1] <=> a[1]}.collect{|p| p[0]}.zip((1..codes.length).to_a).flatten]
|
26
|
+
else
|
27
|
+
orders = Open.read(path + '.orders').collect{|line|
|
28
|
+
value = line.strip.split("\t")[field]
|
29
|
+
case
|
30
|
+
when value == "NA"
|
31
|
+
nil
|
32
|
+
when invert
|
33
|
+
codes.length - line.strip.split("\t")[field].to_i + 1
|
34
|
+
else
|
35
|
+
line.strip.split("\t")[field].to_i
|
36
|
+
end
|
37
|
+
|
38
|
+
}
|
39
|
+
Hash[*codes.zip(orders).flatten]
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def self.score(gene_ranks, signature_sizes)
|
44
|
+
scores = {}
|
45
|
+
log_sizes = signature_sizes.collect{|size| Math::log(size)}
|
46
|
+
gene_ranks.each{|gene, positions|
|
47
|
+
scores[gene] = positions.zip(log_sizes).
|
48
|
+
collect{|p| Math::log(p[0]) - p[1]}.
|
49
|
+
inject(0){|acc, v| acc += v }
|
50
|
+
}
|
51
|
+
scores
|
52
|
+
end
|
53
|
+
|
54
|
+
def self.permutations(num_signatures, num = 1000)
|
55
|
+
scores = []
|
56
|
+
num.times{
|
57
|
+
value = 0
|
58
|
+
num_signatures.times{|size_and_log|
|
59
|
+
value += Math::log(rand)
|
60
|
+
}
|
61
|
+
scores << value
|
62
|
+
}
|
63
|
+
scores
|
64
|
+
end
|
65
|
+
|
66
|
+
def self.permutations_full(signature_sizes)
|
67
|
+
gene_ranks = {}
|
68
|
+
signature_sizes.each{|size|
|
69
|
+
(1..size).to_a.shuffle.each_with_index{|gene, pos|
|
70
|
+
gene_ranks[gene] ||= []
|
71
|
+
gene_ranks[gene] << pos + 1
|
72
|
+
}
|
73
|
+
}
|
74
|
+
gene_ranks.delete_if{|code, positions| positions.length != signature_sizes.length}
|
75
|
+
|
76
|
+
scores = score(gene_ranks, signature_sizes)
|
77
|
+
scores.values
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.rankproduct(signatures, options = {})
|
81
|
+
invert, from_FC, cross_platform = {
|
82
|
+
:invert => [],
|
83
|
+
:from_FC => false,
|
84
|
+
:cross_platform => false,
|
85
|
+
}.merge(options).values_at(:invert, :from_FC, :cross_platform)
|
86
|
+
|
87
|
+
ranks = {}
|
88
|
+
signatures.each{|signature|
|
89
|
+
dataset, experiment = signature.match(/^([^\:]*): (.*)/).values_at(1,2)
|
90
|
+
dataset = dataset + '_cross_platform' if cross_platform
|
91
|
+
ranks[signature] = self.ranks(dataset, experiment, from_FC, invert.include?(signature))
|
92
|
+
}
|
93
|
+
|
94
|
+
gene_ranks = {}
|
95
|
+
sizes = []
|
96
|
+
ranks.each{|signature, orders|
|
97
|
+
sizes << orders.length
|
98
|
+
orders.each{|code, position|
|
99
|
+
next if position.nil?
|
100
|
+
gene_ranks[code] ||= []
|
101
|
+
gene_ranks[code] << position
|
102
|
+
}
|
103
|
+
}
|
104
|
+
|
105
|
+
gene_ranks.delete_if{|code, positions| positions.length != signatures.uniq.length}
|
106
|
+
|
107
|
+
scores = score(gene_ranks, sizes)
|
108
|
+
num_permutations = 50000
|
109
|
+
|
110
|
+
permutation_scores = permutations(sizes.length, num_permutations)
|
111
|
+
|
112
|
+
permutation_scores = permutation_scores.sort
|
113
|
+
|
114
|
+
|
115
|
+
results = {}
|
116
|
+
scores.each{|gene, score|
|
117
|
+
pos = permutation_scores.count_smaller(score)
|
118
|
+
results[gene] = [score, pos.to_f / num_permutations]
|
119
|
+
}
|
120
|
+
|
121
|
+
|
122
|
+
num_genes = results.length
|
123
|
+
results.sort{|a,b|
|
124
|
+
a[1][0] <=> b[1][0]
|
125
|
+
}.each_with_index{|p,i|
|
126
|
+
gene = p[0]
|
127
|
+
info = p[1]
|
128
|
+
pvalue = info[1]
|
129
|
+
pfp = pvalue * num_genes / (i + 1)
|
130
|
+
info << pfp
|
131
|
+
}
|
132
|
+
|
133
|
+
results
|
134
|
+
end
|
135
|
+
|
136
|
+
end
|
137
|
+
|
138
|
+
if __FILE__ == $0
|
139
|
+
scores = RankProduct.rankproduct(
|
140
|
+
[ 'GDS2952: disease.state: rheumatoid arthritis <=> normal',
|
141
|
+
#'GDS2952: protocol: pre-treatment <=> untreated',
|
142
|
+
'GDS2952: protocol: post-treatment <=> untreated'], :cross_platform => true, :from_FC => true)
|
143
|
+
|
144
|
+
p scores.sort{|a,b| a[1][0] <=> b[1][0]}[1..10]
|
145
|
+
#scores.sort{|a,b| a[1][0] <=> b[1][0]}.reverse
|
146
|
+
end
|