Fixed instantiation to recognize array ref for -keywords.
[bioperl-live.git] / README
blobd8c13638524397060f237fabd721803081275722
1 This is the README file for the Bioperl central distribution.
3 # $Id$
5 o Getting Started
6  
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
25  PLATFORMS file.
27  For info on Bioperl read on!
29 o About Bioperl
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.
38 o Contact info
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
74                        in this directory.
75  doc/ - "How To" files and the FAQ as XML
77 o Documentation
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.
91  For example, go 
93    perldoc bioperl 
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
110  of translator.
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.
122 o Releases
123   
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
168  install it first.
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
184  toolkit is laid out:
186  All modules are in the Bio/ namespace, 
187   - Perl is for newbies and gives a functional interface to the main
188     parts of the package
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
196       fitting into memory.
197  - SeqIO is for reading and writing Sequences, it is a front end
198    module for separate driver modules supporting the different
199    sequence formats
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
206    like BLAST or FASTA
207  - Search is where the alignment objects are defined
208    o Bio::Search::Result::GenericResult is the result object (a blast query
209      is a Result object)
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
216    formats
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
221      for sequences
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 
226      (see www.gmod.org)
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
231      databases.
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 
235      data sources
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
244    bioinformatics needs
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
252    'tracks'gram.
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
262    are kept
263  - Variation represent sequences with mutations and variations applied
264    so one can compare and represent wild-type and mutation versions of
265    a sequence.
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.