/* * File: toad.c * * Author: Simon Dear * MRC Laboratory of Molecular Biology * Hills Road * Cambridge CB2 2QH * United Kingdom * * Description: utility to alter base lane ordering of an SCF file * * Created: 8 October 1992 * Updated: * */ #include #include #include #include #include #include "scfIO.h" #include "mach-io.h" #define ind(base) ((base)=='C'?0:(base)=='A'?1:(base)=='G'?2:3) int fix_scf(char *fn,char *old, char *new) { FILE *fp; Header header; Samples *samples; Bases *bases; int i; char map[4]; if ( (fp=fopen(fn,"r+b")) == NULL ) { fprintf(stderr,"toad: %s: error opening file\n",fn); return 1; } fseek(fp,0,0); if (read_scf_header(fp,&header)==0) { fprintf(stderr,"toad: %s: error reading header\n",fn); fclose(fp); return 2; } /* swap samples */ samples = (Samples *)malloc(sizeof(Samples)*header.samples); if (samples==NULL) { fprintf(stderr,"toad: %s: out of memory\n",fn); fclose(fp); return 2; } fseek(fp,header.samples_offset,0); for(i=0;i