rbbt-marq 1.0.0
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 +58 -0
- data/bin/marq_config +209 -0
- data/install_scripts/CustomDS/Rakefile +223 -0
- data/install_scripts/GEO/Rakefile +272 -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 +588 -0
- data/lib/MARQ/ID.rb +144 -0
- data/lib/MARQ/MADB.rb +238 -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/tasks/install.rake +21 -0
- metadata +588 -0
data/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2009 Miguel Vazquez
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/R/CustomDS.R
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
CustomDS.process <- function(prefix, cross_platform, conditions, description, two.channel,do.log2 = NULL){
|
2
|
+
tryCatch({
|
3
|
+
|
4
|
+
# Read data
|
5
|
+
genes = scan(file=paste(prefix,'codes',sep = "/"), what=character(),sep="\n",quiet=T);
|
6
|
+
m = matrix(scan(file=paste(prefix,'values',sep = "/"), sep="\t",quiet=T),length(genes),byrow=T);
|
7
|
+
rownames(m) <- genes
|
8
|
+
|
9
|
+
# Read conditions
|
10
|
+
conditions.list = vector();
|
11
|
+
names = vector();
|
12
|
+
for (file in conditions){
|
13
|
+
values = scan(paste(prefix,file,sep="/"),what=character(),sep="\n",quiet=T)
|
14
|
+
names = c(names, file)
|
15
|
+
conditions.list = cbind(conditions.list, values)
|
16
|
+
}
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
# Do log2 if needed
|
22
|
+
if (is.null(do.log2)){
|
23
|
+
do.log2 = MA.guess.do.log2(m, two.channel)
|
24
|
+
}
|
25
|
+
if (do.log2){
|
26
|
+
m <- log2(m);
|
27
|
+
}
|
28
|
+
m[is.infinite(m)] = NA; # The log may have created infinite values
|
29
|
+
|
30
|
+
# Make translations to genes
|
31
|
+
if (cross_platform){
|
32
|
+
trans = scan(file=paste(prefix,'cross_platform',sep = "/"),what=character(),sep="\n",quiet=T);
|
33
|
+
if (!is.null(trans)){
|
34
|
+
m <- MA.translate(m, trans);
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
# Once the data is read, change the prefix for cross_platform ids
|
39
|
+
if (cross_platform){
|
40
|
+
prefix = paste(prefix,'cross_platform', sep="_")
|
41
|
+
}
|
42
|
+
colnames(conditions.list) <- names;
|
43
|
+
|
44
|
+
values <- MA.process(m, conditions.list, two.channel);
|
45
|
+
|
46
|
+
ratios = as.data.frame(values$ratios);
|
47
|
+
t = as.data.frame(values$t);
|
48
|
+
p.values = as.data.frame(values$p.values);
|
49
|
+
|
50
|
+
|
51
|
+
# Calculate orders from best information
|
52
|
+
best = vector();
|
53
|
+
names = vector();
|
54
|
+
for (name in colnames(ratios)){
|
55
|
+
if (sum(colnames(t) == name) > 0){
|
56
|
+
best = cbind(best, t[,name]);
|
57
|
+
names = c(names, name);
|
58
|
+
}else{
|
59
|
+
best = cbind(best, ratios[,name]);
|
60
|
+
names = c(names, paste(name,'[ratio]', sep=" "));
|
61
|
+
}
|
62
|
+
}
|
63
|
+
rownames(best) <- rownames(ratios);
|
64
|
+
orders = as.data.frame(MA.get_order(best));
|
65
|
+
colnames(orders) <- names;
|
66
|
+
|
67
|
+
|
68
|
+
if (is.null(values)){
|
69
|
+
write(file=paste(prefix,'skip',sep="."), "no suitable samples for analysis" );
|
70
|
+
}else{
|
71
|
+
MA.save(prefix, orders, ratios, t, p.values, colnames(orders), description);
|
72
|
+
}
|
73
|
+
},
|
74
|
+
error=function(x){
|
75
|
+
print("exception caught");
|
76
|
+
print(x);
|
77
|
+
write(file=paste(prefix,'skip',sep="."), paste("an exception was caught during the analysis.",x,sep="\n") );
|
78
|
+
}
|
79
|
+
)
|
80
|
+
}
|
data/R/GEO.R
ADDED
@@ -0,0 +1,249 @@
|
|
1
|
+
library(Biobase);
|
2
|
+
library(GEOquery);
|
3
|
+
|
4
|
+
GEO.values <- function(data){
|
5
|
+
values <- MA.process(data$m, data$conditions, data$two.channel)
|
6
|
+
|
7
|
+
if (length(values$ratios) == 0){
|
8
|
+
return(NULL);
|
9
|
+
}else{
|
10
|
+
ratios = as.data.frame(values$ratios);
|
11
|
+
t = as.data.frame(values$t);
|
12
|
+
p.values = as.data.frame(values$p.values);
|
13
|
+
|
14
|
+
|
15
|
+
# Calculate orders from best information
|
16
|
+
best = vector();
|
17
|
+
names = vector();
|
18
|
+
for (name in colnames(ratios)){
|
19
|
+
if (sum(colnames(t) == name) > 0){
|
20
|
+
best = cbind(best, t[,name]);
|
21
|
+
names = c(names, name);
|
22
|
+
}else{
|
23
|
+
best = cbind(best, ratios[,name]);
|
24
|
+
names = c(names, paste(name,'[ratio]', sep=" "));
|
25
|
+
}
|
26
|
+
}
|
27
|
+
rownames(best) <- rownames(ratios)
|
28
|
+
orders = as.data.frame(MA.get_order(best));
|
29
|
+
colnames(orders) <- names
|
30
|
+
|
31
|
+
return(list(ratios = ratios, t = t, p.values = p.values, orders = orders));
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
GEO.get <- function(name, cachedir = NULL){
|
38
|
+
if (is.null(cachedir)){
|
39
|
+
object <- getGEO(name);
|
40
|
+
}else{
|
41
|
+
filename = dir(cachedir,pattern= paste(name, 'soft', sep='.'))[1]
|
42
|
+
if (is.na(filename)){
|
43
|
+
object <- getGEO(name, destdir=cachedir);
|
44
|
+
}else{
|
45
|
+
object <- getGEO(name, filename = paste(cachedir,filename,sep="/"));
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
object
|
50
|
+
}
|
51
|
+
|
52
|
+
# Parses phenotype data structure to determine the conditions
|
53
|
+
GEO.find_conditions <- function(ph) {
|
54
|
+
# Find conditions
|
55
|
+
labels = varLabels(ph);
|
56
|
+
|
57
|
+
# Removed not usefull
|
58
|
+
labels = labels[-grep('sample|description|individual|none',labels)]
|
59
|
+
|
60
|
+
# Find labels with replicates
|
61
|
+
|
62
|
+
labels
|
63
|
+
}
|
64
|
+
|
65
|
+
GEO.GDS.data <- function(name, id.field = NULL, translation.file = NULL, cachedir = NULL){
|
66
|
+
|
67
|
+
gds = GEO.get(name, cachedir);
|
68
|
+
|
69
|
+
gpl_name = Meta(gds)$platform
|
70
|
+
gpl = GEO.get(gpl_name, cachedir);
|
71
|
+
description = paste(Meta(gds)$title, Meta(gds)$description, sep="\n--\n")
|
72
|
+
|
73
|
+
|
74
|
+
two.channel <- attr(gds,'header')$channel_count == '2'
|
75
|
+
value.type <- attr(gds,'header')$value_type
|
76
|
+
if (length(grep('log',value.type)) == 0){
|
77
|
+
do.log2 = TRUE;
|
78
|
+
}else{
|
79
|
+
do.log2 = FALSE;
|
80
|
+
}
|
81
|
+
eSet <- GDS2eSet(gds, GPL=gpl, do.log2 = do.log2 );
|
82
|
+
|
83
|
+
ph = phenoData(eSet)
|
84
|
+
conditions = sapply(GEO.find_conditions(ph), function(condition){ph[[condition]]});
|
85
|
+
|
86
|
+
m = exprs(eSet)
|
87
|
+
|
88
|
+
trans = NULL
|
89
|
+
if (!is.null(id.field)){
|
90
|
+
trans = featureData(eSet)[[id.field]];
|
91
|
+
}
|
92
|
+
if (!is.null(translation.file)){
|
93
|
+
trans = scan(file=translation.file,what=character(),sep="\n",quiet=T);
|
94
|
+
}
|
95
|
+
|
96
|
+
if (!is.null(trans)){
|
97
|
+
m <- MA.translate(m, trans);
|
98
|
+
}
|
99
|
+
|
100
|
+
|
101
|
+
|
102
|
+
return (list(conditions = conditions, m = m, two.channel = two.channel, description = description))
|
103
|
+
}
|
104
|
+
|
105
|
+
|
106
|
+
GEO.GDS.process <- function(name, prefix, id.field = NULL, translation.file = NULL,cachedir=NULL){
|
107
|
+
tryCatch(
|
108
|
+
{
|
109
|
+
gds.data = GEO.GDS.data(name, id.field, translation.file, cachedir)
|
110
|
+
values = GEO.values(gds.data)
|
111
|
+
if (is.null(values)){
|
112
|
+
write(file=paste(prefix,'skip',sep="."), "No suitable samples for analysis" );
|
113
|
+
}else{
|
114
|
+
MA.save(prefix, values$orders, values$ratios, values$t, values$p.values, colnames(values$orders), gds.data$description);
|
115
|
+
}
|
116
|
+
}
|
117
|
+
,
|
118
|
+
error=function(x){
|
119
|
+
print("Exception caught");
|
120
|
+
print(x);
|
121
|
+
write(file=paste(prefix,'skip',sep="."), paste("An exception was caught during the analysis.",x,sep="\n") );
|
122
|
+
}
|
123
|
+
)
|
124
|
+
}
|
125
|
+
|
126
|
+
|
127
|
+
|
128
|
+
|
129
|
+
GEO.GSE.data <- function(gsms, conditions, do.log2 = NULL, translation.file = NULL, use.fields = NULL, cachedir = NULL){
|
130
|
+
|
131
|
+
c = sapply(conditions,function(x){x});
|
132
|
+
colnames(c) <- names(conditions);
|
133
|
+
conditions = c;
|
134
|
+
|
135
|
+
# Get gene names
|
136
|
+
gene.names = vector();
|
137
|
+
for(name in gsms){
|
138
|
+
gsm = GEO.get(name, cachedir);
|
139
|
+
data = attr(dataTable(gsm),'table');
|
140
|
+
if (!is.null(use.fields)){
|
141
|
+
gsm.names = levels(factor(data[,use.fields[name]]))
|
142
|
+
}else{
|
143
|
+
gsm.names = levels(factor(data[,1]))
|
144
|
+
}
|
145
|
+
gene.names <- c(gene.names, gsm.names)
|
146
|
+
}
|
147
|
+
|
148
|
+
gene.names= sort(unique((gene.names)));
|
149
|
+
gene.names = gene.names[gene.names != ""];
|
150
|
+
|
151
|
+
|
152
|
+
# Merge Arrays
|
153
|
+
init <- rep(NA,length(gene.names))
|
154
|
+
names(init) <- gene.names;
|
155
|
+
m <- NULL;
|
156
|
+
for(name in gsms){
|
157
|
+
gsm = GEO.get(name, cachedir);
|
158
|
+
two.channel <- attr(gsm,'header')$channel_count == '2';
|
159
|
+
data = attr(dataTable(gsm),'table')
|
160
|
+
values = as.numeric(data[,"VALUE"])
|
161
|
+
|
162
|
+
# Merge duplicates
|
163
|
+
|
164
|
+
|
165
|
+
if (!is.null(use.fields)){
|
166
|
+
names = factor(data[,use.fields[name]])
|
167
|
+
}else{
|
168
|
+
names = factor(data[,1])
|
169
|
+
}
|
170
|
+
|
171
|
+
values = tapply(values, factor(names), mean, na.rm = T)
|
172
|
+
n <- names(values)
|
173
|
+
values = as.vector(values)
|
174
|
+
names(values) <- n
|
175
|
+
|
176
|
+
if (is.null(m)){
|
177
|
+
m = init
|
178
|
+
m[names(values)] = values
|
179
|
+
}else{
|
180
|
+
new = init
|
181
|
+
new[names(values)] = values;
|
182
|
+
m = cbind(m, new)
|
183
|
+
}
|
184
|
+
}
|
185
|
+
colnames(m) <- as.list(gsms);
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
if (is.null(m)){
|
190
|
+
return(NULL);
|
191
|
+
}
|
192
|
+
|
193
|
+
trans = NULL
|
194
|
+
if (!is.null(translation.file)){
|
195
|
+
trans = read.table(file=translation.file, sep="\t",header=F)[,1];
|
196
|
+
}
|
197
|
+
if (!is.null(trans)){
|
198
|
+
m <- MA.translate(m, trans);
|
199
|
+
}
|
200
|
+
|
201
|
+
if(is.null(do.log2)){
|
202
|
+
do.log2 = MA.guess.do.log2(m, two.channel);
|
203
|
+
}
|
204
|
+
|
205
|
+
if (do.log2){
|
206
|
+
m <- log2(m);
|
207
|
+
}
|
208
|
+
|
209
|
+
# The log may have created infinite values
|
210
|
+
m[is.infinite(m)] = NA
|
211
|
+
|
212
|
+
return (list(conditions = conditions, m = m, two.channel = two.channel))
|
213
|
+
}
|
214
|
+
|
215
|
+
GEO.GSE.process <- function(gsms, conditions, prefix, do.log2 = NULL, translation.file = NULL, use.field = NULL, title = NULL, description = NULL,cachedir=NULL){
|
216
|
+
tryCatch(
|
217
|
+
{
|
218
|
+
gse.data = GEO.GSE.data(gsms, conditions, do.log2, translation.file, use.field, cachedir)
|
219
|
+
values = GEO.values(gse.data)
|
220
|
+
full_desc = paste(title, description, sep="\n--\n")
|
221
|
+
if (is.null(values)){
|
222
|
+
write(file=paste(prefix,'skip',sep="."), "No suitable samples for analysis" );
|
223
|
+
}else{
|
224
|
+
MA.save(prefix, values$orders, values$ratios, values$t, values$p.values, colnames(values$orders), full_desc );
|
225
|
+
}
|
226
|
+
}
|
227
|
+
,
|
228
|
+
error=function(x){
|
229
|
+
print("Exception caught");
|
230
|
+
print(x);
|
231
|
+
write(file=paste(prefix,'skip',sep="."), paste("An exception was caught during the analysis.",x,sep="\n") );
|
232
|
+
}
|
233
|
+
)
|
234
|
+
|
235
|
+
}
|
236
|
+
|
237
|
+
|
238
|
+
GEO.GPL.process <- function(name, prefix, id.field = NULL, cachedir = NULL){
|
239
|
+
gpl = GEO.get(name, cachedir);
|
240
|
+
if (is.null(id.field)){
|
241
|
+
ids <- Table(gpl)$ID;
|
242
|
+
}else{
|
243
|
+
ids <- Table(gpl)[[id.field]];
|
244
|
+
}
|
245
|
+
|
246
|
+
write.table(file=paste(prefix,'codes',sep="."), ids, sep="\t", row.names=F, col.names=F, quote=F);
|
247
|
+
}
|
248
|
+
|
249
|
+
|
data/R/MA.R
ADDED
@@ -0,0 +1,359 @@
|
|
1
|
+
library(limma)
|
2
|
+
|
3
|
+
MA.get_order <- function(values){
|
4
|
+
orders = values;
|
5
|
+
orders[,] = NA;
|
6
|
+
|
7
|
+
for (i in 1:dim(values)[2]){
|
8
|
+
positions = names(sort(values[,i],decreasing=T))
|
9
|
+
|
10
|
+
orders[,i] = NA
|
11
|
+
orders[positions,i] = 1:length(positions)
|
12
|
+
}
|
13
|
+
orders
|
14
|
+
}
|
15
|
+
|
16
|
+
MA.guess.do.log2 <- function(m, two.channel){
|
17
|
+
if (two.channel){
|
18
|
+
return (sum(m < 0, na.rm = TRUE) == 0);
|
19
|
+
}else{
|
20
|
+
return (max(m, na.rm = TRUE) > 100);
|
21
|
+
}
|
22
|
+
}
|
23
|
+
|
24
|
+
MA.translate <- function(m, trans){
|
25
|
+
trans[trans==""] = NA;
|
26
|
+
trans[trans=="NO MATCH"] = NA;
|
27
|
+
|
28
|
+
missing = length(trans) - dim(m)[1];
|
29
|
+
|
30
|
+
# If extra genes
|
31
|
+
if (missing < 0){
|
32
|
+
trans = c(trans,rep(NA, - missing))
|
33
|
+
missing = 0;
|
34
|
+
}
|
35
|
+
n = apply(m,2,function(x){
|
36
|
+
|
37
|
+
# Complete data with missing genes
|
38
|
+
x.complete = c(x,rep(NA, missing));
|
39
|
+
tapply(x.complete, factor(trans), median)
|
40
|
+
});
|
41
|
+
n[sort(rownames(n),index.return=T)$ix,]
|
42
|
+
}
|
43
|
+
|
44
|
+
# Conditions
|
45
|
+
|
46
|
+
MA.conditions.has_control <- function(x){
|
47
|
+
keywords = c('none', 'control', 'normal', 'wild', 'baseline', 'untreat', 'uninfected', 'universal', 'reference', 'vehicle', 'w.t.','wt');
|
48
|
+
for(keyword in keywords){
|
49
|
+
control = grep(keyword, x, ignore.case = TRUE);
|
50
|
+
if (any(control)){
|
51
|
+
return(x[control[1]]);
|
52
|
+
}
|
53
|
+
}
|
54
|
+
return(NULL)
|
55
|
+
}
|
56
|
+
|
57
|
+
MA.condition.values <- function(values){
|
58
|
+
control = MA.conditions.has_control(values);
|
59
|
+
|
60
|
+
values.factor = factor(values);
|
61
|
+
values.levels = levels(values.factor);
|
62
|
+
|
63
|
+
# If there is a control state remove it from sorting
|
64
|
+
if (!is.null(control))
|
65
|
+
values.levels = values.levels[values.levels != control];
|
66
|
+
|
67
|
+
|
68
|
+
# Use numeric sort if they all have numbers
|
69
|
+
if (length(grep('^ *[0-9]+',values.levels,perl=TRUE)) == length(values.levels)){
|
70
|
+
ix = sort(as.numeric(sub('^ *([0-9]+).*',"\\1",values.levels)), decreasing = T, index.return = TRUE)$ix
|
71
|
+
}else{
|
72
|
+
ix = sort(values.levels, decreasing = T, index.return = TRUE)$ix
|
73
|
+
}
|
74
|
+
|
75
|
+
return(list(values = values.levels[ix], control = control));
|
76
|
+
}
|
77
|
+
|
78
|
+
|
79
|
+
#########################################################################
|
80
|
+
# Model processing
|
81
|
+
|
82
|
+
# Ratio
|
83
|
+
MA.ratio.two_channel <- function(m, conditions, main){
|
84
|
+
main = m[,conditions==main];
|
85
|
+
if (!is.null(dim(main))){
|
86
|
+
main = apply(main, 1 ,function(x){mean(x, na.rm = TRUE)});
|
87
|
+
}
|
88
|
+
return(main);
|
89
|
+
}
|
90
|
+
|
91
|
+
MA.ratio.contrast <- function(m, conditions, main, contrast){
|
92
|
+
main = m[,conditions==main];
|
93
|
+
if (!is.null(dim(main))){
|
94
|
+
main = apply(main, 1 ,function(x){mean(x, na.rm = TRUE)});
|
95
|
+
}
|
96
|
+
|
97
|
+
contrast = m[,conditions==contrast];
|
98
|
+
if (!is.null(dim(contrast))){
|
99
|
+
contrast = apply(contrast, 1 ,function(x){mean(x, na.rm = TRUE)});
|
100
|
+
}
|
101
|
+
|
102
|
+
return (main - contrast);
|
103
|
+
}
|
104
|
+
|
105
|
+
|
106
|
+
# Limma
|
107
|
+
|
108
|
+
MA.limma.two_channel <- function(m, conditions, main){
|
109
|
+
if (sum(conditions == main) < 3){
|
110
|
+
return(NULL);
|
111
|
+
}
|
112
|
+
|
113
|
+
design = rep(0,dim(m)[2]);
|
114
|
+
design[conditions == main] = 1;
|
115
|
+
|
116
|
+
# We need to subset the columns because of a problem with NA values. This
|
117
|
+
# might affect eBayes variance estimations, thats my guess anyway...
|
118
|
+
|
119
|
+
fit <- lmFit(m[,design == 1],rep(1, sum(design)));
|
120
|
+
|
121
|
+
tryCatch({
|
122
|
+
fit <- eBayes(fit);
|
123
|
+
sign = fit$t < 0;
|
124
|
+
sign[is.na(sign)] = FALSE;
|
125
|
+
fit$p.value[sign] = - fit$p.value[sign];
|
126
|
+
return(list(t= fit$t, p.values= fit$p.value));
|
127
|
+
}, error=function(x){
|
128
|
+
print("Exception caught in eBayes");
|
129
|
+
print(x);
|
130
|
+
})
|
131
|
+
|
132
|
+
return(NULL);
|
133
|
+
}
|
134
|
+
|
135
|
+
MA.limma.contrast <- function(m, conditions, main, contrast){
|
136
|
+
if (sum(conditions == main) + sum(conditions == contrast) < 3){
|
137
|
+
return(NULL);
|
138
|
+
}
|
139
|
+
m = cbind(m[,conditions == main],m[,conditions == contrast])
|
140
|
+
|
141
|
+
design = cbind(rep(1,dim(m)[2]), rep(0,dim(m)[2]));
|
142
|
+
colnames(design) <-c('intercept', 'main');
|
143
|
+
design[1:sum(conditions==main),2] = 1;
|
144
|
+
|
145
|
+
|
146
|
+
fit <- lmFit(m,design);
|
147
|
+
tryCatch({
|
148
|
+
fit <- eBayes(fit);
|
149
|
+
sign = fit$t[,2] < 0;
|
150
|
+
sign[is.na(sign)] = FALSE;
|
151
|
+
fit$p.value[sign,2] = - fit$p.value[sign,2]
|
152
|
+
return(list(t= fit$t[,2], p.values= fit$p.value[,2] ));
|
153
|
+
}, error=function(x){
|
154
|
+
print("Exception caught in eBayes");
|
155
|
+
print(x);
|
156
|
+
})
|
157
|
+
|
158
|
+
return(NULL);
|
159
|
+
}
|
160
|
+
|
161
|
+
|
162
|
+
#########################################################################
|
163
|
+
# Process conditions
|
164
|
+
|
165
|
+
MA.process_conditions.contrasts <- function(m, conditions, two.channel){
|
166
|
+
max_levels = 10;
|
167
|
+
max_levels_control = 1;
|
168
|
+
|
169
|
+
|
170
|
+
values = MA.condition.values(conditions);
|
171
|
+
|
172
|
+
|
173
|
+
ratios = vector();
|
174
|
+
t = vector();
|
175
|
+
p.values = vector();
|
176
|
+
|
177
|
+
ratio_names = vector();
|
178
|
+
t_names = vector();
|
179
|
+
|
180
|
+
if (!is.null(values$control)){
|
181
|
+
contrast = values$control;
|
182
|
+
for (main in values$values){
|
183
|
+
name = paste(main, contrast, sep = " <=> ")
|
184
|
+
|
185
|
+
ratio = MA.ratio.contrast(m, conditions, main, contrast);
|
186
|
+
ratio_names = c(ratio_names, name);
|
187
|
+
ratios = cbind(ratios, ratio);
|
188
|
+
|
189
|
+
res = MA.limma.contrast(m, conditions, main, contrast);
|
190
|
+
if (!is.null(res)){
|
191
|
+
t_names = c(t_names, name);
|
192
|
+
t = cbind(t, res$t);
|
193
|
+
p.values = cbind(p.values, res$p.values);
|
194
|
+
}
|
195
|
+
}
|
196
|
+
}
|
197
|
+
|
198
|
+
|
199
|
+
if (length(values$values) <= max_levels_control || (is.null(values$control) && !two.channel && length(values$values) <= max_levels )){
|
200
|
+
|
201
|
+
remaining = values$values;
|
202
|
+
for (main in values$values){
|
203
|
+
remaining = remaining[remaining != main];
|
204
|
+
for (contrast in remaining){
|
205
|
+
name = paste(main, contrast, sep = " <=> ");
|
206
|
+
|
207
|
+
ratio = MA.ratio.contrast(m, conditions, main, contrast);
|
208
|
+
ratio_names = c(ratio_names, name);
|
209
|
+
ratios = cbind(ratios, ratio);
|
210
|
+
|
211
|
+
res = MA.limma.contrast(m, conditions, main, contrast);
|
212
|
+
if (!is.null(res)){
|
213
|
+
t_names = c(t_names, name);
|
214
|
+
t = cbind(t, res$t);
|
215
|
+
p.values = cbind(p.values, res$p.values);
|
216
|
+
}
|
217
|
+
}
|
218
|
+
}
|
219
|
+
}
|
220
|
+
|
221
|
+
|
222
|
+
if (length(ratio_names) != 0){
|
223
|
+
colnames(ratios) <- ratio_names
|
224
|
+
}
|
225
|
+
|
226
|
+
if (length(t_names) != 0){
|
227
|
+
colnames(t) <- t_names
|
228
|
+
colnames(p.values) <- t_names
|
229
|
+
}
|
230
|
+
|
231
|
+
return(list(ratios = ratios, t=t, p.values = p.values));
|
232
|
+
}
|
233
|
+
|
234
|
+
MA.process_conditions.two_channel <- function(m, conditions){
|
235
|
+
values = MA.condition.values(conditions);
|
236
|
+
|
237
|
+
all_values = values$values
|
238
|
+
if (!is.null(values$control)){
|
239
|
+
all_values = c(all_values, values$control);
|
240
|
+
}
|
241
|
+
|
242
|
+
|
243
|
+
ratios = vector();
|
244
|
+
t = vector();
|
245
|
+
p.values = vector();
|
246
|
+
|
247
|
+
ratio_names = vector();
|
248
|
+
t_names = vector();
|
249
|
+
|
250
|
+
|
251
|
+
for (main in all_values){
|
252
|
+
name = main;
|
253
|
+
|
254
|
+
ratio = MA.ratio.two_channel(m, conditions, main);
|
255
|
+
ratio_names = c(ratio_names, name);
|
256
|
+
ratios = cbind(ratios, ratio);
|
257
|
+
|
258
|
+
res = MA.limma.two_channel(m, conditions, main);
|
259
|
+
if (!is.null(res)){
|
260
|
+
t_names = c(t_names, name);
|
261
|
+
t = cbind(t, res$t);
|
262
|
+
p.values = cbind(p.values, res$p.values);
|
263
|
+
}
|
264
|
+
}
|
265
|
+
|
266
|
+
if (length(ratio_names) != 0){
|
267
|
+
colnames(ratios) <- ratio_names
|
268
|
+
}
|
269
|
+
|
270
|
+
if (length(t_names) != 0){
|
271
|
+
colnames(t) <- t_names
|
272
|
+
colnames(p.values) <- t_names
|
273
|
+
}
|
274
|
+
|
275
|
+
return(list(ratios = ratios, t=t, p.values = p.values));
|
276
|
+
}
|
277
|
+
|
278
|
+
|
279
|
+
|
280
|
+
# Process microarray matrix
|
281
|
+
|
282
|
+
MA.process <- function(m, conditions_list, two.channel = FALSE){
|
283
|
+
|
284
|
+
ratios = vector();
|
285
|
+
t = vector();
|
286
|
+
p.values = vector();
|
287
|
+
|
288
|
+
for(type in colnames(conditions_list)){
|
289
|
+
conditions = conditions_list[,type]
|
290
|
+
|
291
|
+
if (two.channel){
|
292
|
+
res = MA.process_conditions.two_channel(m, conditions);
|
293
|
+
if (length(res$ratios) != 0){ colnames(res$ratios) <- sapply(colnames(res$ratios),function(x){paste(type,x,sep=": ")}); ratios = cbind(ratios,res$ratios);}
|
294
|
+
if (length(res$t) != 0){ colnames(res$t) <- sapply(colnames(res$t),function(x){paste(type,x,sep=": ")}); t = cbind(t,res$t);}
|
295
|
+
if (length(res$p.values) != 0){ colnames(res$p.values) <- sapply(colnames(res$p.values),function(x){paste(type,x,sep=": ")}); p.values = cbind(p.values,res$p.values);}
|
296
|
+
}
|
297
|
+
|
298
|
+
res = MA.process_conditions.contrasts(m, conditions, two.channel);
|
299
|
+
if (length(res$ratios) != 0){ colnames(res$ratios) <- sapply(colnames(res$ratios),function(x){paste(type,x,sep=": ")}); ratios = cbind(ratios,res$ratios);}
|
300
|
+
if (length(res$t) != 0){ colnames(res$t) <- sapply(colnames(res$t),function(x){paste(type,x,sep=": ")}); t = cbind(t,res$t);}
|
301
|
+
if (length(res$p.values) != 0){ colnames(res$p.values) <- sapply(colnames(res$p.values),function(x){paste(type,x,sep=": ")}); p.values = cbind(p.values,res$p.values);}
|
302
|
+
}
|
303
|
+
|
304
|
+
return(list(ratios = ratios, t=t, p.values = p.values));
|
305
|
+
}
|
306
|
+
|
307
|
+
|
308
|
+
MA.save <- function(prefix, orders, ratios, t , p.values, experiments, description = NULL) {
|
309
|
+
if (is.null(orders)){
|
310
|
+
write(file=paste(prefix,'skip',sep="."), "No suitable samples for analysis" );
|
311
|
+
} else {
|
312
|
+
write.table(file=paste(prefix,'orders',sep="."), orders, sep="\t", row.names=F, col.names=F, quote=F);
|
313
|
+
write.table(file=paste(prefix,'codes',sep="."), rownames(orders), sep="\t", row.names=F, col.names=F, quote=F);
|
314
|
+
write.table(file=paste(prefix,'logratios',sep="."), ratios, sep="\t", row.names=F, col.names=F, quote=F);
|
315
|
+
write.table(file=paste(prefix,'t',sep="."), t, sep="\t", row.names=F, col.names=F, quote=F);
|
316
|
+
write.table(file=paste(prefix,'pvalues',sep="."), p.values, sep="\t", row.names=F, col.names=F, quote=F);
|
317
|
+
write.table(file=paste(prefix,'experiments',sep="."), experiments, sep="\t", row.names=F, col.names=F, quote=F);
|
318
|
+
|
319
|
+
write(file=paste(prefix,'description',sep="."), description)
|
320
|
+
}
|
321
|
+
}
|
322
|
+
|
323
|
+
MA.load <- function(prefix, orders = TRUE, logratios = TRUE, t = TRUE, p.values = TRUE){
|
324
|
+
data = list();
|
325
|
+
genes <- scan(file=paste(prefix,'codes',sep="."),sep="\n",quiet=T,what=character());
|
326
|
+
experiments <- scan(file=paste(prefix,'experiments',sep="."),sep="\n",quiet=T,what=character());
|
327
|
+
|
328
|
+
experiments.no.ratio = experiments[- grep('ratio', experiments)];
|
329
|
+
|
330
|
+
if (orders){
|
331
|
+
orders <- read.table(file=paste(prefix,'orders',sep="."),sep="\t");
|
332
|
+
rownames(orders) <- genes;
|
333
|
+
colnames(orders) <- experiments;
|
334
|
+
data$orders=orders;
|
335
|
+
}
|
336
|
+
if (logratios){
|
337
|
+
logratios <- read.table(file=paste(prefix,'logratios',sep="."),sep="\t");
|
338
|
+
rownames(logratios) <- genes;
|
339
|
+
colnames(logratios) <- experiments;
|
340
|
+
data$logratios=logratios;
|
341
|
+
}
|
342
|
+
if (t){
|
343
|
+
t <- read.table(file=paste(prefix,'t',sep="."),sep="\t");
|
344
|
+
rownames(t) <- genes;
|
345
|
+
colnames(t) <- experiments.no.ratio;
|
346
|
+
data$t=t;
|
347
|
+
}
|
348
|
+
if (p.values){
|
349
|
+
p.values <- read.table(file=paste(prefix,'pvalues',sep="."),sep="\t");
|
350
|
+
rownames(p.values) <- genes;
|
351
|
+
colnames(p.values) <- experiments.no.ratio;
|
352
|
+
data$p.values=p.values;
|
353
|
+
}
|
354
|
+
|
355
|
+
|
356
|
+
return(data);
|
357
|
+
|
358
|
+
|
359
|
+
}
|