NAME¶
exp_read_info,
exp_fread_info,
exp_create_info,
exp_destroy_info,
exp_create_range,
exp_extract_range,
exp_get_feature_index,
exp_get_int,
exp_get_rng,
exp_get_str,
exp_put_int,
exp_put_rng,
exp_put_str,
exp_print_line,
exp_print_seq,
exp_print_file,
opos2str,
str2opos,
conf2str,
str2conf - Manipulations of the Experiment File format
SYNOPSIS¶
#include <expFileIO.h>
Exp_info *exp_read_info(
char *file);
Exp_info *exp_fread_info(
FILE *fp);
Exp_info *exp_create_info();
void exp_destroy_info(
Exp_info *e);
char *exp_create_range(
char *str,
int start,
int end);
int exp_extract_range(
char *str,
int *start,
int *end);
int exp_get_feature_index(
char *e);
int exp_get_int(
Exp_info *e,
int id,
int *val);
int exp_get_rng(
Exp_info *e,
int id,
int *from,
int *to);
int exp_get_str(
Exp_info *e,
int id,
char *s,
f_implicit s_l);
int exp_put_int(
Exp_info *e,
int id,
int *val);
int exp_put_rng(
Exp_info *e,
int id,
int *from,
int *to);
int exp_put_str(
Exp_info *e,
int id,
char *s,
f_implicit s_l);
int exp_print_line(
FILE *fp,
Exp_info *e,
int eflt,
int i);
int exp_print_seq(
FILE *fp,
Exp_info *e,
int eflt,
int i);
void exp_print_file(
FILE *fp,
Exp_info *e);
char *opos2str(
int2 *opos,
int len,
char *buf);
int str2opos(
int2 *opos,
char *buf);
char *conf2str(
int1 *conf,
int len,
char *buf);
int str2conf(
int1 *conf,
char *buf);
DESCRIPTION¶
These functions manipulate Experiment Files. They include functions for reading,
writing, and editing the files. The principle structure used by the routines
is the
Exp_info structure. This is as follows.
#define MAXIMUM_EFLT_LENGTH 4
#define MAXIMUM_EFLTS 48
#define EXP_FILE_LINE_LENGTH 128
typedef Array Exp_entries;
typedef struct {
Array entries[MAXIMUM_EFLTS]; /* array of array of entries */
int Nentries[MAXIMUM_EFLTS]; /* array of number of entries */
FILE *fp;
} Exp_info;
#define NULL_Exp_info ( (Exp_info *) NULL )
For the purposes of simple and efficient coding, each line on an experiment file
must be smaller than the defined EXP_FILE_LINE_LENGTH, which is 128
characters.
Many functions take an experiment file line type identifier as an argument.
These functions are listed in the prototypes as taking
int id. Here
id should be specified using one of the macros defining in the header
file. They take the form of
EFLT_XX where XX is the line type. For
instance, the
ID line type identifier should be written as
EFLT_ID.
The C functions available follow. Some FORTRAN interfaces are also available,
but these are not documented. See the include file for their prototypes.
exp_read_info and
exp_fread_info read an experiment file into an
allocated
Exp_info structure. If successful, the structure pointer is
return. Otherwise the null pointer is returned.
exp_create_info allocates and initialises a new, blank,
Exp_info
structure. If successful, the structure pointer is return. Otherwise the null
pointer is returned.
exp_destroy_info deallocates an
Exp_info structure.
exp_create_range creates a string using the experiment file range format
of "start..stop". This format is used by the AQ, ON, TG and TC line
types. The buffer specified should be large enough to hold the string. The
function returns the
str pointer supplied as an argument.
exp_extract_range extracts the start and end values from the string
representation of a range; "start..stop". The values are stored in
the integer pointers sent as arguments. If successful, the function returns 0.
Otherwise -1 is returned.
exp_get_feature_index converts from a string representation of an
experiment file line type to the integer value. For example,
exp_get_feature_index("SQ") returns the integer 22, which is
the same as the
EFLT_SQ definition.
exp_get_int obtains the integer value held in a specific line type. The
value is stored in the integer pointer
val. If successful, the function
returns 0. Otherwise 1 is returned.
exp_get_rng obtains the range values held in a specific line type. The
values are stored in the integer pointers
from and
to. If
successful, the function returns 0. Otherwise 1 is returned.
exp_get_str obtains the string value held in a specific line type. The
value is stored in the string
s. At most
s_l characters are
copied. If successful, the function returns 0. Otherwise 1 is returned.
exp_put_int writes the integer pointed to by
val to the specified
line type. If successful, the function returns 0. Otherwise 1 is returned.
exp_put_rng writes the range pointed to by
from and
to to
the specified line type. If successful, the function returns 0. Otherwise 1 is
returned.
exp_put_str writes the string
s of length
s_l to the
specified line type. If successful, the function returns 0. Otherwise 1 is
returned.
exp_print_line outputs all entries of the specified type to the specified
file pointer.
exp_print_seq
exp_print_file outputs all entries of all line types to the specified
file pointer.
opos2str converts an array of original positions held in
opos with
len elements to a string suitable for use in the ON line type. The
buf should be large enough to hold the string, which in the worst case
will be 4 * sequence length. Returns
buf.
str2opos converts the experiment file original position string held in
buf to an array of original positions to be stored in
opos.
opos must be large enough to hold the data, hence it should be of the
same length as the sequence. Returns the number of elements written to the
opos array.
conf2str converts an array of confidence values helf in
confR with
len elements to a string suitable for use in the AV line type. The
buf should be large enough to hold the string, which in the worst case
will be 4 * sequence length. Returns
buf.
str2conf convers the experiment file confidence values string held in
buf to an array of confidence values to be stored in
conf.
conf must be large enough to hold the data, hence it should be of the
same length as the sequence. Returns the number of elements written to the
conf array.
SEE ALSO¶
ExperimentFile(4)