00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00023 #ifndef DEF_SEQ_H
00024 #define DEF_SEQ_H
00025
00026 #include "common.h"
00027 #include "bits.h"
00028
00032 typedef struct {
00033 char *name;
00034 char *sequence;
00035 int size;
00036 Bits* mask;
00037 } Seq;
00038
00039
00040 typedef Seq dnaSeq;
00041 typedef Seq aaSeq;
00042
00043
00044
00045 #define T_BASE_VAL 0
00046 #define U_BASE_VAL 0
00047 #define C_BASE_VAL 1
00048 #define A_BASE_VAL 2
00049 #define G_BASE_VAL 3
00050 #define N_BASE_VAL 4
00051
00052 typedef char DNA;
00053 typedef char AA;
00054 typedef char Codon;
00055
00056
00057
00058
00059
00060 extern DNA ntChars[256];
00061 extern AA aaChars[256];
00062
00063
00064
00065
00066 extern int ntVal[256];
00067 extern int aaVal[256];
00068 extern int ntValLower[256];
00069 extern int ntValUpper[256];
00070
00071
00072 extern int ntValNoN[256];
00073
00074
00075 extern int ntVal5[256];
00076
00077
00078 extern DNA valToNt[];
00079
00080
00081 extern DNA ntMixedCaseChars[256];
00082
00083
00084 extern DNA ntCompTable[256];
00085
00086
00087
00088
00089
00090 extern int ntValMasked[256];
00091 extern DNA valToNtMasked[256];
00092
00093
00094 void seq_init ();
00095 void seq_complement (DNA *dna, long length);
00096 void seq_reverseComplement (DNA *dna, long length);
00097 aaSeq* seq_translateSeqN (dnaSeq *inSeq, unsigned offset, unsigned size, int stop);
00098 aaSeq* seq_translateSeq (dnaSeq *inSeq, unsigned offset, int stop);
00099 int seq_seqIsLower (Seq *seq);
00100 Bits* seq_maskFromUpperCaseSeq (Seq *seq);
00101 void seq_toRna (DNA *dna);
00102 AA seq_lookupCodon (DNA *dna);
00103 AA seq_lookupMitochondrialCodon (DNA *dna);
00104 Codon seq_codonVal (DNA *start);
00105 DNA* seq_valToCodon (int val);
00106 AA* seq_dnaTranslate (DNA *dna, int terminateAtStopCodon);
00107 void seq_dnaMixedCaseFilter (char *in, DNA *out);
00108 void seq_dnaFilter (char *in, DNA *out);
00109 void seq_aaFilter (char *in, DNA *out);
00110 void seq_dnaBaseHistogram (DNA *dna, int dnaSize, int histogram[4]);
00111 int seq_intronOrientation (DNA *iStart, DNA *iEnd);
00112 int seq_dnaOrAaScoreMatch (char *a, char *b, int size, int matchScore, int mismatchScore, char ignore);
00113
00114
00115 #endif