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