/*! @typedef
@abstract SAM/BAM file handler
- @field type type of the handler; bit 1 for BAM, 2 for reading and bit 3 for is_hex
+ @field type type of the handler; bit 1 for BAM, 2 for reading and bit 3-4 for flag format
@field bam BAM file handler; valid if (type&1) == 1
@field tamr SAM file handler for reading; valid if type == 2
@field tamw SAM file handler for writing; valid if type == 0
@param fn SAM/BAM file name; "-" is recognized as stdin (for
reading) or stdout (for writing).
- @param mode open mode /[rw](b?)(u?)(h?)(x?)/: 'r' for reading, 'w'
- for writing, 'b' for BAM I/O, 'u' for uncompressed BAM output, 'h'
- for outputing header in SAM and 'x' for HEX flag. If 'b' present,
- it must immediately follow 'r' or 'w'. Valid modes are "r", "w",
- "wh", "wx", "whx", "rb", "wb" and "wbu" exclusively.
+ @param mode open mode /[rw](b?)(u?)(h?)([xX]?)/: 'r' for reading,
+ 'w' for writing, 'b' for BAM I/O, 'u' for uncompressed BAM output,
+ 'h' for outputing header in SAM, 'x' for HEX flag and 'X' for
+ string flag. If 'b' present, it must immediately follow 'r' or
+ 'w'. Valid modes are "r", "w", "wh", "wx", "whx", "wX", "whX",
+ "rb", "wb" and "wbu" exclusively.
@param aux auxiliary data; if mode[0]=='w', aux points to
bam_header_t; if strcmp(mode, "rb")!=0 and @SQ header lines in SAM
are absent, aux points the file name of the list of the reference;
- aux is not used otherwise.
+ aux is not used otherwise. If @SQ header lines are present in SAM,
+ aux is not used, either.
@return SAM/BAM file handler
*/
*/
int sampileup(samfile_t *fp, int mask, bam_pileup_f func, void *data);
+ char *samfaipath(const char *fn_ref);
+
#ifdef __cplusplus
}
#endif