/* * The MIT License (MIT) * * Copyright (c) 2007-2015 Broad Institute * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ package org.broad.igv.bbfile; import org.apache.log4j.Logger; /** * Created by IntelliJ IDEA. * User: martind * Date: Jan 18, 2010 * Time: 2:24:44 PM * To change this template use File | Settings | File Templates. */ /* * Container class for holding zoom level statistics, BBFile Table P. * * */ public class ZoomDataRecord { private static Logger log = Logger.getLogger(ZoomDataRecord.class); public static final int RECORD_SIZE = 32; private int zoomLevel; // zoom level associated with data private int recordNumber; // record number // chromosome region statistics (useful for calculating mean and standard deviation) private String chromName; // chromosome/contig name private int chromId; // Numerical ID for mChromosome/contig private int chromStart; // starting base position (from 0) private int chromEnd; // ending base position private int basesCovered; // number of bases with data private float minVal; // minimum value for file data private float maxVal; // maximum value for file data private float sumData; // sum of all squares of file data values private float sumSquares; // sum of squares of file data values /* * Constructor for filling in zoom data record class. * * Parameters: * zoomLevel - level of zoom * recordNumber - record sequence number of multiple zoom level records * chromName - chromosome/contig name * chromId - mChromosome ID * chromstart - starting base for zoom data region * chromEnd - ending base for zoom data region * validCount - number of bases in the region for which there is data * minVal - minimum value in region * maxVal - maximum value in region * sumData - sum of all region data * sumSquares - sum of the squares of all region data * * */ public ZoomDataRecord(int zoomLevel, int recordNumber, String chromName, int chromId, int chromStart, int chromEnd, int validCount, float minVal, float maxVal, float sumData, float sumSquares ){ this.zoomLevel = zoomLevel; this.recordNumber = recordNumber; this.chromName = chromName; this.chromId = chromId; this.chromStart = chromStart; this.chromEnd = chromEnd; this.basesCovered = validCount; this.minVal = minVal; this.maxVal = maxVal; this.sumData = sumData; this.sumSquares = sumSquares; } public int getZoomLevel() { return zoomLevel; } public int getRecordNumber() { return recordNumber; } public String getChromName() { return chromName; } public int getChromId() { return chromId; } public int getChromStart() { return chromStart; } public int getChromEnd() { return chromEnd; } public int getBasesCovered() { return basesCovered; } public float getMinVal() { return minVal; } public float getMaxVal() { return maxVal; } public float getSumData() { return sumData; } public float getMeanVal() { return basesCovered == 0 ? 0 : sumData / basesCovered; } public float getSumSquares() { return sumSquares; } public void print(){ // Table P - zoom data record log.debug("Zoom data record (Table DD) number " + recordNumber + " for zoom level " + zoomLevel); log.debug("ChromName = " + chromName); log.debug("ChromId = " + chromId); log.debug("ChromStart = " + chromStart); log.debug("ChromEnd = " + chromEnd); log.debug("ValidCount = " + basesCovered); log.debug("MinVal = " + minVal); log.debug("MaxVal = " + maxVal); log.debug("Sum of data values = " + sumData); log.debug("Sum of squares values = " + sumSquares); } }