staden-lg/src/ted/scf.h

90 lines
2.7 KiB
C

/*
* File: scf.h
* Version:
*
* Author: Simon Dear
* MRC Laboratory of Molecular Biology
* Hills Road
* Cambridge CB2 2QH
* United Kingdom
*
* Description: file structure definitions for SCF file
*
* Created: 19 November 1992
* Updated:
*
*/
#ifndef _SCF_H_
#define _SCF_H_
#include "mach-io.h"
#define SCF_MAGIC (((((uint_4)'.'<<8)+(uint_4)'s'<<8)+(uint_4)'c'<<8)+(uint_4)'f')
#define VERSION 2.00
/*
* Type definition for the Header structure
*/
typedef struct {
uint_4 magic_number; /* SCF_MAGIC */
uint_4 samples; /* Number of elements in Samples matrix */
uint_4 samples_offset; /* Byte offset from start of file */
uint_4 bases; /* Number of bases in Bases matrix */
uint_4 bases_left_clip; /* Number of bases in left clip (vector)*/
uint_4 bases_right_clip; /* Number of bases in right clip (unreliable) */
uint_4 bases_offset; /* Byte offset from start of file */
uint_4 comments_size; /* Number of bytes in Comment section */
uint_4 comments_offset; /* Byte offset from start of file */
char version[4]; /* "version.revision" */
uint_4 sample_size; /* precision of samples (in bytes) */
uint_4 code_set; /* uncertainty codes used */
uint_4 spare[20]; /* Unused */
} Header;
#define CSET_DEFAULT 0 /* {A,C,G,T,-} */
#define CSET_STADEN 1
#define CSET_NC_IUB 2
#define CSET_ALF 3 /* extended NC_IUB */
#define CSET_ABI 4 /* {A,C,G,T,N} */
/*
* Type definition for the Sample data
*/
typedef unsigned char byte;
typedef struct {
byte sample_A; /* Sample for A trace */
byte sample_C; /* Sample for C trace */
byte sample_G; /* Sample for G trace */
byte sample_T; /* Sample for T trace */
} Samples1;
typedef struct {
unsigned short sample_A; /* Sample for A trace */
unsigned short sample_C; /* Sample for C trace */
unsigned short sample_G; /* Sample for G trace */
unsigned short sample_T; /* Sample for T trace */
} Samples2;
/*
* Type definition for the sequence data
*/
typedef struct {
uint_4 peak_index; /* Index into Samples matrix for base position */
byte prob_A; /* Probability of it being an A */
byte prob_C; /* Probability of it being an C */
byte prob_G; /* Probability of it being an G */
byte prob_T; /* Probability of it being an T */
char base; /* Base called */
byte spare[3]; /* Spare */
} Bases;
/*
* Type definition for the comments
*/
typedef char Comments; /* Zero terminated list of \n separated entries */
#endif /*_SCF_H_*/