plugins/base1/se.lu.onk.ReplicateError/trunk/src/replicateerror/R.java

Code
Comments
Other
Rev Date Author Line
52 25 Nov 05 enell 1 /*
784 18 Sep 08 jari 2   $Id$
784 18 Sep 08 jari 3
784 18 Sep 08 jari 4   Copyright (C) 2005 Johan Enell
784 18 Sep 08 jari 5
784 18 Sep 08 jari 6   This file is part of the se.lu.onk.ReplicateError plug-in for
784 18 Sep 08 jari 7   BASE. Available at http://baseplugins.thep.lu.se/ and BASE web
784 18 Sep 08 jari 8   site is http://base.thep.lu.se
784 18 Sep 08 jari 9
784 18 Sep 08 jari 10   This is free software; you can redistribute it and/or modify it
784 18 Sep 08 jari 11   under the terms of the GNU General Public License as published by
784 18 Sep 08 jari 12   the Free Software Foundation; either version 3 of the License, or
784 18 Sep 08 jari 13   (at your option) any later version.
784 18 Sep 08 jari 14
784 18 Sep 08 jari 15   The software is distributed in the hope that it will be useful, but
784 18 Sep 08 jari 16   WITHOUT ANY WARRANTY; without even the implied warranty of
784 18 Sep 08 jari 17   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
784 18 Sep 08 jari 18   General Public License for more details.
784 18 Sep 08 jari 19
784 18 Sep 08 jari 20   You should have received a copy of the GNU General Public License
784 18 Sep 08 jari 21   along with BASE. If not, see <http://www.gnu.org/licenses/>.
784 18 Sep 08 jari 22 */
52 25 Nov 05 enell 23 package replicateerror;
52 25 Nov 05 enell 24
52 25 Nov 05 enell 25 import java.io.FileNotFoundException;
52 25 Nov 05 enell 26 import java.io.PrintStream;
52 25 Nov 05 enell 27 import java.util.HashMap;
52 25 Nov 05 enell 28
52 25 Nov 05 enell 29 public class R
52 25 Nov 05 enell 30 {
52 25 Nov 05 enell 31   private static HashMap<String, float[]> abrBefore = new HashMap<String, float[]>();
52 25 Nov 05 enell 32
52 25 Nov 05 enell 33   private static HashMap<String, float[]> abrAfter = new HashMap<String, float[]>();
52 25 Nov 05 enell 34
52 25 Nov 05 enell 35   private static float[] replica2 = {0, 0};
52 25 Nov 05 enell 36
52 25 Nov 05 enell 37   private static float[] replica1 = {0, 0};
52 25 Nov 05 enell 38
52 25 Nov 05 enell 39   private static float[] replicaM = {0, 0};
52 25 Nov 05 enell 40
52 25 Nov 05 enell 41   public static void setABRBefore(String assay, float[] abr)
52 25 Nov 05 enell 42   {
52 25 Nov 05 enell 43     abrBefore.put(assay, abr);
52 25 Nov 05 enell 44   }
52 25 Nov 05 enell 45
52 25 Nov 05 enell 46   public static void setABRAfter(String assay, float[] abr)
52 25 Nov 05 enell 47   {
52 25 Nov 05 enell 48     abrAfter.put(assay, abr);
52 25 Nov 05 enell 49   }
52 25 Nov 05 enell 50
52 25 Nov 05 enell 51   public static void replicaMRange(float m)
52 25 Nov 05 enell 52   {
52 25 Nov 05 enell 53     if (m < replicaM[0])
52 25 Nov 05 enell 54     {
52 25 Nov 05 enell 55       replicaM[0] = m;
52 25 Nov 05 enell 56     }
52 25 Nov 05 enell 57     if (m > replicaM[1])
52 25 Nov 05 enell 58     {
52 25 Nov 05 enell 59       replicaM[1] = m;
52 25 Nov 05 enell 60     }
52 25 Nov 05 enell 61   }
52 25 Nov 05 enell 62
52 25 Nov 05 enell 63   public static void replica2Range(float m)
52 25 Nov 05 enell 64   {
52 25 Nov 05 enell 65     if (m < replica1[0])
52 25 Nov 05 enell 66     {
52 25 Nov 05 enell 67       replica1[0] = m;
52 25 Nov 05 enell 68     }
52 25 Nov 05 enell 69     if (m > replica1[1])
52 25 Nov 05 enell 70     {
52 25 Nov 05 enell 71       replica1[1] = m;
52 25 Nov 05 enell 72     }
52 25 Nov 05 enell 73   }
52 25 Nov 05 enell 74
52 25 Nov 05 enell 75   public static void replica1Range(float m)
52 25 Nov 05 enell 76   {
52 25 Nov 05 enell 77     if (m < replica2[0])
52 25 Nov 05 enell 78     {
52 25 Nov 05 enell 79       replica2[0] = m;
52 25 Nov 05 enell 80     }
52 25 Nov 05 enell 81     if (m > replica2[1])
52 25 Nov 05 enell 82     {
52 25 Nov 05 enell 83       replica2[1] = m;
52 25 Nov 05 enell 84     }
52 25 Nov 05 enell 85   }
52 25 Nov 05 enell 86
52 25 Nov 05 enell 87   public static void printPlotFile()
52 25 Nov 05 enell 88   {
52 25 Nov 05 enell 89     try
52 25 Nov 05 enell 90     {
52 25 Nov 05 enell 91       PrintStream plot = new PrintStream("plot.R");
52 25 Nov 05 enell 92
52 25 Nov 05 enell 93       String dimX = "c("+replica1[0]+","+replica1[1]+")";
52 25 Nov 05 enell 94       String dimY = "c("+replica2[0]+","+replica2[1]+")";
52 25 Nov 05 enell 95       String dimM = "c("+replicaM[0]+","+replicaM[1]+")";
52 25 Nov 05 enell 96       
52 25 Nov 05 enell 97       for (String group : abrBefore.keySet())
52 25 Nov 05 enell 98       {
52 25 Nov 05 enell 99         plot.println("allData = read.table(\"data/"+group+".data\", header=FALSE);");
52 25 Nov 05 enell 100         plot.println("goodData = read.table(\"data/"+group+"good.data\", header=FALSE);");
52 25 Nov 05 enell 101         plot.println("png(filename=\"data/"+group+".png\", width=480, height=480);");
52 25 Nov 05 enell 102         plot.println("plot.new();");
52 25 Nov 05 enell 103         plot.println("par(pch='.');");
56 08 Dec 05 enell 104         
52 25 Nov 05 enell 105         plot.println("plot(log2(allData), ylim="+dimY+", xlim="+dimX+", col=\"darkblue\", xlab=\"log2(int1 / int2) replica 1\", ylab=\"log2(int1 / int2) replica 2\");");
52 25 Nov 05 enell 106
52 25 Nov 05 enell 107         plot.println("par(new=TRUE);");
52 25 Nov 05 enell 108         plot.println("plot(log2(goodData), ylim="+dimY+", xlim="+dimX+", col=\"red\", xlab=\"\", ylab=\"\");");
52 25 Nov 05 enell 109         
52 25 Nov 05 enell 110         float[] lineAll = abrBefore.get(group);
52 25 Nov 05 enell 111         float[] lineGood = abrAfter.get(group);
52 25 Nov 05 enell 112         if (lineGood[2] > lineAll[2])
52 25 Nov 05 enell 113         {
52 25 Nov 05 enell 114           plot.println("abline("+lineAll[0]+","+lineAll[1]+", lty=\"dashed\");");
52 25 Nov 05 enell 115           plot.println("abline("+lineGood[0]+","+lineGood[1]+", lty=\"solid\");");
52 25 Nov 05 enell 116           plot.println("legend(\"topleft\",col=c(\"darkblue\",\"red\"),text.col=c(\"darkblue\",\"red\"),pch=c(\"r\",\"r\"),legend=c(round("+lineAll[2]+",3),round("+lineGood[2]+",3)));");
52 25 Nov 05 enell 117         }
52 25 Nov 05 enell 118         plot.println("png(filename=\"data/"+group+"freq.png\", width=480, height=480);");
52 25 Nov 05 enell 119         plot.println("plot.new();");
56 08 Dec 05 enell 120         plot.println("hist(log2(allData[[1]]/allData[[2]]),xlab=\"log2(ratio replica 1 / ratio replica 2)\",breaks=seq("+Math.floor(replicaM[0])+","+Math.ceil(replicaM[1])+",0.2),main=NULL,xlim="+dimM+");");
52 25 Nov 05 enell 121         plot.println("axis(1);");
52 25 Nov 05 enell 122         plot.println("axis(2);");
52 25 Nov 05 enell 123         plot.println("box();");
52 25 Nov 05 enell 124         plot.println("graphics.off();");
52 25 Nov 05 enell 125       }
52 25 Nov 05 enell 126     }
52 25 Nov 05 enell 127     catch (FileNotFoundException e)
52 25 Nov 05 enell 128     {
52 25 Nov 05 enell 129       e.printStackTrace();
52 25 Nov 05 enell 130     }
52 25 Nov 05 enell 131   }
52 25 Nov 05 enell 132 }