1 This is the README file for the Bioperl central distribution.
7 Thanks for downloading this distribution!
9 For tutorials see Bioperl's bptutorial.pl (in this directory) or
10 howto documents in docs/howto or the online Bioperl tutorial
11 at http://www.pasteur.fr/recherche/unites/sis/formation/bioperl. For
12 information on databases and Bioperl see biodatabases.pod. To look at
13 example code browse the scripts/ directories, and look at
14 bioscripts.pod for a descriptions of all these scripts. The bioperl.pod file
15 also gives a overview of the history and purpose of Bioperl. The FAQ
16 may also be useful if you have a particular question.
18 For people starting out with Perl and Bioperl, look at the Bio::Perl
19 module (go perldoc Bio::Perl from the directory you are reading this file
20 in). This module is designed to flatten the learning curve for newcomers.
22 For a discussion of issues in design and development please see
23 biodesign.pod, recommended for those who want to contribute code. And for
24 a list of OS's and versions that are known to support Bioperl see the
27 For info on Bioperl read on!
31 Bioperl is an association of developers of public domain Perl tools
32 for computational molecular biology.
34 Our website http://bioperl.org provides an online resource for
35 modules, scripts, and web links for developers of Perl-based software
36 for life science research.
40 Bioperl developers: bioperl-l@bioperl.org
42 There's quite a variety of tools available in Bioperl, and more are
43 added all the time. If the tool you're looking for isn't described in
44 the documentation please write us, it could be undocumented or in process.
46 Project website : http://bioperl.org
47 Project FTP server: bioperl.org (anonymous FTP ok)
49 Bug reports : http://bugzilla.bioperl.org/
50 bioperl-bugs@bioperl.org
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 do!
56 Please see the AUTHORS file for the complete list of bioperl
57 developers and contributors.
59 Please see the INSTALL document for installation instructions.
61 o About the directory structure
63 The bioperl directory structure is organised as follows:
65 Bio/ - Bioperl modules
66 models/ - DIA drawing program generated OO UML for bioperl classes
67 t/ - Perl built-in tests
68 t/data/ - Data files used for the tests - provides good data
69 examples for those new to bioinformatics data.
70 scripts/ - Resuable scripts that use bioperl, some organisation in
71 attempted here (i.e. das contains das related scripts)
72 scripts/contributed - User submissions of useful scripts not necessarily
73 integrated into bioperl. Please see the README
75 doc/ - "How To" files and the FAQ as XML
79 The "meta" documentation can be found in the bioperl.pod file.
80 This should be the starting point for you to read about what
81 bioperl is, how to use it and who wrote it.
83 The bptutorial.pl file is a POD formatted tutorial document
84 that contains useful information for new and existing Bioperl users.
85 This file also contains a number of useful scripts that the
86 student of Bioperl may want to examine.
88 Use your favorite pod2* translator turn it into the format of
89 choice or view it directly via perldoc.
95 or in this directory go
97 pod2text bioperl.pod | more
99 pod2text bptutorial.pl | more
101 pod2html, which comes with Perl, can be used to create web-browser
102 navigable documentation files.
104 Individual *.pm modules have their own embedded POD documentation
105 as well. A complete set of hyperlinked POD, or module, documentation
106 is available at http://www.bioperl.org. The most up-to-date
108 Remember 'perldoc' is your friend. You can use this to read any
109 file containing POD formatted documentation without needing any type
112 There is also an online course written at the Pasteur Institute. See:
113 http://www.pasteur.fr/recherche/unites/sis/formation/bioperl.
115 Useful documentation in the form of example code can also be found
116 in the scripts/ directory. The current collection includes scripts
117 that run BLAST, index flat files, parse PDB structure files, make primers,
118 retrieve ESTs based on tissue, align protein to nucleotide
119 sequence, run GENSCAN on multiple sequences, and much more! See
120 bioscripts.pod for a complete listing.
124 Bioperl releases are always available from the website
125 http://www.bioperl.org or by FTP from ftp://bioperl.org. (Note that
126 we've had trouble with our new network setup which is not allowing
127 FTP to support passive mode properly: use http://www.bioperl.org/DIST
128 to get a listing of the distribution directory). Each release is
129 tested with the test suite and cross-tested on a number of different
130 platforms. See the PLATFORMS file for more information on a specific
131 platform. All efforts are made to release a bug-free package,
132 however any known bugs in a release will be documented in the BUGS
133 file. See the Changes file for a listing of what features have been
134 added or what APIs have changed between releases.
136 Like many internet projects, Bioperl now has a consistent numbering
137 scheme to indicate stable release series vs development release series.
138 A release number is a three digit number like 1.2.0 - the first digit
139 indicates the major release - the idea being that all the API calls in a
140 major release are reasonably consistent. The second number is the
141 release series. This is probably the most important number. Even
142 numbers here (1.0, 1.2 etc) indicate stable releases. Stable releases
143 are well tested and recommended for most uses. Odd numbers (1.1, 1.3
144 etc) are development releases which one should only use if you are
145 interested in the latest and greatest features. The final number (eg,
146 1.2.0, 1.2.1 etc) is the bug fix release. The higher the number the
147 more bug fixes has been incorportated. In theory you can upgrade from one
148 bug fix release to the next with no changes to your own code (for production
149 cases, obviously check things out carefully before you switch over).
151 o Caveats, warnings, etc
153 When you run the tests (make test) often some tests will issue
154 warnings messages or even fail. Sometimes this is because we didn't
155 have anyone test the test system on the combintaion or your operating
156 system, version of perl, and associated libraries and other modules.
157 Because Bioperl depends on several outside libraries we may not be
158 able to test every single combination (mind you, now you've tested
159 another possible situation and we encourage you to contribute back to
160 the development process by emailing the list or submitted a bug), so
161 if there are warnings you will find that in fact many things are not
162 a big deal. See the PLATFORMS file for reports of specific issues.
164 If you install the bioperl-run system and run tests when you don't
165 have the program installed you'll get messages like 'program XXX not
166 found, skipping tests'. That's okay, Bioperl is doing what it is
167 supposed to do. If you wanted to run this program you'd need to
170 Not all scripts in the scripts directory are correct and up-to-date.
171 We need volunteers to help maintain these so if you find they do not
172 work, submit a bug report http://bugzilla.bioperl.org and/or consider
173 helping out in their maintence. Don't be disuaded by a script not
174 working, often the SYNOPSIS of the module is the best place to start
175 when trying to learn how to use them.
177 If you are confused about what modules are appropriate when you try
178 and solve a particular issue in bioinformatics we urge you to look at
179 the bptutorial first.
181 o A simple module summary
183 Here is a quick summary of many of the useful modules and how the
186 All modules are in the Bio/ namespace,
187 - Perl is for newbies and gives a functional interface to the main
189 - Seq is for Sequences (protein and DNA).
190 o Bio::PrimarySeq is a plain sequence (sequence data + identifiers)
191 o Bio::Seq is a PrimarySeq plus it has a Bio::Annotation::Collection
192 and a Bio::SeqFeatureI objects attatched.
193 o Bio::Seq::RichSeq is all of the above plus it has slots for
194 extra information specific to GenBank/EMBL/SwissProt files.
195 o Bio::Seq::LargeSeq is for sequences which are too big for
197 - SeqIO is for reading and writing Sequences, it is a front end
198 module for separate driver modules supporting the different
200 - SeqFeature - start/stop/strand annotations of sequences
201 o Bio::SeqFeature::Generic is basic catchall
202 o Bio::SeqFeature::Similarity a similarity sequence feature
203 o Bio::SeqFeature::FeaturePair a sequence feature which is pairwise
204 such as query/hit pairs
205 - SearchIO is for reading and writing pairwise alignment reports
207 - Search is where the alignment objects are defined
208 o Bio::Search::Result::GenericResult is the result object (a blast query
210 o Bio::Search::Hit::GenericHit is the Hit object (a query will have
211 0-> many hits in a database)
212 o Bio::Search::HSP::GenericHSP is the High-scoring Segment Pair
213 object defining the alignment(s) of the query and hit.
214 - SimpleAlign is for multiple sequence alignments
215 - AlignIO is for reading and writing multiple sequence alignment
217 - Assembly provides the start of an infrastructure for assemblies
218 and Assembly::IO IO converters for them
219 - DB is the namespace for all the database query objects
220 o Bio::DB::GenBank/GenPept are two modules which query NCBI entrez
222 o Bio::DB::SwissProt/EMBL query various EMBL and SwissProt
223 repositories for a sequences
224 o Bio::DB::GFF is Lincoln Stein's fast, lightweight feature and
225 sequence database which is the backend to his GBrowse system
227 o Bio::DB::Flat is a fast implementation of the OBDA flat-file
228 indexing system (cross-language and cross-platform supported by
229 O|B|F projects see http://obda.open-bio.org).
230 o Bio::DB::BioFetch/DBFetch for OBDA, Web (HTTP) access to remote
232 o Bio::DB::InMemoryCache/FileCache (fast local caching of sequences
233 from remote dbs to speed up your access).
234 o Bio::DB::Registry interface to the OBDA specification for remote
236 o Bio::DB::XEMBL SOAP access to sequence databases
237 o Bio::DB::Biblio for access to remote bibliographic databases.
238 - Annotation collection of annotation objects (comments,
239 DBlinks, References, and misc key/value pairs)
240 - Coordinate is a system for mapping between different coordinate
241 systems such as DNA to protein or between assemblies.
242 - Index is for locally indexed flatfiles with BerkeleyDB
243 - Tools contains many misc parsers and function for different
245 o Gene prediction parser (Genscan, MZEF, Grail, Genemark)
246 o Annotation format (GFF)
247 o simulate RE cutting with RestrictionEnzyme
248 o Enumerate codon tables and valid sequences symbols (CodonTable, IUPAC)
249 o Phylogenetic program parsing (PAML, Molphy, Phylip)
250 - Map genetic and physical map representations
251 - Graphics render a sequence with its features in the standard
253 - Structure - parse and represent protein structure data
254 - TreeIO is for reading and writing Tree formats
255 - Tree is the namespace for all the associated Tree objects
256 o Bio::Tree::Tree is the basic tree object
257 o Bio::Tree::Node are the nodes which make up the tree
258 o Bio::Tree::Statistics is for computing statistics for a tree
259 o Bio::Tree::TreeFunctionsI is where specific tree functions are
260 implemented (like is_monophyletic and lca)
261 - Bio::Biblio is where bibliographic data and database access objects
263 - Variation represent sequences with mutations and variations applied
264 so one can compare and represent wild-type and mutation versions of
266 - Root, basic objects for the internals of Bioperl
268 o Upgrading from an older version
270 If you have a previously installed version of bioperl on your system
271 some of these notes may help you.
273 Some modules have been removed because they have been superceeded by
274 new developement efforts. They are documented in the DEPRECATED file
275 that is included in the release. In addition some methods, or the
276 Application Programming Interface (API), have changed or been
277 removed. You may find that scripts which worked with bioperl 1.0.2
278 may give you warnings or may not work at all (although we have tried
279 very hard to minimize this!). Send an email to the list and we'll be
280 happy to give you pointers.