Network package

From BioPerl
Jump to: navigation, search


The bioperl-network or Bio::Network package parses and analyzes protein-protein interaction data provided by databases such as DIP, BIND, IntAct, HPRD, and MINT . It replaces the Bio::Graph* modules written by Nat Goodman and Richard Adams.

This package is based on Perl's Graph module and uses it to supply an underlying suite of graph algorithms. In theory any Graph method can be used to query or analyze a Bio::Network::ProteinNet object. The Bio::Network package is currently maintained by Brian Osborne.

The IO module is used to read a file and create a network. The formats that are currently supported are DIP and PSI MI 2.5. If you are parsing PSI MI read Module:Bio::Graph::IO::psi_xml first for notes on various databases and their PSI MI. You will read a file like this:

use Bio::Network::IO;
my $io = Bio::Network::IO->new(-file => 'bovine.xml',
                               -format => 'psi25' );
my $network = $io->next_network;

The components of the network are the Node, Edge, Interaction, and ProteinNet objects.


A node is one or more BioPerl sequence objects, a container for Bio::Seq or Bio::Seq::RichSeq object. Thus a node can represent a protein or a protein complex. The graph can contain any objects that implement Bio::AnnotatableI and Bio::IdentifiableI interfaces since these objects hold useful identifiers. This is relevant since the identity of nodes is determined by their identifiers.


A Edge corresponds to a pair of Nodes, and there is only one Edge per pair of Nodes.


A Interaction is an attribute of an Edge, and there can be 1 or more Interactions per Edge. It's useful to think of an Interaction as the results of a single biological experiment.


A ProteinNet object is a Graph object containing Nodes, Edges, and Interactions.

File I/O

The current release can read and write DIP tab-delimited format and can read some, but not all, of the fields in PSI MI XML 2.5 format.

The PSI MI files that can be downloaded from various interaction databases differ, some notes on these varieties of PSI MI can be found here.

The latest code

The latest code can be browsed and downloaded here:


You can download it by following the instructions on the Bioperl Git page, its name is bioperl-network.

Personal tools
Main Links