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

Code
Comments
Other
Rev Date Author Line
81 24 Mar 06 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 */
81 24 Mar 06 enell 23 package replicateerror;
81 24 Mar 06 enell 24
81 24 Mar 06 enell 25 import java.util.ArrayList;
81 24 Mar 06 enell 26 import java.util.Collections;
81 24 Mar 06 enell 27 import java.util.List;
81 24 Mar 06 enell 28
81 24 Mar 06 enell 29 public class Spot
81 24 Mar 06 enell 30 {
81 24 Mar 06 enell 31   private List<Float> int2 = new ArrayList<Float>();
81 24 Mar 06 enell 32
81 24 Mar 06 enell 33   private List<Float> int1 = new ArrayList<Float>();
81 24 Mar 06 enell 34
81 24 Mar 06 enell 35   private List<Integer> pos = new ArrayList<Integer>();
81 24 Mar 06 enell 36   
81 24 Mar 06 enell 37   private int assay;
81 24 Mar 06 enell 38   
81 24 Mar 06 enell 39   public Spot(int assay)
81 24 Mar 06 enell 40   {
81 24 Mar 06 enell 41     this.assay = assay;
81 24 Mar 06 enell 42   }
81 24 Mar 06 enell 43   
81 24 Mar 06 enell 44   public void add(int pos, float int1, float int2)
81 24 Mar 06 enell 45   {
81 24 Mar 06 enell 46     this.int1.add(int1);
81 24 Mar 06 enell 47     this.int2.add(int2);
81 24 Mar 06 enell 48     this.pos.add(pos);
81 24 Mar 06 enell 49   }
81 24 Mar 06 enell 50   
81 24 Mar 06 enell 51   public float getInt1()
81 24 Mar 06 enell 52   {
81 24 Mar 06 enell 53     float ret = 0;
81 24 Mar 06 enell 54     int size = 0;
81 24 Mar 06 enell 55     for(float i : int1)
81 24 Mar 06 enell 56     {
81 24 Mar 06 enell 57       if (!Float.isNaN(i))
81 24 Mar 06 enell 58       {
81 24 Mar 06 enell 59         ret += i;
81 24 Mar 06 enell 60         size++;
81 24 Mar 06 enell 61       }
81 24 Mar 06 enell 62     }
81 24 Mar 06 enell 63     return ret/size;
81 24 Mar 06 enell 64   }
81 24 Mar 06 enell 65
81 24 Mar 06 enell 66   public float getInt1(int index)
81 24 Mar 06 enell 67   {
81 24 Mar 06 enell 68     return int1.get(index);
81 24 Mar 06 enell 69   }
81 24 Mar 06 enell 70
81 24 Mar 06 enell 71   public void setInt1(int index, float int1)
81 24 Mar 06 enell 72   {
81 24 Mar 06 enell 73     this.int1.set(index, int1);
81 24 Mar 06 enell 74   }
81 24 Mar 06 enell 75   
81 24 Mar 06 enell 76   public float getInt2(int index)
81 24 Mar 06 enell 77   {
81 24 Mar 06 enell 78     return this.int2.get(index);
81 24 Mar 06 enell 79   }
81 24 Mar 06 enell 80
81 24 Mar 06 enell 81   public float getInt2()
81 24 Mar 06 enell 82   {
81 24 Mar 06 enell 83     float ret = 0;
81 24 Mar 06 enell 84     int size = 0;
81 24 Mar 06 enell 85     for(float i : int2)
81 24 Mar 06 enell 86     {
81 24 Mar 06 enell 87       if (!Float.isNaN(i))
81 24 Mar 06 enell 88       {
81 24 Mar 06 enell 89         ret += i;
81 24 Mar 06 enell 90         size++;
81 24 Mar 06 enell 91       }
81 24 Mar 06 enell 92     }
81 24 Mar 06 enell 93     return ret/size;
81 24 Mar 06 enell 94   }
81 24 Mar 06 enell 95
81 24 Mar 06 enell 96   public void setInt2(int index, float int2)
81 24 Mar 06 enell 97   {
81 24 Mar 06 enell 98     this.int2.set(index, int2);
81 24 Mar 06 enell 99   }
81 24 Mar 06 enell 100   
81 24 Mar 06 enell 101   public void setPos(int index, int pos)
81 24 Mar 06 enell 102   {
81 24 Mar 06 enell 103     this.pos.set(index, pos);
81 24 Mar 06 enell 104   }
81 24 Mar 06 enell 105   
81 24 Mar 06 enell 106   public int getPos(int index)
81 24 Mar 06 enell 107   {
81 24 Mar 06 enell 108     return this.pos.get(index);
81 24 Mar 06 enell 109   }
81 24 Mar 06 enell 110   
81 24 Mar 06 enell 111   public final List<Integer> getPos()
81 24 Mar 06 enell 112   {
81 24 Mar 06 enell 113     return Collections.unmodifiableList(pos);
81 24 Mar 06 enell 114   }
81 24 Mar 06 enell 115   
81 24 Mar 06 enell 116   public int getAssay()
81 24 Mar 06 enell 117   {
81 24 Mar 06 enell 118     return assay;
81 24 Mar 06 enell 119   }
81 24 Mar 06 enell 120   
81 24 Mar 06 enell 121
81 24 Mar 06 enell 122   public final float getRatio()
81 24 Mar 06 enell 123   {
81 24 Mar 06 enell 124     return getInt1() / getInt2();
81 24 Mar 06 enell 125   }
81 24 Mar 06 enell 126   
81 24 Mar 06 enell 127   public final float getM()
81 24 Mar 06 enell 128   {
81 24 Mar 06 enell 129     return (float) (Math.log(getRatio()) / Math.log(2));
81 24 Mar 06 enell 130   }
81 24 Mar 06 enell 131
81 24 Mar 06 enell 132   @Override
81 24 Mar 06 enell 133   public boolean equals(Object o)
81 24 Mar 06 enell 134   {
81 24 Mar 06 enell 135     if (!(o instanceof Spot)) return false;
81 24 Mar 06 enell 136     
81 24 Mar 06 enell 137     return assay == ((Spot) o).getAssay() && pos.equals(((Spot) o).getPos());
81 24 Mar 06 enell 138   }
81 24 Mar 06 enell 139
81 24 Mar 06 enell 140   @Override
81 24 Mar 06 enell 141   public String toString()
81 24 Mar 06 enell 142   {
81 24 Mar 06 enell 143     return "["+assay+", "+pos+", "+int1+", "+int2+"]";
81 24 Mar 06 enell 144   }
81 24 Mar 06 enell 145   
81 24 Mar 06 enell 146   
81 24 Mar 06 enell 147 }