Changeset 3252


Ignore:
Timestamp:
Jun 4, 2014, 3:48:25 PM (7 years ago)
Author:
Peter
Message:

avoid split in Codon

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/yat/omic/Codon.cc

    r2919 r3252  
    2323
    2424#include "Codon.h"
    25 
    26 #include "yat/utility/split.h"
    2725
    2826#include <cassert>
     
    8280
    8381
    84   void Codon::add_to_map(char aa, const std::string& codons)
    85   {
    86     // FIXME: change this file to take one codon instead and remove
    87     // the need for a split.
    88     std::vector<std::string> vec;
    89     utility::split(vec, codons, ',');
    90     for (size_t i=0; i<vec.size(); ++i) {
    91       assert(vec[i].size()==3);
    92       std::vector<DNA> codon;
    93       codon.reserve(3);
    94       for (size_t j=0; j<3; ++j)
    95         codon.push_back(DNA(vec[i][j]));
    96       map_[codon] = aa;
    97     }
     82  void Codon::add_to_map(char aa, const std::string& codon)
     83  {
     84    assert(codon.size()==3);
     85    std::pair<std::vector<DNA>, char> val;
     86    val.second = aa;
     87    val.first.reserve(3);
     88    for (size_t i=0; i<3; ++i)
     89      val.first.push_back(DNA(codon[i]));
     90    map_.insert(map_.end(), val);
    9891  }
    9992
     
    120113    if (!map_.empty())
    121114      return;
    122     add_to_map('A', "GCT,GCC,GCA,GCG");
    123     add_to_map('L', "TTA,TTG,CTT,CTC,CTA,CTG");
    124     add_to_map('R', "CGT,CGC,CGA,CGG,AGA,AGG");
    125     add_to_map('K', "AAA,AAG");
    126     add_to_map('N', "AAT,AAC");
    127     add_to_map('M', "ATG");
    128     add_to_map('D', "GAT,GAC");
    129     add_to_map('F', "TTT,TTC");
    130     add_to_map('C', "TGT,TGC");
    131     add_to_map('P', "CCT,CCC,CCA,CCG");
    132     add_to_map('Q', "CAA,CAG");
    133     add_to_map('S', "TCT,TCC,TCA,TCG,AGT,AGC");
    134     add_to_map('E', "GAA,GAG");
    135     add_to_map('T', "ACT,ACC,ACA,ACG");
    136     add_to_map('G', "GGT,GGC,GGA,GGG");
    137     add_to_map('W', "TGG");
    138     add_to_map('H', "CAT,CAC");
    139     add_to_map('Y', "TAT,TAC");
    140     add_to_map('I', "ATT,ATC,ATA");
    141     add_to_map('V', "GTT,GTC,GTA,GTG");
    142     add_to_map('*',"TAA,TGA,TAG"); //  stop
     115    add_to_map('K', "AAA");
     116    add_to_map('N', "AAC");
     117    add_to_map('K', "AAG");
     118    add_to_map('N', "AAT");
     119    add_to_map('T', "ACA");
     120    add_to_map('T', "ACC");
     121    add_to_map('T', "ACG");
     122    add_to_map('T', "ACT");
     123    add_to_map('R', "AGA");
     124    add_to_map('S', "AGC");
     125    add_to_map('R', "AGG");
     126    add_to_map('S', "AGT");
     127    add_to_map('I', "ATA");
     128    add_to_map('I', "ATC");
     129    add_to_map('M', "ATG");
     130    add_to_map('I', "ATT");
     131    add_to_map('Q', "CAA");
     132    add_to_map('H', "CAC");
     133    add_to_map('Q', "CAG");
     134    add_to_map('H', "CAT");
     135    add_to_map('P', "CCA");
     136    add_to_map('P', "CCC");
     137    add_to_map('P', "CCG");
     138    add_to_map('P', "CCT");
     139    add_to_map('R', "CGA");
     140    add_to_map('R', "CGC");
     141    add_to_map('R', "CGG");
     142    add_to_map('R', "CGT");
     143    add_to_map('L', "CTA");
     144    add_to_map('L', "CTC");
     145    add_to_map('L', "CTG");
     146    add_to_map('L', "CTT");
     147    add_to_map('E', "GAA");
     148    add_to_map('D', "GAC");
     149    add_to_map('E', "GAG");
     150    add_to_map('D', "GAT");
     151    add_to_map('A', "GCA");
     152    add_to_map('A', "GCC");
     153    add_to_map('A', "GCG");
     154    add_to_map('A', "GCT");
     155    add_to_map('G', "GGA");
     156    add_to_map('G', "GGC");
     157    add_to_map('G', "GGG");
     158    add_to_map('G', "GGT");
     159    add_to_map('V', "GTA");
     160    add_to_map('V', "GTC");
     161    add_to_map('V', "GTG");
     162    add_to_map('V', "GTT");
     163    add_to_map('*', "TAA");
     164    add_to_map('Y', "TAC");
     165    add_to_map('*', "TAG");
     166    add_to_map('Y', "TAT");
     167    add_to_map('S', "TCA");
     168    add_to_map('S', "TCC");
     169    add_to_map('S', "TCG");
     170    add_to_map('S', "TCT");
     171    add_to_map('*', "TGA");
     172    add_to_map('C', "TGC");
     173    add_to_map('W', "TGG");
     174    add_to_map('C', "TGT");
     175    add_to_map('L', "TTA");
     176    add_to_map('F', "TTC");
     177    add_to_map('L', "TTG");
     178    add_to_map('F', "TTT");
     179    assert(map_.size()==64);
    143180  }
    144181
     
    161198    return iter_->first[i];
    162199  }
     200
    163201
    164202  bool Codon::Compare_::operator()(const std::vector<DNA>& lhs,
Note: See TracChangeset for help on using the changeset viewer.