/* GReadings.sense */ #define GAP_SENSE_ORIGINAL 0 #define GAP_SENSE_REVERSE 1 /* GReadings.strand */ #define GAP_STRAND_FORWARD 0 #define GAP_STRAND_REVERSE 1 /* GReadings.primer */ #define GAP_PRIMER_UNKNOWN 0 #define GAP_PRIMER_FORWARD 1 #define GAP_PRIMER_REVERSE 2 #define GAP_PRIMER_CUSTFOR 3 #define GAP_PRIMER_CUSTREV 4 /* GReadings.chemistry */ /* Bit 0 is 1 for terminator, 0 for primer */ #define GAP_CHEM_TERMINATOR (1<<0) /* Bits 1 to 4 inclusive are the type (any one of, not bit pattern) */ #define GAP_CHEM_TYPE_MASK (15<<1) #define GAP_CHEM_TYPE_UNKNOWN (0<<1) #define GAP_CHEM_TYPE_ABI_RHOD (1<<1) #define GAP_CHEM_TYPE_ABI_DRHOD (2<<1) #define GAP_CHEM_TYPE_BIGDYE (3<<1) #define GAP_CHEM_TYPE_ET (4<<1) #define GAP_CHEM_TYPE_LICOR (5<<1) typedef struct { GCardinal name; GCardinal trace_name; GCardinal trace_type; GCardinal left; /* left neighbour */ GCardinal right; /* right neighbour */ GCardinal position; /* position in contig */ GCardinal length; /* total length of reading */ GCardinal sense; /* 0 = original, 1 = reverse */ GCardinal sequence; GCardinal confidence; GCardinal orig_positions; GCardinal chemistry; /* see comments above (GAP_CHEM_*) */ GCardinal annotations; /* start of annotation list */ GCardinal sequence_length; /* clipped length */ GCardinal start; /* last base of left cutoff */ GCardinal end; /* first base of right cutoff */ GCardinal template; /* aka subclone */ GCardinal strand; /* 0 = forward, 1 = reverse */ GCardinal primer; /* 0 = unknown, 1 = forwards, */ /* 2 = reverse, 3 = custom forward */ /* 4 = custom reverse */ GCardinal notes; /* Unpositional annotations */ } GReadings;
The reading structure contains information related to individual sequence
fragments. It should be read and written using the gel_read
and
gel_write
functions. Whilst it is perfectly possible to use
GT_Read
to access this data, using gel_read
will read from an
in-memory cache and so is much faster. Using GT_Write
to write a
GReadings structure must never be used as it will invalidate the cache.
io_read_reading_name
and io_write_reading_name
instead of
io_read_text
or io_write_text
. See section io_read_reading_name and io_write_reading_name.
GAP_SENSE_*
macros should be used in preference to integer
values.
chemistry &
GAP_CHEM_DOUBLE
contains the terminator reaction information. Non
zero implies a terminator reaction, which can then optionally be used
as double stranded sequence.
GAP_STRAND_*
macros should be used in preference to integer
values.
GAP_PRIMER_*
macros
should be used in preference to integer values.