| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 | 
#------------------------------------------------------------------------------# $File: bioinformatics,v 1.5 2019/04/19 00:42:27 christos Exp $# bioinfomatics:  file(1) magic for Bioinfomatics file formats################################################################################ BGZF (Blocked GNU Zip Format) - gzip compatible, but also indexable# used by SAMtools bgzip/tabix (http://samtools.sourceforge.net/tabix.shtml)###############################################################################0	string		\037\213>3	byte		&0x04>>12	string		BC>>>14	leshort		&0x02	Blocked GNU Zip Format (BGZF; gzip compatible)>>>>16	leshort		x	\b, block length %d!:mime	application/x-gzip################################################################################ Tabix index file# used by SAMtools bgzip/tabix (http://samtools.sourceforge.net/tabix.shtml)###############################################################################0	string	TBI\1		SAMtools TBI (Tabix index format)>0x04	lelong	=1		\b, with %d reference sequence>0x04	lelong	>1		\b, with %d reference sequences>0x08	lelong	&0x10000	\b, using half-closed-half-open coordinates (BED style)>0x08	lelong	^0x10000>>0x08	lelong	=0		\b, using closed and one based coordinates (GFF style)>>0x08	lelong	=1		\b, using SAM format>>0x08	lelong	=2		\b, using VCF format>0x0c	lelong	x		\b, sequence name column: %d>0x10	lelong	x		\b, region start column: %d>0x08	lelong	=0>>0x14	lelong	x		\b, region end column: %d>0x18	byte	x		\b, comment character: %c>0x1c	lelong	x		\b, skip line count: %d################################################################################ BAM (Binary Sequence Alignment/Map format)# used by SAMtools (http://samtools.sourceforge.net/SAM1.pdf)# data is normally present only within compressed BGZF blocks (CDATA), so use file -z to examine it###############################################################################0	string	BAM\1	SAMtools BAM (Binary Sequence Alignment/Map)>0x04	lelong	>0>>&0x00 regex	=^[@]HD\t.*VN:		\b, with SAM header>>>&0	regex	=[0-9.]+		\b version %s>>&(0x04)	lelong	>0	\b, with %d reference sequences################################################################################ BAI (BAM indexing format)# used by SAMtools (http://samtools.sourceforge.net/SAM1.pdf)###############################################################################0		string	BAI\1	SAMtools BAI (BAM indexing format)>0x04		lelong	>0	\b, with %d reference sequences################################################################################ CRAM (Binary Sequence Alignment/Map format)###############################################################################0	string	CRAM	CRAM>0x04	byte	>-1	version %d.>0x05	byte	>-1	\b%d>0x06	string	>\0	(identified as %s)################################################################################ BCF (Binary Call Format), version 1# used by SAMtools & VCFtools (http://vcftools.sourceforge.net/bcf.pdf)# data is normally present only within compressed BGZF blocks (CDATA), so use file -z to examine it###############################################################################0		string	   BCF\4# length of seqnm data in bytes is positive>&0x00		lelong	  >0# length of smpl data in bytes is positive>>&(&-0x04)	lelong	  >0			SAMtools BCF (Binary Call Format)# length of meta in bytes>>>&(&-0x04)	lelong	  >0# have meta text string>>>>&0x00	search	  ##samtoolsVersion=>>>>>&0x00	string	  x			\b, generated by SAMtools version %s################################################################################ BCF (Binary Call Format), version 2.1# used by SAMtools (https://samtools.github.io/hts-specs/BCFv2_qref.pdf)# data is normally present only within compressed BGZF blocks (CDATA), so use file -z to examine it###############################################################################0		string	   BCF\2\1    Binary Call Format (BCF) version 2.1# length of header text>&0x00		lelong	  >0# have header string>>&0x00 search	  ##samtoolsVersion=>>>&0x00	string	  x			\b, generated by SAMtools version %s################################################################################ BCF (Binary Call Format), version 2.2# used by SAMtools (https://samtools.github.io/hts-specs/BCFv2_qref.pdf)# data is normally present only within compressed BGZF blocks (CDATA), so use file -z to examine it###############################################################################0		string	   BCF\2\2    Binary Call Format (BCF) version 2.2# length of header text>&0x00		lelong	  >0# have header string>>&0x00 search	  ##samtoolsVersion=>>>&0x00	string	  x			\b, generated by SAMtools version %s################################################################################ VCF (Variant Call Format)# used by VCFtools (http://vcftools.sourceforge.net/)###############################################################################0      search	   ##fileformat=VCFv	Variant Call Format (VCF)>&0    string	   x			\b version %s################################################################################ FASTQ# used by MAQ (http://maq.sourceforge.net/fastq.shtml)################################################################################ XXX Broken?# @<seqname>#0	regex	=^@[A-Za-z0-9_.:-]+\?\n# <seq>#>&1	regex	=^[A-Za-z\n.~]++# +[<seqname>]#>>&1	regex	=^[A-Za-z0-9_.:-]*\?\n# <qual>#>>>&1	regex	=^[!-~\n]+\n		FASTQ################################################################################ FASTA# used by FASTA (https://fasta.bioch.virginia.edu/fasta_www2/fasta_guide.pdf)################################################################################0	byte	0x3e# q>0	regex	=^[>][!-~\t\ ]+$# Amino Acid codes: [A-IK-Z*-]+#>>1	regex	!=[!-'Jj;:=?@^`|~\\]		FASTA# IUPAC codes/gaps: [ACGTURYKMSWBDHVNX-]+# not in IUPAC codes/gaps: [EFIJLOPQZ]#>>>1	regex	!=[EFIJLOPQZefijlopqz]		\b, with IUPAC nucleotide codes#>>>1	regex	=^[EFIJLOPQZefijlopqz]+$	\b, with Amino Acid codes################################################################################ SAM (Sequence Alignment/Map format)# used by SAMtools (http://samtools.sourceforge.net/SAM1.pdf)################################################################################ Short-cut version to recognise SAM files with (optional) header at beginning###############################################################################0      string	   @HD\t>4     search	   VN:		Sequence Alignment/Map (SAM), with header>>&0   regex	   [0-9.]+	\b version %s################################################################################ Longer version to recognise SAM alignment lines using (many) regexes################################################################################ SAM Alignment QNAME0		regex	=^[!-?A-~]{1,255}(\t[^\t]+){11}# SAM Alignment FLAG>0		regex	=^([^\t]+\t){1}[0-9]{1,5}\t# SAM Alignment RNAME>>0		regex	=^([^\t]+\t){2}\\*|[^*=]*\t# SAM Alignment POS>>>0		regex	=^([^\t]+\t){3}[0-9]{1,9}\t# SAM Alignment MAPQ>>>>0		regex	=^([^\t]+\t){4}[0-9]{1,3}\t# SAM Alignment CIGAR>>>>>0		regex	=\t(\\*|([0-9]+[MIDNSHPX=])+)\t# SAM Alignment RNEXT>>>>>>0		regex	=\t(\\*|=|[!-()+->?-~][!-~]*)\t# SAM Alignment PNEXT>>>>>>>0	regex	=^([^\t]+\t){7}[0-9]{1,9}\t# SAM Alignment TLEN>>>>>>>>0	regex	=\t[+-]{0,1}[0-9]{1,9}\t.*\t# SAM Alignment SEQ>>>>>>>>>0	regex	=^([^\t]+\t){9}(\\*|[A-Za-z=.]+)\t# SAM Alignment QUAL>>>>>>>>>>0	regex	=^([^\t]+\t){10}[!-~]+	Sequence Alignment/Map (SAM)>>>>>>>>>>>0	regex	=^[@]HD\t.*VN:		\b, with header>>>>>>>>>>>>&0	regex	=[0-9.]+		\b version %s
 |