
    /// All the clades for which we have data.
    pub static CLADES: &[&str] = &[
        "Accipitriformes",
        "Actiniaria",
        "Anura",
        "Apiales",
        "Aplousobranchia",
        "Asterales",
        "Buxales",
        "Caprimulgiformes",
        "Carangiformes",
        "Carcharhiniformes",
        "Cardiida",
        "Carnivora",
        "Caryophyllales",
        "Cheilostomatida",
        "Chiroptera",
        "Chlamydomonadales",
        "Coleoptera",
        "Crassiclitellata",
        "Cypriniformes",
        "Eucoccidiorida",
        "Fabales",
        "Fagales",
        "Forcipulatida",
        "Hemiptera",
        "Heteronemertea",
        "Hirudinida",
        "Hymenoptera",
        "Hypnales",
        "Labriformes",
        "Lamiales",
        "Lepidoptera",
        "Malpighiales",
        "Myrtales",
        "Odonata",
        "Orthoptera",
        "Pectinida",
        "Perciformes",
        "Phlebobranchia",
        "Phyllodocida",
        "Plecoptera",
        "Pleuronectiformes",
        "Poales",
        "Rodentia",
        "Rosales",
        "Salmoniformes",
        "Sapindales",
        "Solanales",
        "Symphypleona",
        "Syngnathiformes",
        "Trichoptera",
        "Trochida",
        "Venerida",
    ];


    /// A function to get a telomeric repeat sequence
    /// given a clade name.
    pub fn return_telomere_sequence(clade: &str) -> TelomereSeq {
        let result = match clade {

        "Accipitriformes" => TelomereSeq {
            clade: "Accipitriformes",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Actiniaria" => TelomereSeq {
            clade: "Actiniaria",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Anura" => TelomereSeq {
            clade: "Anura",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Apiales" => TelomereSeq {
            clade: "Apiales",
            seq: Seq(Box::new(&["AAACCCT"])),
            length: 1,
        },
        

        "Aplousobranchia" => TelomereSeq {
            clade: "Aplousobranchia",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Asterales" => TelomereSeq {
            clade: "Asterales",
            seq: Seq(Box::new(&["AAACCCT"])),
            length: 1,
        },
        

        "Buxales" => TelomereSeq {
            clade: "Buxales",
            seq: Seq(Box::new(&["AAACCCT"])),
            length: 1,
        },
        

        "Caprimulgiformes" => TelomereSeq {
            clade: "Caprimulgiformes",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Carangiformes" => TelomereSeq {
            clade: "Carangiformes",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Carcharhiniformes" => TelomereSeq {
            clade: "Carcharhiniformes",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Cardiida" => TelomereSeq {
            clade: "Cardiida",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Carnivora" => TelomereSeq {
            clade: "Carnivora",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Caryophyllales" => TelomereSeq {
            clade: "Caryophyllales",
            seq: Seq(Box::new(&["AAACCCT"])),
            length: 1,
        },
        

        "Cheilostomatida" => TelomereSeq {
            clade: "Cheilostomatida",
            seq: Seq(Box::new(&["AAACCCC"])),
            length: 1,
        },
        

        "Chiroptera" => TelomereSeq {
            clade: "Chiroptera",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Chlamydomonadales" => TelomereSeq {
            clade: "Chlamydomonadales",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Coleoptera" => TelomereSeq {
            clade: "Coleoptera",
            seq: Seq(Box::new(&["AACCT",
			"ACCTG",
			"AACAGACCCG",
			"AACCC"])),
            length: 4,
        },
        

        "Crassiclitellata" => TelomereSeq {
            clade: "Crassiclitellata",
            seq: Seq(Box::new(&["AAGGAC"])),
            length: 1,
        },
        

        "Cypriniformes" => TelomereSeq {
            clade: "Cypriniformes",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Eucoccidiorida" => TelomereSeq {
            clade: "Eucoccidiorida",
            seq: Seq(Box::new(&["AAACCCT"])),
            length: 1,
        },
        

        "Fabales" => TelomereSeq {
            clade: "Fabales",
            seq: Seq(Box::new(&["AAACCCT"])),
            length: 1,
        },
        

        "Fagales" => TelomereSeq {
            clade: "Fagales",
            seq: Seq(Box::new(&["AAACCCT"])),
            length: 1,
        },
        

        "Forcipulatida" => TelomereSeq {
            clade: "Forcipulatida",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Hemiptera" => TelomereSeq {
            clade: "Hemiptera",
            seq: Seq(Box::new(&["AAACCACCCT",
			"AACCATCCCT"])),
            length: 2,
        },
        

        "Heteronemertea" => TelomereSeq {
            clade: "Heteronemertea",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Hirudinida" => TelomereSeq {
            clade: "Hirudinida",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Hymenoptera" => TelomereSeq {
            clade: "Hymenoptera",
            seq: Seq(Box::new(&["AAACCC",
			"AAAGAACCT",
			"AACCCAGACGC",
			"AACCCGAACCT",
			"AACCCTGACGC",
			"AAAATTGTCCGTCC",
			"AACCC",
			"AACCCCAACCT",
			"AAATGTGGAGG",
			"AACCCAGACCC",
			"ACCCAG",
			"AACCCAGACCT",
			"AACCCT",
			"ACGGCAGCG",
			"AACCT"])),
            length: 15,
        },
        

        "Hypnales" => TelomereSeq {
            clade: "Hypnales",
            seq: Seq(Box::new(&["AAACCCT"])),
            length: 1,
        },
        

        "Labriformes" => TelomereSeq {
            clade: "Labriformes",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Lamiales" => TelomereSeq {
            clade: "Lamiales",
            seq: Seq(Box::new(&["AAACCCT"])),
            length: 1,
        },
        

        "Lepidoptera" => TelomereSeq {
            clade: "Lepidoptera",
            seq: Seq(Box::new(&["AACCT"])),
            length: 1,
        },
        

        "Malpighiales" => TelomereSeq {
            clade: "Malpighiales",
            seq: Seq(Box::new(&["AAACCCT"])),
            length: 1,
        },
        

        "Myrtales" => TelomereSeq {
            clade: "Myrtales",
            seq: Seq(Box::new(&["AAACCCT"])),
            length: 1,
        },
        

        "Odonata" => TelomereSeq {
            clade: "Odonata",
            seq: Seq(Box::new(&["AACCC"])),
            length: 1,
        },
        

        "Orthoptera" => TelomereSeq {
            clade: "Orthoptera",
            seq: Seq(Box::new(&["AACCT"])),
            length: 1,
        },
        

        "Pectinida" => TelomereSeq {
            clade: "Pectinida",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Perciformes" => TelomereSeq {
            clade: "Perciformes",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Phlebobranchia" => TelomereSeq {
            clade: "Phlebobranchia",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Phyllodocida" => TelomereSeq {
            clade: "Phyllodocida",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Plecoptera" => TelomereSeq {
            clade: "Plecoptera",
            seq: Seq(Box::new(&["AACCT"])),
            length: 1,
        },
        

        "Pleuronectiformes" => TelomereSeq {
            clade: "Pleuronectiformes",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Poales" => TelomereSeq {
            clade: "Poales",
            seq: Seq(Box::new(&["AAACCCT"])),
            length: 1,
        },
        

        "Rodentia" => TelomereSeq {
            clade: "Rodentia",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Rosales" => TelomereSeq {
            clade: "Rosales",
            seq: Seq(Box::new(&["AAACCCT"])),
            length: 1,
        },
        

        "Salmoniformes" => TelomereSeq {
            clade: "Salmoniformes",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Sapindales" => TelomereSeq {
            clade: "Sapindales",
            seq: Seq(Box::new(&["AAACCCT"])),
            length: 1,
        },
        

        "Solanales" => TelomereSeq {
            clade: "Solanales",
            seq: Seq(Box::new(&["AACCCTG"])),
            length: 1,
        },
        

        "Symphypleona" => TelomereSeq {
            clade: "Symphypleona",
            seq: Seq(Box::new(&["AACCT"])),
            length: 1,
        },
        

        "Syngnathiformes" => TelomereSeq {
            clade: "Syngnathiformes",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Trichoptera" => TelomereSeq {
            clade: "Trichoptera",
            seq: Seq(Box::new(&["AACCT"])),
            length: 1,
        },
        

        "Trochida" => TelomereSeq {
            clade: "Trochida",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

        "Venerida" => TelomereSeq {
            clade: "Venerida",
            seq: Seq(Box::new(&["AACCCT"])),
            length: 1,
        },
        

            _ => panic!("{} is not yet accounted for in this pipeline.", clade),
        };
        result
    }
