All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hfg.bio.proteinproperty.PctExtinctionCoeff Maven / Gradle / Ivy

There is a newer version: 20240423
Show newest version
package com.hfg.bio.proteinproperty;

import java.math.BigDecimal;
import java.math.MathContext;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

import com.hfg.bio.seq.Protein;

//------------------------------------------------------------------------------
/**
 Percent extinction coefficient (ml/mg cm-1) at A280
 packaged as a protein property for ease of integration with other protein properties.
 
Uses residue coefficients from Pace, C.N. et. al. (1995). "How to measure and predict the molar absorption coefficient of a protein." Protein Science, 4, 2411-2423.
@author J. Alex Taylor, hairyfatguy.com
*/ //------------------------------------------------------------------------------ // com.hfg Library // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License, or (at your option) any later version. // // This library 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 // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // // J. Alex Taylor, President, Founder, CEO, COO, CFO, OOPS hairyfatguy.com // [email protected] //------------------------------------------------------------------------------ public class PctExtinctionCoeff extends SimpleProteinProperty { private static Map sUniqueMap = new HashMap<>(); public static final PctExtinctionCoeff PROPERTY = new PctExtinctionCoeff("Pct. Extinction Coeff.", "Pct. Extinction Coefficient (ml/mg per cm) at A280"); //########################################################################### // CONSTRUCTORS //########################################################################### //--------------------------------------------------------------------------- private PctExtinctionCoeff(String inName, String inDescription) { super(inName); setDescription(inDescription); sUniqueMap.put(inName, this); } //########################################################################### // PUBLIC METHODS //########################################################################### //--------------------------------------------------------------------------- public static Collection values() { return sUniqueMap.values(); } //-------------------------------------------------------------------------- @Override public String getType() { return ExtinctionCoeff.TYPE; } //--------------------------------------------------------------------------- public Float calculate(Protein inProtein) { return calculate(inProtein, null); } //--------------------------------------------------------------------------- @Override public Float calculate(Protein inProtein, SimpleProteinPropertyCalcSettings inSettings) { Float returnValue = 0.0f; if (inProtein.length() > 0) { if (null == inSettings) { inSettings = new SimpleProteinPropertyCalcSettings(); } double value = ExtinctionCoeff.PROPERTY.getRawValue(inProtein, inSettings) / inProtein.getAverageMass(inSettings.getProteinAnalysisMode()); // To get to 3 sig. figs. ... int length = new String(value + "").length(); if (length > 3) { BigDecimal bd = new BigDecimal(value); bd = bd.round(new MathContext(3)); value = bd.doubleValue(); } returnValue = (float) value; } return returnValue; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy