ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/gclib/gclib/codons.h
Revision: 2
Committed: Mon Mar 22 22:03:27 2010 UTC (9 years, 4 months ago) by gpertea
File size: 1065 byte(s)
Log Message:
added my gclib source files

Line File contents
1 #ifndef CODONS_H
2 #define CODONS_H
3 #include "GBase.h"
4 #include <ctype.h>
5
6 unsigned short packCodon(char n1, char n2, char n3);
7 //assumes n1,n2,n3 are UPPERCASE!
8
9 struct Codon {
10 char nuc[3];
11 Codon(char* str=NULL) {
12 if (str==NULL) {
13 nuc[0]='N';
14 nuc[1]='N';
15 nuc[2]='N';
16 }
17 else {
18 nuc[0]=toupper(str[0]);
19 nuc[1]=toupper(str[1]);
20 nuc[2]=toupper(str[2]);
21 }
22 }
23
24 Codon(char s1, char s2, char s3) {
25 nuc[0]=toupper(s1);
26 nuc[1]=toupper(s2);
27 nuc[2]=toupper(s3);
28 }
29
30
31 char& operator[](int idx) {
32 if (idx<0 || idx>2)
33 GError("Error: Codon index out of bounds!\n");
34 return nuc[idx];
35 }
36
37 char operator[](int idx) const {
38 if (idx<0 || idx>2)
39 GError("Error: Codon index out of bounds!\n");
40 return nuc[idx];
41 }
42
43 char translate();
44 };
45
46 //simple 1st frame forward translation of a given DNA string
47 //will allocated memory for the translation -- the caller is
48 // responsible for freeing the returned string!
49 char* translateDNA(const char* dnastr, int& aalen, int dnalen=0);
50
51
52 bool codonTableInit();
53
54 #endif