d2c7e8be3ceae6027a5274faafdf6239d778cc63 aamp Sat Jul 16 08:31:16 2011 -0700 Changes related to change source filenames around: bamUdc.ch -> bamFile.ch and bamFile.ch -> hgBam.ch diff --git src/hg/inc/hgBam.h src/hg/inc/hgBam.h new file mode 100644 index 0000000..9dd8768 --- /dev/null +++ src/hg/inc/hgBam.h @@ -0,0 +1,53 @@ +/* hgBam -- interface to binary alignment format files using Heng Li's samtools lib. */ +/* these are the components that link to MySQL */ + +#ifndef HGBAM_H +#define HGBAM_H + +#ifndef BAMFILE_H +#include "bamFile.h" +#endif + +#ifdef USE_BAM + +#ifndef SAMALIGNMENT_H +#include "samAlignment.h" +#endif + +#endif + +char *bamFileNameFromTable(struct sqlConnection *conn, char *table, char *bamSeqName); +/* Return file name from table. If table has a seqName column, then grab the + * row associated with bamSeqName (which can be e.g. '1' not 'chr1' if that is the + * case in the bam file). */ + +boolean bamFileExists(char *bamFileName); +/* Return TRUE if we can successfully open the bam file and its index file. */ + +void bamFetch(char *fileOrUrl, char *position, bam_fetch_f callbackFunc, void *callbackData, + samfile_t **pSamFile); +/* Open the .bam file, fetch items in the seq:start-end position range, + * and call callbackFunc on each bam item retrieved from the file plus callbackData. + * This handles BAM files with "chr"-less sequence names, e.g. from Ensembl. + * The pSamFile parameter is optional. If non-NULL it will be filled in, just for + * the benefit of the callback function, with the open samFile. */ + +struct samAlignment *bamFetchSamAlignment(char *fileOrUrl, char *chrom, int start, int end, + struct lm *lm); +/* Fetch region as a list of samAlignments - which is more or less an unpacked + * bam record. Results is allocated out of lm, since it tends to be large... */ + +struct samAlignment *bamReadNextSamAlignments(samfile_t *fh, int count, struct lm *lm); +/* Read next count alignments in SAM format, allocated in lm. May return less than + * count at end of file. */ + +samfile_t *bamOpen(char *fileOrUrl, char **retBamFileName); +/* Return an open bam file, dealing with FUSE caching if need be. + * Return parameter if NON-null will return the file name after FUSing */ + +struct ffAli *bamToFfAli(const bam1_t *bam, struct dnaSeq *target, int targetOffset, + boolean useStrand, char **retQSeq); +/* Convert from bam to ffAli format. If retQSeq is non-null, set it to the + * query sequence into which ffAli needle pointers point. */ + +#endif//ndef HGBAM_H