inc/dnaseq.h

Go to the documentation of this file.
00001 /* dnaSeq - stuff to manage DNA sequences. 
00002  *
00003  * This file is copyright 2002 Jim Kent, but license is hereby
00004  * granted for all use - public, private or commercial. */
00005 
00006 #ifndef DNASEQ_H
00007 #define DNASEQ_H
00008 
00009 #ifndef DNAUTIL_H
00010 #include "dnautil.h"
00011 #endif
00012 
00013 #ifndef BITS_H
00014 #include "bits.h"
00015 #endif
00016 
00017 struct dnaSeq
00018 /* A dna sequence in one-character per base format. */
00019     {
00020     struct dnaSeq *next;  /* Next in list. */
00021     char *name;           /* Name of sequence. */
00022     DNA *dna;             /* Sequence base by base. */
00023     int size;             /* Size of sequence. */
00024     Bits* mask;           /* Repeat mask (optional) */
00025     };
00026 
00027 typedef struct dnaSeq bioSeq;   /* Preferred use if either DNA or protein. */
00028 typedef struct dnaSeq aaSeq;    /* Preferred use if protein. */
00029 
00030 struct dnaSeq *newDnaSeq(DNA *dna, int size, char *name);
00031 /* Create a new DNA seq. */
00032 
00033 struct dnaSeq *cloneDnaSeq(struct dnaSeq *seq);
00034 /* Duplicate dna sequence in RAM. */
00035 
00036 void freeDnaSeq(struct dnaSeq **pSeq);
00037 /* Free up DNA seq.  */
00038 #define dnaSeqFree freeDnaSeq
00039 
00040 void freeDnaSeqList(struct dnaSeq **pSeqList);
00041 /* Free up list of DNA sequences. */
00042 #define dnaSeqFreeList freeDnaSeqList
00043 
00044 aaSeq *translateSeqN(struct dnaSeq *inSeq, unsigned offset, unsigned size, boolean stop);
00045 /* Return a translated sequence.  Offset is position of first base to
00046  * translate. If size is 0 then use length of inSeq. */
00047 
00048 aaSeq *translateSeq(struct dnaSeq *inSeq, unsigned offset, boolean stop);
00049 /* Return a translated sequence.  Offset is position of first base to
00050  * translate. If stop is TRUE then stop at first stop codon.  (Otherwise 
00051  * represent stop codons as 'Z'). */
00052 
00053 boolean seqIsDna(bioSeq *seq);
00054 /* Make educated guess whether sequence is DNA or protein. */
00055 
00056 boolean seqIsLower(bioSeq *seq);
00057 /* Return TRUE if sequence is all lower case. */
00058 
00059 bioSeq *whichSeqIn(bioSeq **seqs, int seqCount, char *letters);
00060 /* Figure out which if any sequence letters is in. */
00061 
00062 Bits *maskFromUpperCaseSeq(bioSeq *seq);
00063 /* Allocate a mask for sequence and fill it in based on
00064  * sequence case. */
00065 
00066 struct hash *dnaSeqHash(struct dnaSeq *seqList);
00067 /* Return hash of sequences keyed by name. */
00068 
00069 #endif /* DNASEQ_H */
00070 

Generated on Tue Dec 25 18:39:29 2007 for blat by  doxygen 1.5.2