1 This is the README file for the BioPerl central distribution.
5 This is bioperl-live, from the BioPerl GitHub master branch
9 Thank you for downloading this distribution!
11 Please see the the INSTALL or INSTALL.WIN documents for installation
14 For tutorials see the BioPerl Tutorial.pl
15 (http://www.bioperl.org/wiki/Bptutorial.pl) or the HOWTO documents
16 and tutorials online at http://bioperl.org. To look at example code
17 browse the scripts/ and examples/ directories
19 For people starting out with Perl and BioPerl, look at the Bio::Perl
20 module (go "perldoc Bio::Perl" from within this directory). This
21 module is designed to flatten the learning curve for newcomers.
23 For a list of OS's and versions that are known to support BioPerl see
26 For info on BioPerl read on!
30 BioPerl is a package of public domain Perl tools for computational
33 Our website, http://bioperl.org/, provides an online resource of
34 modules, scripts, and web links for developers of Perl-based software
35 for life science research.
39 BioPerl developers: bioperl-l@bioperl.org
41 There's quite a variety of tools available in BioPerl, and more are
42 added all the time. If the tool you're looking for isn't described in
43 the documentation please write us, it could be undocumented or in
46 Project website : http://bioperl.org/
48 Project FTP server : bioperl.org (anonymous FTP ok)
50 Bug reports : https://redmine.open-bio.org/projects/bioperl/
52 Please send us bugs, in particular about documentation which you
53 think is unclear or problems in installation. We are also very
54 interested in functions which don't work the way you think they
57 Please see the AUTHORS file for the complete list of BioPerl
58 developers and contributors.
60 o About the directory structure
62 The BioPerl directory structure is organized as follows:
64 - Bio/ - BioPerl modules
66 - models/ - DIA drawing program generated OO UML for BioPerl classes
67 (these are quite out-of-date)
69 - t/ - Perl built-in tests
70 tests are divided into subdirectories generally based on the
71 specific classes being tested
73 - t/data/ - Data files used for the tests
74 provides good data examples for those new to bioinformatics data
76 - scripts/ - Useful production-quality scripts with POD documentation
78 - examples/ - Scripts demonstrating the many uses of BioPerl
80 - maintenance/ - BioPerl housekeeping scripts
84 The BioPerl Tutorial (http://www.bioperl.org/wiki/Bptutorial.pl)
85 contains useful information for new and existing BioPerl users. This
86 file also contains a number of useful scripts that the student of
87 BioPerl may want to examine.
89 Individual *.pm modules have their own embedded POD documentation as
90 well. A complete set of hyperlinked POD, or module, documentation is
91 available at http://www.bioperl.org/.
93 Remember that 'perldoc' is your friend. You can use it to read any
94 file containing POD formatted documentation without needing any type
97 If you used the Build.PL installation, and depending on your
98 platform, you may have documentation installed as man pages, which
99 can be accessed in the usual way.
101 There is also an online course written at the Pasteur Institute. See
102 http://www.pasteur.fr/recherche/unites/sis/formation/bioperl.
104 Useful documentation in the form of example code can also be found in
105 the examples/ and scripts/ directories. The current collection
106 includes scripts that run BLAST, index flat files, parse PDB
107 structure files, make primers, retrieve ESTs based on tissue, align
108 protein to nucleotide sequence, run GENSCAN on multiple sequences,
109 and much more! See bioscripts.pod for a complete listing.
113 BioPerl releases are always available from the website
114 http://www.bioperl.org/ or by FTP from ftp://bioperl.org/ (note that
115 we've had trouble with our new network setup which is not allowing
116 FTP to support passive mode properly, use http://www.bioperl.org/DIST
117 to get a listing of the distribution directory). Each release is
118 tested with the test suite and cross-tested on a number of different
119 platforms. See the PLATFORMS file for more information on a specific
120 platform. All efforts are made to release a bug-free package, however
121 most major bugs in a release will be documented in the BUGS file. See
122 the Changes file for a listing of what features have been added or
123 what APIs have changed between releases.
125 BioPerl formerly used a numbering scheme to indicate stable release
126 series vs. development release series. A release number is a three
127 digit number like 1.2.0. The first digit indicates the major release
128 - the idea being that all the API calls in a major release are
129 reasonably consistent. The second number is the release series. This
130 is probably the most important number.
132 From the 1.0 release until the 1.6 release, even numbers (1.0, 1.2
133 etc) indicated stable releases. Stable releases were well tested and
134 recommended for most uses. Odd numbers (1.1, 1.3 etc) were development
135 releases which one would only use if one were interested in the
136 latest and greatest features. The final number (e.g. 1.2.0, 1.2.1) is
137 the bug fix release. The higher the number the more bug fixes has
138 been incorporated. In theory you can upgrade from one bug fix release
139 to the next with no changes to your own code (for production cases,
140 obviously check things out carefully before you switch over).
142 The 1.6 release will be the last release series to utilize the
143 alternating 'stable'/'developer' convention. Starting immediately
144 after the 1.6 branch, we will start splitting BioPerl into several
145 smaller easier-to-manage distributions, including a developer
146 distribution for cutting-edge (in development) code, untested
147 modules, and alternative implementations.
149 o Caveats, warnings, etc
151 When you run the tests ("./Build test") some tests may issue warnings
152 messages or even fail. Sometimes this is because we didn't have
153 anyone to test the test system on the combination of your operating
154 system, version of perl, and associated libraries and other modules.
155 Because BioPerl depends on several outside libraries we may not be
156 able to test every single combination so if there are warnings you
157 may find that the package is still perfectly useful. See the
158 PLATFORMS file for reports of specific issues.
160 If you install the bioperl-run system and run tests when you don't
161 have the program installed you'll get messages like 'program XXX not
162 found, skipping tests'. That's okay, BioPerl is doing what it is
163 supposed to do. If you wanted to run the program you'd need to
166 Not all scripts in the examples/ directory are correct and
167 up-to-date. We need volunteers to help maintain these so if you find
168 they do not work, submit a bug report to https://redmine.open-bio.org/projects/bioperl/
169 and consider helping out in their maintenance.
171 If you are confused about what modules are appropriate when you try
172 and solve a particular issue in bioinformatics we urge you to look at
173 the BioPerl Tutorial or the HOWTO documents first.
175 o A simple module summary
177 Here is a quick summary of many of the useful modules and how the
180 All modules are in the Bio/ namespace,
182 - Perl is for newbies and gives a functional interface to the main
185 - Seq is for Sequences (protein and DNA).
186 o Bio::PrimarySeq is a plain sequence (sequence data + identifiers)
187 o Bio::Seq is a PrimarySeq plus it has a Bio::Annotation::Collection
188 and Bio::SeqFeatureI objects attached
189 (via Bio::FeatureHolderI).
190 o Bio::Seq::RichSeq is all of the above plus it has slots for
191 extra information specific to GenBank/EMBL/SwissProt files.
192 o Bio::Seq::LargeSeq is for sequences which are too big for
195 - SeqIO is for reading and writing Sequences, it is a front end
196 module for separate driver modules supporting the different
199 - SeqFeature - start/stop/strand annotations of sequences
200 o Bio::SeqFeature::Generic is basic catchall
201 o Bio::SeqFeature::Similarity a similarity sequence feature
202 o Bio::SeqFeature::FeaturePair a sequence feature which is pairwise
203 such as query/hit pairs
205 - SearchIO is for reading and writing pairwise alignment reports like
208 - Search is where the alignment objects are defined
209 o Bio::Search::Result::GenericResult is the result object (a blast
210 query is a Result object)
211 o Bio::Search::Hit::GenericHit is the Hit object (a query will have
212 0 -> many hits in a database)
213 o Bio::Search::HSP::GenericHSP is the High-scoring Segment Pair
214 object defining the alignment(s) of the query and hit.
216 - SimpleAlign is for multiple sequence alignments
218 - AlignIO is for reading and writing multiple sequence alignment
221 - Assembly provides the start of an infrastructure for assemblies and
222 Assembly::IO IO converters for them
224 - DB is the namespace for all the database query objects
225 o Bio::DB::GenBank/GenPept are two modules which query NCBI entrez
227 o Bio::DB::SwissProt/EMBL query various EMBL and SwissProt
228 repositories for a sequences
229 o Bio::DB::GFF is Lincoln Stein's fast, lightweight feature and
230 sequence database which is the backend to his GBrowse system (see
232 o Bio::DB::Flat is a fast implementation of the OBDA flat-file
233 indexing system (cross-language and cross-platform supported by
234 O|B|F projects see http://obda.open-bio.org).
235 o Bio::DB::BioFetch/DBFetch for OBDA, Web (HTTP) access to remote
237 o Bio::DB::InMemoryCache/FileCache (fast local caching of sequences
238 from remote dbs to speed up your access).
239 o Bio::DB::Registry interface to the OBDA specification for remote
241 o Bio::DB::Biblio for access to remote bibliographic databases.
242 o Bio::DB::EUtilities is the initial set of modules used for
243 generic queried using NCBI's eUtils.
245 - Annotation collection of annotation objects (comments, DBlinks,
246 References, and misc key/value pairs)
248 - Coordinate is a system for mapping between different coordinate
249 systems such as DNA to protein or between assemblies.
251 - Index is for locally indexed flatfiles with BerkeleyDB
253 - Tools contains many miscellaneous parsers and function for
254 different bioinformatics needs
255 o Gene prediction parser (Genscan, MZEF, Grail, Genemark)
256 o Annotation format (GFF)
257 o Enumerate codon tables and valid sequences symbols (CodonTable,
259 o Phylogenetic program parsing (PAML, Molphy, Phylip)
261 - Map genetic and physical map representations
263 - Structure - parse and represent protein structure data
265 - TreeIO is for reading and writing Tree formats
267 - Tree is the namespace for all the associated Tree objects
268 o Bio::Tree::Tree is the basic tree object
269 o Bio::Tree::Node are the nodes which make up the tree
270 o Bio::Tree::Statistics is for computing statistics for a tree
271 o Bio::Tree::TreeFunctionsI is where specific tree functions are
272 implemented (like is_monophyletic and lca)
274 - Bio::Biblio is where bibliographic data and database access objects
277 - Variation represent sequences with mutations and variations applied
278 so one can compare and represent wild-type and mutation versions of
281 - Root, basic objects for the internals of BioPerl
283 o Upgrading from an older version
285 If you have a previously installed version of BioPerl on your system
286 some of these notes may help you.
288 Some modules have been removed because they have been superceded by
289 new development efforts. They are documented in the DEPRECATED file
290 that is included in the release. In addition some methods, or the
291 Application Programming Interface (API), have changed or been
292 removed. You may find that scripts which worked with BioPerl 1.4 may
293 give you warnings or may not work at all (although we have tried very
294 hard to minimize this!). Send an email to the list and we'll be happy
295 to give you pointers.