/* * HKYRates.java * * Copyright (c) 2002-2015 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.oldevomodel.ibd; import dr.oldevomodel.substmodel.FrequencyModel; import dr.oldevomodel.substmodel.HKY; import dr.inference.model.Parameter; /** * Package: dr.evomodel.ibd * Description: * <p/> * <p/> * Created by * avaleks (alexander.alekseyenko@gmail.com) * Date: 05-Aug-2008 * Time: 09:32:35 */ public class HKYRates extends HKY { /** * Constructor */ public HKYRates(Parameter kappaParameter, FrequencyModel freqModel) { super(kappaParameter, freqModel); } public double[] getRelativeRates(double[] rateMatrix) { double kappa = getKappa(); double[] freq = getFrequencyModel().getFrequencies(); // A - C - G - T rateMatrix[0] = -(freq[1] + freq[3]) - freq[2] * kappa; rateMatrix[1] = freq[1]; rateMatrix[2] = freq[2] * kappa; rateMatrix[3] = freq[3]; rateMatrix[4] = freq[0]; rateMatrix[5] = -(freq[0] + freq[2]) - freq[3] * kappa; rateMatrix[6] = freq[2]; rateMatrix[7] = freq[3] * kappa; rateMatrix[8] = freq[0] * kappa; rateMatrix[9] = freq[1]; rateMatrix[10] = -(freq[1] + freq[3]) - freq[0] * kappa; rateMatrix[11] = freq[3]; rateMatrix[12] = freq[0]; rateMatrix[13] = freq[1] * kappa; rateMatrix[14] = freq[2]; rateMatrix[15] = -(freq[0] + freq[1]) - freq[1] * kappa; return rateMatrix; } }