001package com.hfg.bio; 002 003import java.util.Collections; 004import java.util.HashMap; 005import java.util.Map; 006import java.util.Set; 007 008 009//------------------------------------------------------------------------------ 010/** 011 * Table of amino acid frequency data. 012 * <div> 013 * @author J. Alex Taylor, hairyfatguy.com 014 * </div> 015 */ 016//------------------------------------------------------------------------------ 017// com.hfg Library 018// 019// This library is free software; you can redistribute it and/or 020// modify it under the terms of the GNU Lesser General Public 021// License as published by the Free Software Foundation; either 022// version 2.1 of the License, or (at your option) any later version. 023// 024// This library is distributed in the hope that it will be useful, 025// but WITHOUT ANY WARRANTY; without even the implied warranty of 026// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 027// Lesser General Public License for more details. 028// 029// You should have received a copy of the GNU Lesser General Public 030// License along with this library; if not, write to the Free Software 031// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 032// 033// J. Alex Taylor, President, Founder, CEO, COO, CFO, OOPS hairyfatguy.com 034// [email protected] 035//------------------------------------------------------------------------------ 036 037public class AminoAcidFreqTable 038{ 039 private Map<AminoAcid, Float> mFreqMap; 040 041 /** 042 Amino acid frequencies in mammalian proteins. 043 Based on data from ftp://ftp.ncbi.nih.gov/refseq/release/vertebrate_mammalian/vertebrate_mammalian.*.protein.faa.gz on 2014.09.15 044 */ 045 public static final AminoAcidFreqTable MAMMALIAN = new AminoAcidFreqTable(); 046 047 048 static 049 { 050 Map<AminoAcid, Float> freqMap = new HashMap<AminoAcid, Float>(); 051 freqMap.put(AminoAcid.ALANINE, 0.0694f); 052 freqMap.put(AminoAcid.ARGININE, 0.0569f); 053 freqMap.put(AminoAcid.ASPARAGINE, 0.0539f); 054 freqMap.put(AminoAcid.ASPARTIC_ACID, 0.0481f); 055 freqMap.put(AminoAcid.CYSTEINE, 0.0219f); 056 freqMap.put(AminoAcid.GLUTAMIC_ACID, 0.0713f); 057 freqMap.put(AminoAcid.GLUTAMINE, 0.0481f); 058 freqMap.put(AminoAcid.GLYCINE, 0.0648f); 059 freqMap.put(AminoAcid.HISTIDINE, 0.0261f); 060 freqMap.put(AminoAcid.ISOLEUCINE, 0.0434f); 061 freqMap.put(AminoAcid.LEUCINE, 0.0991f); 062 freqMap.put(AminoAcid.LYSINE, 0.0577f); 063 freqMap.put(AminoAcid.METHIONINE, 0.0217f); 064 freqMap.put(AminoAcid.PHENYLALANINE, 0.0361f); 065 freqMap.put(AminoAcid.PROLINE, 0.0632f); 066 freqMap.put(AminoAcid.SERINE, 0.0844f); 067 freqMap.put(AminoAcid.THREONIE, 0.0534f); 068 freqMap.put(AminoAcid.TRYPTOPHAN, 0.0119f); 069 freqMap.put(AminoAcid.TYROSINE, 0.0262f); 070 freqMap.put(AminoAcid.VALINE, 0.0602f); 071 freqMap.put(AminoAcid.UNDEFINED, 0.0002f); 072 073 MAMMALIAN.mFreqMap = Collections.unmodifiableMap(freqMap); 074 } 075 076 077 //########################################################################## 078 // CONSTRUCTORS 079 //########################################################################## 080 081 //-------------------------------------------------------------------------- 082 private AminoAcidFreqTable() 083 { 084 085 } 086 087 //-------------------------------------------------------------------------- 088 public AminoAcidFreqTable(Map<AminoAcid, Float> inData) 089 { 090 mFreqMap = Collections.unmodifiableMap(inData); 091 } 092 093 //########################################################################## 094 // PUBLIC METHODS 095 //########################################################################## 096 097 //-------------------------------------------------------------------------- 098 public Set<AminoAcid> keySet() 099 { 100 return mFreqMap.keySet(); 101 } 102 103 //-------------------------------------------------------------------------- 104 public Float get(AminoAcid inAA) 105 { 106 return mFreqMap.get(inAA); 107 } 108}