home | help
ExperimentFile(3)		 Staden Package 	       ExperimentFile(3)

NAME
     exp_read_info,  exp_fread_info, exp_create_info, exp_destroy_info, exp_cre-
     ate_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 avail-
     able, but these are not documented. See the include file for  their  proto-
     types.

     exp_read_info  and exp_fread_info read an experiment file into an allocated
     Exp_info structure. If successful, the structure pointer is return.  Other-
     wise 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 repre-
     sentation of a range; "start..stop". The values are stored in  the  integer
     pointers  sent  as arguments. If successful, the function returns 0. Other-
     wise -1 is returned.

     exp_get_feature_index converts from a string representation of  an  experi-
     ment  file line type to the integer value. For example, exp_get_feature_in-
     dex("SQ") returns the integer 22, which is the same as the EFLT_SQ  defini-
     tion.

     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 re-
     turns 0.  Otherwise 1 is returned.

     exp_get_rng obtains the range values held in a specific line type. The val-
     ues 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 suc-
     cessful, 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 ele-
     ments  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  *  se-
     quence 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 se-
     quence. Returns the number of elements written to the opos array.

     conf2str converts an array of confidence values helf in confR with len ele-
     ments 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 * se-
     quence 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  se-
     quence. Returns the number of elements written to the conf array.

SEE ALSO
     ExperimentFile(4)

							       ExperimentFile(3)

home | help