/* * WAG.java * * Copyright (c) 2002-2016 Alexei Drummond, Andrew Rambaut and Marc Suchard * * This file is part of BEAST. * See the NOTICE file distributed with this work for additional * information regarding copyright ownership and licensing. * * BEAST 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 * of the License, or (at your option) any later version. * * BEAST 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 BEAST; if not, write to the * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, * Boston, MA 02110-1301 USA */ package dr.evomodel.substmodel.aminoacid; import dr.evomodel.substmodel.EmpiricalRateMatrix; import dr.evolution.datatype.AminoAcids; import dr.util.Author; import dr.util.Citation; import java.util.Collections; import java.util.List; /** * WAG model of amino acid evolution (S. Whelan and N. Goldman 2000) * Whelan, S. and N. Goldman. 2000. Bioinformatics ?. * * @version $Id: WAG.java,v 1.3 2005/05/24 20:25:58 rambaut Exp $ * * @author Andrew Rambaut * @author Alexei Drummond */ public class WAG extends EmpiricalRateMatrix.AbstractAminoAcid { public static final WAG INSTANCE = new WAG(); // The rates below are specified assuming that the amino acids are in this order: // ARNDCQEGHILKMFPSTWYV // but the AminoAcids dataType wants them in this order: // ACDEFGHIKLMNPQRSTVWY // This is solved by calling the setEmpiricalRates and setEmpiricalFrequencies methods private WAG() { super("WAG"); int n = AminoAcids.INSTANCE.getStateCount(); double[][] rate = new double[n][n]; // Q matrix rate[0][1] = 0.610810; rate[0][2] = 0.569079; rate[0][3] = 0.821500; rate[0][4] = 1.141050; rate[0][5] = 1.011980; rate[0][6] = 1.756410; rate[0][7] = 1.572160; rate[0][8] = 0.354813; rate[0][9] = 0.219023; rate[0][10] = 0.443935; rate[0][11] = 1.005440; rate[0][12] = 0.989475; rate[0][13] = 0.233492; rate[0][14] = 1.594890; rate[0][15] = 3.733380; rate[0][16] = 2.349220; rate[0][17] = 0.125227; rate[0][18] = 0.268987; rate[0][19] = 2.221870; rate[1][2] = 0.711690; rate[1][3] = 0.165074; rate[1][4] = 0.585809; rate[1][5] = 3.360330; rate[1][6] = 0.488649; rate[1][7] = 0.650469; rate[1][8] = 2.362040; rate[1][9] = 0.206722; rate[1][10] = 0.551450; rate[1][11] = 5.925170; rate[1][12] = 0.758446; rate[1][13] = 0.116821; rate[1][14] = 0.753467; rate[1][15] = 1.357640; rate[1][16] = 0.613776; rate[1][17] = 1.294610; rate[1][18] = 0.423612; rate[1][19] = 0.280336; rate[2][3] = 6.013660; rate[2][4] = 0.296524; rate[2][5] = 1.716740; rate[2][6] = 1.056790; rate[2][7] = 1.253910; rate[2][8] = 4.378930; rate[2][9] = 0.615636; rate[2][10] = 0.147156; rate[2][11] = 3.334390; rate[2][12] = 0.224747; rate[2][13] = 0.110793; rate[2][14] = 0.217538; rate[2][15] = 4.394450; rate[2][16] = 2.257930; rate[2][17] = 0.078463; rate[2][18] = 1.208560; rate[2][19] = 0.221176; rate[3][4] = 0.033379; rate[3][5] = 0.691268; rate[3][6] = 6.833400; rate[3][7] = 0.961142; rate[3][8] = 1.032910; rate[3][9] = 0.043523; rate[3][10] = 0.093930; rate[3][11] = 0.533362; rate[3][12] = 0.116813; rate[3][13] = 0.052004; rate[3][14] = 0.472601; rate[3][15] = 1.192810; rate[3][16] = 0.417372; rate[3][17] = 0.146348; rate[3][18] = 0.363243; rate[3][19] = 0.169417; rate[4][5] = 0.109261; rate[4][6] = 0.023920; rate[4][7] = 0.341086; rate[4][8] = 0.275403; rate[4][9] = 0.189890; rate[4][10] = 0.428414; rate[4][11] = 0.083649; rate[4][12] = 0.437393; rate[4][13] = 0.441300; rate[4][14] = 0.122303; rate[4][15] = 1.560590; rate[4][16] = 0.570186; rate[4][17] = 0.795736; rate[4][18] = 0.604634; rate[4][19] = 1.114570; rate[5][6] = 6.048790; rate[5][7] = 0.366510; rate[5][8] = 4.749460; rate[5][9] = 0.131046; rate[5][10] = 0.964886; rate[5][11] = 4.308310; rate[5][12] = 1.705070; rate[5][13] = 0.110744; rate[5][14] = 1.036370; rate[5][15] = 1.141210; rate[5][16] = 0.954144; rate[5][17] = 0.243615; rate[5][18] = 0.252457; rate[5][19] = 0.333890; rate[6][7] = 0.630832; rate[6][8] = 0.635025; rate[6][9] = 0.141320; rate[6][10] = 0.172579; rate[6][11] = 2.867580; rate[6][12] = 0.353912; rate[6][13] = 0.092310; rate[6][14] = 0.755791; rate[6][15] = 0.782467; rate[6][16] = 0.914814; rate[6][17] = 0.172682; rate[6][18] = 0.217549; rate[6][19] = 0.655045; rate[7][8] = 0.276379; rate[7][9] = 0.034151; rate[7][10] = 0.068651; rate[7][11] = 0.415992; rate[7][12] = 0.194220; rate[7][13] = 0.055288; rate[7][14] = 0.273149; rate[7][15] = 1.486700; rate[7][16] = 0.251477; rate[7][17] = 0.374321; rate[7][18] = 0.114187; rate[7][19] = 0.209108; rate[8][9] = 0.152215; rate[8][10] = 0.555096; rate[8][11] = 0.992083; rate[8][12] = 0.450867; rate[8][13] = 0.756080; rate[8][14] = 0.771387; rate[8][15] = 0.822459; rate[8][16] = 0.525511; rate[8][17] = 0.289998; rate[8][18] = 4.290350; rate[8][19] = 0.131869; rate[9][10] = 3.517820; rate[9][11] = 0.360574; rate[9][12] = 4.714220; rate[9][13] = 1.177640; rate[9][14] = 0.111502; rate[9][15] = 0.353443; rate[9][16] = 1.615050; rate[9][17] = 0.234326; rate[9][18] = 0.468951; rate[9][19] = 8.659740; rate[10][11] = 0.287583; rate[10][12] = 5.375250; rate[10][13] = 2.348200; rate[10][14] = 0.462018; rate[10][15] = 0.382421; rate[10][16] = 0.364222; rate[10][17] = 0.740259; rate[10][18] = 0.443205; rate[10][19] = 1.997370; rate[11][12] = 1.032220; rate[11][13] = 0.098843; rate[11][14] = 0.619503; rate[11][15] = 1.073780; rate[11][16] = 1.537920; rate[11][17] = 0.152232; rate[11][18] = 0.147411; rate[11][19] = 0.342012; rate[12][13] = 1.320870; rate[12][14] = 0.194864; rate[12][15] = 0.556353; rate[12][16] = 1.681970; rate[12][17] = 0.570369; rate[12][18] = 0.473810; rate[12][19] = 2.282020; rate[13][14] = 0.179896; rate[13][15] = 0.606814; rate[13][16] = 0.191467; rate[13][17] = 1.699780; rate[13][18] = 7.154480; rate[13][19] = 0.725096; rate[14][15] = 1.786490; rate[14][16] = 0.885349; rate[14][17] = 0.156619; rate[14][18] = 0.239607; rate[14][19] = 0.351250; rate[15][16] = 4.847130; rate[15][17] = 0.578784; rate[15][18] = 0.872519; rate[15][19] = 0.258861; rate[16][17] = 0.126678; rate[16][18] = 0.325490; rate[16][19] = 1.547670; rate[17][18] = 2.763540; rate[17][19] = 0.409817; rate[18][19] = 0.347826; setEmpiricalRates(rate, "ARNDCQEGHILKMFPSTWYV"); double[] f = new double[n]; f[0] = 0.0866; f[1] = 0.0440; f[2] = 0.0391; f[3] = 0.0570; f[4] = 0.0193; f[5] = 0.0367; f[6] = 0.0581; f[7] = 0.0833; f[8] = 0.0244; f[9] = 0.0485; f[10] = 0.0862; f[11] = 0.0620; f[12] = 0.0195; f[13] = 0.0384; f[14] = 0.0458; f[15] = 0.0695; f[16] = 0.0610; f[17] = 0.0144; f[18] = 0.0353; f[19] = 0.0709; setEmpiricalFrequencies(f, "ARNDCQEGHILKMFPSTWYV"); } @Override public Citation.Category getCategory() { return Citation.Category.SUBSTITUTION_MODELS; } @Override public String getDescription() { return "WAG amino acid substitution model"; } @Override public List<Citation> getCitations() { return Collections.singletonList(CITATION); } public static Citation CITATION = new Citation( new Author[]{ new Author("S", "Whelan"), new Author("N", "Goldman") }, "A General Empirical Model of Protein Evolution Derived from Multiple Protein Families Using a Maximum-Likelihood Approach", 2001, "Mol Biol Evol", 18, 691, 699, Citation.Status.PUBLISHED ); }