Ejemplo n.º 1
0
/* Function: ReadAlignment()
 * 
 * Purpose:  Given a seqfile name and format, hand it off to appropriate
 *           parser.
 *           
 *           Currently, squid can parse alignments from the following
 *           interleaved multiple sequence alignment formats:
 *               MSF     (U. of Wisconsin GCG package MSF format)
 *               SELEX   (NeXagen/CU Boulder SELEX format)
 *               CLUSTAL (Des Higgins' CLUSTALV and CLUSTALW programs)
 *           and can sequentially read:
 *               FASTA   (aka UCSC's "a2m")
 *               
 * Return:   1 on success; 0 on failure.
 *           Returned data should be freed by caller with FreeAlignment()
 */
int
ReadAlignment(char             *seqfile, 
	      int               format,
	      char           ***ret_aseqs,
	      struct aliinfo_s *ret_ainfo)
{
  switch (format) {
  case kMSF: 
    if (! ReadInterleaved(seqfile, skip_MSF, parse_MSF, dataline_MSF, ret_aseqs, ret_ainfo)) 
      return 0;
    break;

  case kSelex:
    if (! ReadSELEX(seqfile, ret_aseqs, ret_ainfo)) 
      return 0;
    break;

  case kClustal: 
    if (! ReadInterleaved(seqfile, skip_clustal, parse_clustal, dataline_clustal, 
			  ret_aseqs, ret_ainfo)) 
      return 0;
    break;

  case kPearson:
    ReadAlignedFASTA(seqfile, NULL, ret_aseqs, ret_ainfo);
    break;

  default: squid_errno = SQERR_FORMAT; return 0;
  }
  return 1;
}
Ejemplo n.º 2
0
/* Function: MSAFileRead()
 * Date:     SRE, Fri May 28 16:01:43 1999 [St. Louis]
 *
 * Purpose:  Read the next msa from an open alignment file.
 *           This is a wrapper around format-specific calls.
 *
 * Args:     afp     - open alignment file
 *
 * Returns:  next alignment, or NULL if out of alignments 
 */
MSA *
MSAFileRead(MSAFILE *afp)
{
  MSA *msa = NULL;

  switch (afp->format) {
  case MSAFILE_STOCKHOLM: msa = ReadStockholm(afp); break;
  case MSAFILE_MSF:       msa = ReadMSF(afp);       break;
  case MSAFILE_A2M:       msa = ReadA2M(afp);       break;
  case MSAFILE_CLUSTAL:   msa = ReadClustal(afp);   break;
  case MSAFILE_SELEX:     msa = ReadSELEX(afp);     break;
  case MSAFILE_PHYLIP:    msa = ReadPhylip(afp);    break;
  default:
    Die("MSAFILE corrupted: bad format index");
  }
  return msa;
}