Search in sources :

Example 1 with PCACodonModel

use of dr.evomodel.substmodel.codon.PCACodonModel in project beast-mcmc by beast-dev.

the class PCACodonModelParser method parseXMLObject.

public Object parseXMLObject(XMLObject xo) throws XMLParseException {
    Codons codons = Codons.UNIVERSAL;
    if (xo.hasAttribute(GeneticCode.GENETIC_CODE)) {
        String codeStr = xo.getStringAttribute(GeneticCode.GENETIC_CODE);
        if (codeStr.equals(GeneticCode.UNIVERSAL.getName())) {
            codons = Codons.UNIVERSAL;
        } else if (codeStr.equals(GeneticCode.VERTEBRATE_MT.getName())) {
            codons = Codons.VERTEBRATE_MT;
        } else if (codeStr.equals(GeneticCode.YEAST.getName())) {
            codons = Codons.YEAST;
        } else if (codeStr.equals(GeneticCode.MOLD_PROTOZOAN_MT.getName())) {
            codons = Codons.MOLD_PROTOZOAN_MT;
        } else if (codeStr.equals(GeneticCode.INVERTEBRATE_MT.getName())) {
            codons = Codons.INVERTEBRATE_MT;
        } else if (codeStr.equals(GeneticCode.CILIATE.getName())) {
            codons = Codons.CILIATE;
        } else if (codeStr.equals(GeneticCode.ECHINODERM_MT.getName())) {
            codons = Codons.ECHINODERM_MT;
        } else if (codeStr.equals(GeneticCode.EUPLOTID_NUC.getName())) {
            codons = Codons.EUPLOTID_NUC;
        } else if (codeStr.equals(GeneticCode.BACTERIAL.getName())) {
            codons = Codons.BACTERIAL;
        } else if (codeStr.equals(GeneticCode.ALT_YEAST.getName())) {
            codons = Codons.ALT_YEAST;
        } else if (codeStr.equals(GeneticCode.ASCIDIAN_MT.getName())) {
            codons = Codons.ASCIDIAN_MT;
        } else if (codeStr.equals(GeneticCode.FLATWORM_MT.getName())) {
            codons = Codons.FLATWORM_MT;
        } else if (codeStr.equals(GeneticCode.BLEPHARISMA_NUC.getName())) {
            codons = Codons.BLEPHARISMA_NUC;
        } else if (codeStr.equals(GeneticCode.NO_STOPS.getName())) {
            codons = Codons.NO_STOPS;
        }
    }
    // get number of PCs
    Parameter pcaDimensionParameter = (Parameter) xo.getElementFirstChild(PCA_DIMENSION);
    // get directory with pca rate matrix files; fallback to default "pcadata"
    String dirString = "pcadata";
    if (xo.hasAttribute(PCA_DATA_DIR)) {
        dirString = xo.getStringAttribute(PCA_DATA_DIR);
    }
    // get type of rate matrix; fallback to mammalia pca
    AbstractPCARateMatrix pcaType = new PCARateMatrixMammalia(pcaDimensionParameter.getDimension(), dirString);
    // check for other type of pca
    if (xo.hasAttribute(PCATYPE)) {
        String pcaTypeString = xo.getStringAttribute(PCATYPE);
        if (pcaTypeString.equals(PCARateMatrixMammalia.getName())) {
            pcaType = new PCARateMatrixMammalia(pcaDimensionParameter.getDimension(), dirString);
        }
    }
    // decide if getting frequencies from csv or estimating from MSA
    FrequencyModel freqModel = null;
    if (xo.getChild(FrequencyModel.class) != null) {
        freqModel = (FrequencyModel) xo.getChild(FrequencyModel.class);
    } else {
        freqModel = createNewFreqModel(codons, pcaType);
    }
    return new PCACodonModel(codons, pcaType, pcaDimensionParameter, freqModel);
}
Also used : FrequencyModel(dr.evomodel.substmodel.FrequencyModel) PCARateMatrixMammalia(dr.evomodel.substmodel.PCARateMatrixMammalia) AbstractPCARateMatrix(dr.evomodel.substmodel.AbstractPCARateMatrix) PCACodonModel(dr.evomodel.substmodel.codon.PCACodonModel) Parameter(dr.inference.model.Parameter) Codons(dr.evolution.datatype.Codons)

Aggregations

Codons (dr.evolution.datatype.Codons)1 AbstractPCARateMatrix (dr.evomodel.substmodel.AbstractPCARateMatrix)1 FrequencyModel (dr.evomodel.substmodel.FrequencyModel)1 PCARateMatrixMammalia (dr.evomodel.substmodel.PCARateMatrixMammalia)1 PCACodonModel (dr.evomodel.substmodel.codon.PCACodonModel)1 Parameter (dr.inference.model.Parameter)1