Bio::Tools::GuessSeqFormat - Module for determining the sequence format of the contents of a file, a string, or through a filehandle. # To guess the format of a flat file, given a filename: my $guesser = new Bio::Tools::GuessSeqFormat( -file => $filename ); my $format = $guesser->guess; # To guess the format from an already open filehandle: my $guesser = new Bio::Tools::GuessSeqFormat( -fh => $filehandle ); my $format = $guesser->guess; # If the filehandle is seekable (STDIN isn't), it will be # returned to its original position. # To guess the format of one or several lines of text (with # embedded newlines): my $guesser = new Bio::Tools::GuessSeqFormat( -text => $linesoftext ); my $format = $guesser->guess; # To create a Bio::Tools::GuessSeqFormat object and set the # filename, filehandle, or line to parse afterwards: my $guesser = new Bio::Tools::GuessSeqFormat; $guesser->file($filename); $guesser->fh($filehandle); $guesser->text($linesoftext); # To guess in one go, given e.g. a filename: my $format = new Bio::Tools::GuessSeqFormat( -file => $filename )->guess; Bio::Tools::GuessSeqFormat tries to guess the format ("swiss", "pir", "fasta" etc.) of the sequence or MSA in a file, in a scalar, or through a filehandle. The guess() method of a Bio::Tools::GuessSeqFormat object will examine the data, line by line, until it finds a line to which only one format can be assigned. If no conclusive guess can be made, undef is returned. If the Bio::Tools::GuessSeqFormat object is given a filehandle which is seekable, it will be restored to its original position on return from the guess() method.

Formats
Tests are currently implemented for the following formats: ACeDB ("ace") Blast ("blast") ClustalW ("clustalw") Codata ("codata") EMBL ("embl") FastA sequence ("fasta") FastXY/FastA alignment ("fastxy") Game XML ("game") GCG ("gcg") GCG Blast ("gcgblast") GCG FastA ("gcgfasta") GDE ("gde") Genbank ("genbank") Genscan ("genscan") GFF ("gff") HMMER ("hmmer") PAUP/NEXUS ("nexus") Phrap assembly file ("phrap") NBRF/PIR ("pir") Mase ("mase") Mega ("mega") GCG/MSF ("msf") Pfam ("pfam") Phylip ("phylip") Prodom ("prodom") Raw ("raw") RSF ("rsf") Selex ("selex") Stockholm ("stockholm") Swissprot ("swiss") Tab ("tab")

Mailing Lists
User feedback is an integral part of the evolution of this and other Bioperl modules. Send your comments and suggestions preferably to one of the Bioperl mailing lists. Your participation is much appreciated. bioperl-l@bioperl.org - General discussion http://bioperl.org/MailList.shtml - About the mailing lists

Reporting Bugs
Report bugs to the Bioperl bug tracking system to help us keep track the bugs and their resolution. Bug reports can be submitted via email or the web: bioperl-bugs@bio.perl.org http://bugzilla.bioperl.org/ Andreas Kähäri, andreas.kahari@ebi.ac.uk Heikki Lehväslaiho, heikki@ebi.ac.uk Methods available to Bio::Tools::GuessSeqFormat objects are described below. Methods with names beginning with an underscore are considered to be internal.

new
Title : new Usage : $guesser = new Bio::Tools::GuessSeqFormat( ... ); Function : Creates a new object. Example : See SYNOPSIS. Returns : A new object. Arguments : -file The filename of the file whose format is to be guessed, or -fh An already opened filehandle from which a text stream may be read, or -text A scalar containing one or several lines of text with embedded newlines. If more than one of the above arguments are given, they are tested in the order -text, -file, -fh, and the first available argument will be used.

file
Title : file Usage : $guesser->file($filename); $filename = $guesser->file; Function : Gets or sets the current filename associated with an object. Returns : The new filename. Arguments : The filename of the file whose format is to be guessed. A call to this method will clear the current filehandle and the current lines of text associated with the object.

fh
Title : fh Usage : $guesser->fh($filehandle); $filehandle = $guesser->fh; Function : Gets or sets the current filehandle associated with an object. Returns : The new filehandle. Arguments : An already opened filehandle from which a text stream may be read. A call to this method will clear the current filename and the current lines of text associated with the object.

text
Title : text Usage : $guesser->text($linesoftext); $linesofext = $guesser->text; Function : Gets or sets the current text associated with an object. Returns : The new lines of texts. Arguments : A scalar containing one or several lines of text, including embedded newlines. A call to this method will clear the current filename and the current filehandle associated with the object.

guess
Title : guess Usage : $format = $guesser->guess; @format = $guesser->guess; # if given a line of text Function : Guesses the format of the data accociated with the object. Returns : A format string such as "swiss" or "pir". If a format can not be found, undef is returned. Arguments : None. If the object is associated with a filehandle and if that filehandle is searchable, the position of the filehandle will be returned to its original position before the method returns. All helper subroutines will, given a line of text and the line number of the same line, return 1 if the line possibly is from a file of the type that they perform a test of. A zero return value does not mean that the line is not part of a certain type of file, just that the test didn't find any characteristics of that type of file in the line.

_possibly_ace
From bioperl test data, and from "http://www.isrec.isb-sib.ch/DEA/module8/B_Stevenson/Practicals/transcriptome_recon/transcriptome_recon.html".

_possibly_blast
From various blast results.

_possibly_clustalw
From "http://www.ebi.ac.uk/help/formats.html".

_possibly_codata
From "http://www.ebi.ac.uk/help/formats.html".

_possibly_embl
From "http://www.ebi.ac.uk/embl/Documentation/User_manual/usrman.html#3.3".

_possibly_fasta
From "http://www.ebi.ac.uk/help/formats.html".

_possibly_fastxy
From bioperl test data.

_possibly_game
From bioperl testdata.

_possibly_gcg
From bioperl, Bio::SeqIO::gcg. Example at "http://bioweb.cgb.indiana.edu/seqanal/formats/examples.html#gcg".

_possibly_gcgblast
From bioperl testdata.

_possibly_gcgfasta
From bioperl testdata.

_possibly_gde
From "http://www.ebi.ac.uk/help/formats.html".

_possibly_genbank
From "http://www.ebi.ac.uk/help/formats.html". Format of [apparantly optional] file header from "http://www.umdnj.edu/rcompweb/PA/Notes/GenbankFF.htm".

_possibly_genscan
From bioperl test data.

_possibly_gff
From bioperl test data.

_possibly_hmmer
From bioperl test data.

_possibly_nexus
From "http://paup.csit.fsu.edu/nfiles.html".

_possibly_mase
From bioperl test data. More detail from "http://www.umdnj.edu/rcompweb/PA/Notes/GenbankFF.htm".

_possibly_mega
From the ensembl broswer (AlignView data export).

_possibly_msf
From "http://www.ebi.ac.uk/help/formats.html". Contradiction at "http://bioweb.cgb.indiana.edu/seqanal/formats/examples.html#msf".

_possibly_phrap
From "http://www.ccgb.umn.edu/biodata/docs/contigimage.html". From "http://genetics.gene.cwru.edu/gene508/Lec6.htm". From bioperl test data ("*.ace.1" files).

_possibly_pir
From "http://www.ebi.ac.uk/help/formats.html". The ".,()" spotted in bioperl test data.

_possibly_pfam
From bioperl test data.

_possibly_phylip
From "http://www.ebi.ac.uk/help/formats.html". Initial space allowed on first line (spotted in ensembl AlignView exported data).

_possibly_prodom
From "http://prodes.toulouse.inra.fr/prodom/2002.1/documentation/data.php".

_possibly_raw
From "http://www.ebi.ac.uk/help/formats.html".

_possibly_rsf
From "http://www.ebi.ac.uk/help/formats.html".

_possibly_selex
From "http://www-ccmr-nmr.bioc.cam.ac.uk/private/arcr1/hmmer-html/node35.html" and "http://www.ebc.ee/WWW/hmmer2-html/node27.html". Assuming precense of Selex file header. Data exported by Bioperl on Pfam and Selex formats are identical, but Pfam file only holds one alignment.

_possibly_stockholm
From bioperl test data.

_possibly_swiss
From "http://ca.expasy.org/sprot/userman.html#entrystruc".

_possibly_tab
Contributed by Heikki.