Mercurial > repos > dawe > srf2fastq
diff srf2fastq/io_lib-1.12.2/io_lib/seqIOABI.h @ 0:d901c9f41a6a default tip
Migrated tool version 1.0.1 from old tool shed archive to new tool shed repository
author | dawe |
---|---|
date | Tue, 07 Jun 2011 17:48:05 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/srf2fastq/io_lib-1.12.2/io_lib/seqIOABI.h Tue Jun 07 17:48:05 2011 -0400 @@ -0,0 +1,155 @@ +/* + * Copyright (c) Medical Research Council 1994. All rights reserved. + * + * Permission to use, copy, modify and distribute this software and its + * documentation for any purpose is hereby granted without fee, provided that + * this copyright and notice appears in all copies. + * + * This file was written by James Bonfield, Simon Dear, Rodger Staden, + * as part of the Staden Package at the MRC Laboratory of Molecular + * Biology, Hills Road, Cambridge, CB2 2QH, United Kingdom. + * + * MRC disclaims all warranties with regard to this software. + */ + +#ifndef _seqIOABI_h_ +#define _seqIOABI_h_ + +#include <sys/types.h> /* off_t */ +#include "io_lib/os.h" + +#ifdef __cplusplus +extern "C" { +#endif + +/* + * The ABI magic number - "ABIF" + */ +#define ABI_MAGIC ((int_4) ((((('A'<<8)+'B')<<8)+'I')<<8)+'F') + +/* + * The index is located towards the end of the ABI trace file. + * It's location is given by a longword at a fixed place. + */ +#define IndexPO ((off_t)26) + +#define IndexEntryLength 28 + +/* + * Here are some labels we will be looking for, four chars packed + * into an int_4 + */ +#define LABEL(a) ((int_4) ((((((a)[0]<<8)+(a)[1])<<8)+(a)[2])<<8)+(a)[3]) +#define DataEntryLabel LABEL("DATA") +#define BaseEntryLabel LABEL("PBAS") +#define BasePosEntryLabel LABEL("PLOC") +#define SpacingEntryLabel LABEL("SPAC") +#define SignalEntryLabel LABEL("S/N%") +#define FWO_Label LABEL("FWO_") +#define MCHNLabel LABEL("MCHN") +#define PDMFLabel LABEL("PDMF") +#define SMPLLabel LABEL("SMPL") +#define PPOSLabel LABEL("PPOS") +#define CMNTLabel LABEL("CMNT") +#define GelNameLabel LABEL("GELN") +#define LANELabel LABEL("LANE") +#define RUNDLabel LABEL("RUND") +#define RUNTLabel LABEL("RUNT") +#define MTXFLabel LABEL("MTXF") +#define SPACLabel LABEL("SPAC") +#define SVERLabel LABEL("SVER") +#define MODLLabel LABEL("MODL") +#define BaseConfLabel LABEL("PCON") + + +/* + * From the ABI results file connected to `fp' whose index starts + * at byte offset `indexO', return in `val' the `lw'th long word + * from the `count'th entry labelled `label'. + * The result is 0 for failure, or index offset for success. + */ +int getABIIndexEntryLW(FILE *fp, off_t indexO, + uint_4 label, uint_4 count, int lw, + uint_4 *val); + +/* + * From the ABI results file connected to `fp' whose index starts + * at byte offset `indexO', return in `val' the `sw'th short word + * from the `count'th entry labelled `label'. + * The result is 0 for failure, or index offset for success. + */ +int getABIIndexEntrySW(FILE *fp, off_t indexO, + uint_4 label, uint_4 count, int sw, + uint_2 *val); + +/* + * Gets the offset of the ABI index. + * Returns -1 for failure, 0 for success. + */ +int getABIIndexOffset(FILE *fp, uint_4 *indexO); + +/* + * Get an "ABI String". These strings are either pointed to by the index + * offset, or held in the offset itself when the string is <= 4 characters. + * The first byte of the string determines its length. + * 'string' is a buffer 256 characters long. + * + * Returns -1 for failure, string length for success. + */ +int getABIString(FILE *fp, off_t indexO, uint_4 label, uint_4 count, + char *string); + +/* + * Get an "ABI Int_1". This is raw 1-byte integer data pointed to by the + * offset, or held in the offset itself when the data is <= 4 characters. + * + * If indexO is 0 then we do not search for (or indeed use) label and count, + * but simply assume that we are already at the correct offset and read from + * here. (NB: This negates the length <= 4 check.) + * + * Returns -1 for failure, length desired for success (it'll only fill out + * up to max_data_len elements, but it gives an indication of whether there + * was more to come). + */ +int getABIint1(FILE *fp, off_t indexO, uint_4 label, uint_4 count, + uint_1 *data, int max_data_len); + +/* + * Get an "ABI Int_2". This is raw 2-byte integer data pointed to by the + * offset, or held in the offset itself when the data is <= 4 characters. + * + * Returns -1 for failure, length desired for success (it'll only fill out + * up to max_data_len elements, but it gives an indication of whether there + * was more to come). + */ +int getABIint2(FILE *fp, off_t indexO, uint_4 label, uint_4 count, + uint_2 *data, int max_data_len); + +/* + * Get an "ABI Int_4". This is raw 4-byte integer data pointed to by the + * offset, or held in the offset itself when the data is <= 4 characters. + * + * Returns -1 for failure, length desired for success (it'll only fill out + * up to max_data_len elements, but it gives an indication of whether there + * was more to come). + */ +int getABIint4(FILE *fp, off_t indexO, uint_4 label, uint_4 count, + uint_4 *data, int max_data_len); + +int dump_labels(FILE *fp, off_t indexO); + +/* + * Change the DATA counts for fetching traces + */ +void abi_set_data_counts(int f, int w, int o, int _); + +/* + * Put the DATA counts back to their defaults. + */ +void abi_reset_data_counts(void); + +#ifdef __cplusplus +} +#endif + +#endif /* _seqIOABI_h_ */