90 lines
2.7 KiB
C
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_*/
|