82 lines
2.4 KiB
C
82 lines
2.4 KiB
C
|
/*
|
||
|
* File: scfIO.h
|
||
|
*
|
||
|
* Author: Simon Dear
|
||
|
* MRC Laboratory of Molecular Biology
|
||
|
* Hills Road
|
||
|
* Cambridge CB2 2QH
|
||
|
* United Kingdom
|
||
|
*
|
||
|
* Description: header file for SCF file IO
|
||
|
*
|
||
|
* Created: 8 October 1992 (from seqIOSCF.c)
|
||
|
* Updated:
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#ifndef _SCFIO_H_
|
||
|
#define _SCFIO_H_
|
||
|
|
||
|
#include "mach-io.h"
|
||
|
|
||
|
/* ---- Constants ---- */
|
||
|
#define SCF_MAGIC (((((uint_4)'.'<<8)+(uint_4)'s'<<8)+(uint_4)'c'<<8)+(uint_4)'f')
|
||
|
|
||
|
/*
|
||
|
** Type definition for the Header structure
|
||
|
*/
|
||
|
typedef struct {
|
||
|
uint_4 magic_number; /* Always ((('.'<<8)+'s'<<8)+'c'<<8)+'f'; */
|
||
|
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 */
|
||
|
uint_4 spare[23]; /* Unused */
|
||
|
} Header;
|
||
|
|
||
|
/*
|
||
|
** Type definition for the Sample data
|
||
|
*/
|
||
|
typedef struct {
|
||
|
uint_1 sample_A; /* Sample for A trace */
|
||
|
uint_1 sample_C; /* Sample for C trace */
|
||
|
uint_1 sample_G; /* Sample for G trace */
|
||
|
uint_1 sample_T; /* Sample for T trace */
|
||
|
} Samples;
|
||
|
|
||
|
/*
|
||
|
** Type definition for the sequence data
|
||
|
*/
|
||
|
typedef struct {
|
||
|
uint_4 peak_index; /* Index into Samples matrix for base position */
|
||
|
uint_1 prob_A; /* Probability of it being an A */
|
||
|
uint_1 prob_C; /* Probability of it being an C */
|
||
|
uint_1 prob_G; /* Probability of it being an G */
|
||
|
uint_1 prob_T; /* Probability of it being an T */
|
||
|
uint_1 base; /* Base called */
|
||
|
uint_1 spare[3]; /* Spare */
|
||
|
} Bases;
|
||
|
|
||
|
|
||
|
/*
|
||
|
** Type definition for the comments
|
||
|
*/
|
||
|
typedef char Comments; /* Zero terminated list of \n separated entries */
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
extern int read_scf_header(FILE *fp, Header *h);
|
||
|
extern int read_scf_sample(FILE *fp, Samples *s);
|
||
|
extern int read_scf_base(FILE *fp, Bases *b);
|
||
|
extern int write_scf_header(FILE *fp, Header *h);
|
||
|
extern int write_scf_sample(FILE *fp, Samples *s);
|
||
|
extern int write_scf_base(FILE *fp, Bases *b);
|
||
|
extern int write_scf_comment(FILE *fp, Comments *c, size_t l);
|
||
|
|
||
|
#endif /*_SCFIO_H_*/
|