version increase for final release
[bioperl-network.git] / README
blob7c96c63acfd398634bf4f9910518b84b6655f084
1 # $Id$
3 bioperl-network README
5 1. Installation
6 2. Introduction
7 3. Status
8 4. History
11 1. Installation
13 See the accompanying INSTALL file for details on installing
14 bioperl-network.
17 2. Introduction
19 A ProteinNet is a representation of a protein-protein interaction network.
20 Its functionality derives from the Graph module of Perl and from BioPerl.
21 These sorts of networks, or graphs, can be modeled as nodes, or
22 vertices, connected by edges.
24 A node is one or more BioPerl sequence objects, a Bio::Seq or 
25 Bio::Seq::RichSeq object. Since a node can contain more than one
26 Sequence object it can represent protein complexes as well as proteins.
27 Essentially the node can be any Bioperl object that implements the
28 Bio::AnnotatableI and Bio::IdentifiableI interfaces. This is relevant since the 
29 identities of nodes are determined by their identifiers.
31 The bioperl-network modules use Perl's Graph::Undirected 
32 module and inherit its formal model as well. An edge corresponds to a 
33 pair of nodes, and there is only one edge per pair. An interaction is an 
34 attribute of an edge, and there can be 1 or more interactions per edge.
35 An interaction can be thought of as one experiment or one experimental 
36 observation. 
38 The formats that can be parsed are DIP (tab-delimited) and PSI MI (XML). 
39 Capabilities include the ability to merge networks, select nodes and
40 interactions by identifier, add and delete components (nodes,
41 interactions, and edges), count all components of a certain type, get
42 all components of a certain type, and get subgraphs. Then you have all
43 the functionality of Perl's Graph in addition such as traversal using
44 different algorithms, getting interior and exterior nodes, and getting all 
45 connected subgraphs. Graph is quite rich in functionality, this list
46 is only a small subset of available methods, see the documentation 
47 for Graph for more detail (http://search.cpan.org/~jhi/Graph/lib/Graph.pod).
49 For more detailed documentation also see the
50 Bio::Network::ProteinNet module.
53 3. Status
55 This package should be considered a preliminary piece of
56 work. Although the code is tested and stable it lacks functionality. Not
57 all fields in the PSI MI standard are parsed into a network, for example.
58 The BioPAX format is not parsed, arguably as important a format as
59 PSI MI. In addition useful functions such as searching by sequence or 
60 ontology term aren't yet implemented. If you are interested in contributing
61 please contact Brian Osborne at bioperl-l@bioperl.org.
64 4. History
66 Modules similar to these were first released as part of the core BioPerl package
67 and were called Bio::Graph*. Bio::Graph was copied to a separate package,
68 bioperl-network, and renamed Bio::Network. All of the modules were
69 revised and a new module, Interaction.pm, was added. The
70 functionality of the PSI MI parser, IO/psi.pm, was enhanced.
72 Graph manipulation in the predecessor Bio::Graph was based on the 
73 Bio::Graph::SimpleGraph module by Nat Goodman. The first release as a
74 separate package, bioperl-network, replaced SimpleGraph with the Perl
75 Graph package. Other API changes were also made, partly to keep
76 nomenclature consistent with BioPerl, partly to use the terms used by
77 the public protein interaction databases, and partly to accommodate the
78 differences between Graph and Bio::Graph::SimpleGraph.
80 The advantages to using Graph are that Bioperl developers are not
81 responsible for maintaining the code that actually handles graph
82 manipulation and there is more functionality in Graph than in SimpleGraph.
84 The disadvantage is that we now rely on others to keep the package bug-free.
85 You must install version .80 or greater but even this version is not
86 completely bug-free (see the BUGS file in this package for details).