001/*
002 *                    BioJava development code
003 *
004 * This code may be freely distributed and modified under the
005 * terms of the GNU Lesser General Public Licence.  This should
006 * be distributed with the code.  If you do not have a copy,
007 * see:
008 *
009 *      http://www.gnu.org/copyleft/lesser.html
010 *
011 * Copyright for this code is held jointly by the individual
012 * authors.  These should be listed in @author doc comments.
013 *
014 * For more information on the BioJava project and its aims,
015 * or to join the biojava-l mailing list, visit the home page
016 * at:
017 *
018 *      http://www.biojava.org/
019 *
020 */
021package org.biojava.nbio.core.sequence.compound;
022
023
024
025/**
026 *
027 * @author Andy Yates
028 */
029public class AmbiguityDNACompoundSet extends DNACompoundSet {
030
031        private static class InitaliseOnDemand {
032        public static final AmbiguityDNACompoundSet INSTANCE = new AmbiguityDNACompoundSet();
033        }
034
035        public static AmbiguityDNACompoundSet getDNACompoundSet() {
036        return InitaliseOnDemand.INSTANCE;
037        }
038
039        public AmbiguityDNACompoundSet() {
040        super();
041
042        addNucleotideCompound("M", "K",
043                "A", "C");
044        addNucleotideCompound("R", "Y",
045                "A", "G");
046        addNucleotideCompound("W", "W",
047                "A", "T");
048        addNucleotideCompound("S", "S",
049                "C", "G");
050        addNucleotideCompound("Y", "R",
051                "C", "T");
052        addNucleotideCompound("K", "M",
053                "G", "T");
054        addNucleotideCompound("V", "B",
055                "A", "C", "G");
056        addNucleotideCompound("H", "D",
057                "A", "C", "T");
058        addNucleotideCompound("D", "H",
059                "A", "G", "T");
060        addNucleotideCompound("B", "V",
061                "C", "G", "T");
062        addNucleotideCompound("N", "N", "A", "C", "G", "T");
063
064        addNucleotideCompound("I", "I", "N", "A", "C", "G", "T");
065
066
067        calculateIndirectAmbiguities();
068        }
069}