//===================================================================== // File: BinAnalysis.java // Class: BinAnalysis // Package: AFLPcore // // Author: James J. Benham // Date: August 10, 1998 // Contact: james_benham@hmc.edu // // Genographer v1.0 - Computer assisted scoring of gels. // Copyright (C) 1998 Montana State University // // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; version 2 // of the License. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // // The GNU General Public License is distributed in the file GPL //===================================================================== package AFLPcore; /** * This class is an AnalysisOp which outputs information * about all of the bins in the gel. For each bin in the gel, the * name, if defined is printed out, as well as the location and range. * Then all of the overall scoring information is displayed for the bin. * Finally, the label assigned to each lane in the gel is printed out. * *

Sample output for a single bin (text enclosed in [] may not always * be printed): *

 [BinName at] 102.4 +/- 2.3 bp
 * Mean: 101.9 StdDev: 0.02 #A: 10 #B 12 from 10/10 peaks.
 * ABABBAABBABAABABBABBBA
 * 
* or in general: *
 * [name at] location  +/- range
 * overall score info line 1
 * overall score info line 2
 * .
 * overall score info line n
 * lane1Label|lane2Label|....|laneNLabel
 * 
*

Lines in the output string are seperated with '\n' * * @see Bin * * @author James J. Benham * @version 1.0.0 * @date August 10, 1998 */ public class BinAnalysis extends AnalysisOp { /** * Creates a new BinAnalysis object. */ public BinAnalysis() { name = "Bin Display"; descript = "Display the scoring of all of the bins."; helpFile = "bindisplay.html"; } /** * Provides an anlysis for the the specified gel. See the class * description for the details of the analysis. * * @param gel the gel to analyze */ public String analyze(Gel gel) { StringBuffer output = new StringBuffer(); DataList lanes = gel.getLanes(); DataList bins = gel.getBins(); Bin bin; Lane ln; String scoreInfo[]; for(int i=0; i < bins.size(); i++) { bin = (Bin) bins.dataAt(i); // score the bin if neccessary if(!bin.isScored()) bin.score(lanes); if(!bin.getName().equals("")) { output.append(bin.getName() + " at "); } output.append(bin.getLocation() + " +/- " + bin.getRange() + "\n"); // add the score info. scoreInfo = bin.getScoreInfo(); for(int j=0; j < scoreInfo.length; j++) { output.append(scoreInfo[j] + "\n"); } // print the scoring for each lane for(int j=0; j < lanes.size(); j++) { output.append(bin.getScore( (Lane) lanes.dataAt(j))); } // go to the next one output.append("\n\n"); } return new String(output); } /** * No options for this operation, so null is returned. * * @return null */ public Option[] getOptions() { return null; } /** * Since there are no options for this operation, this method will * do absolutely nothing. */ public void setOptions(Option[] opts) { // nothing to set. } /** * Gives the name of this bin analysis operation * * @return the name, which is "Bin Display". */ public String getName() { return name; } /** * Gives a one sentence description of this analysis operation. * * @return the description */ public String getDescription() { return descript; } /** * Gives a file that is the help file for this analysis operation * * @return a plaintext of html file containing help information */ public String getHelpFile() { return helpFile; } }