Choosing a module name

From BioPerl
Jump to: navigation, search

Many people want to know how to name their modules. We have tried to organize things under top level names that logically separate the datatypes or functionality. Most of the BioPerl modules focus on sequence analysis and related data, here is a table of a summary of namespace and the associated functionality.

Namespace Description
Bio::AlignIO Multiple sequence alignment input and output
Bio::Align Alignment data functions including distance functions and misc utilities
Bio::Annotation Annotation data objects for Comments, DBLinks, OntologyTerms, References
Bio::Assembly Assembly objects
Bio::Biblio Bibliographic objects
Bio::Cluster Clusters like groups of sequences from a family or UniGene clusters
Bio::ClusterIO Cluster format input and output like unigene
Bio::CodonTable Codon Usage Tables
Bio::Coordinate Tools for mapping coordinates between different coordinate systems (like genomic to protein or CDS to genomic)
Bio::DB A collection of database interfaces including Bio::DB::GenBank, Bio::DB::SwissProt, Bio::DB::Fasta, Bio::DB::GFF, Bio::DB::Taxonomy
Bio::Das Some DAS interfaces (implementations in this namespace are in other modules, see CPAN)
Bio::Event Event handling interfaces defined
Bio::Expression Expression data interfaces defined
Bio::Factory Factory interfaces for a number of different functionality - this is where the interfaces are defined only.
Bio::FeatureIO New system for processing feature data (GFF, BED)
Bio::Graph A (perhaps outdated) Graph interface and implementation for feature graphs and network representation
Bio::Graphics Interface for rendering graphics, basis for Gbrowse track rendering.
Bio::Index A set of modules for building local indexed files for fast random access to a sequences in file. Some conflict between whether modules should go in here or Bio::DB
Bio::Location Locations are for representing locations in sequence typically. These include non-consecutive locations (Split) and those with undefined start or stop (Fuzzy).
Bio::Map Represent biological maps like genetic maps and physical maps which are ultimately just an ordering of markers.
Bio::Matrix Matricies of either sequence distances and substitution matricies.
Bio::Ontology Ontology data representation (DAG)
Bio::OntologyIO Parsing ontology data (GO, OBO)
Bio::Phenotype Phenotypic data representation (typically data from OMIM)
Bio::Root The key definitions in BioPerl objects including error handling and basic inheritance
Bio::Search Key objects for parsing database sequence search results as parsed by Bio::SearchIO, this includes HSP, Hit and

Result objects

Bio::SearchIO Parsing database sequence search results
Bio::Seq Sequence object extensions
Bio::SeqIO Sequence input and output
Bio::Structure PDB and other protein sequence structure data parsing and representation
Bio::Symbol An antiquitated set of objects for representing the symbols for sequence alphabets
Bio::Taxonomy Representation of the taxonomy hierarchy
Bio::Tools This is grabbag of modules whose function ranges from Phylogenetics to Gene prediction tools. A more comprehensive list of Bio::Tools functionality needs to be written...
Bio::Tree Phylogenetic tree data objects and construction tools
Bio::TreeIO Parsing phylogenetic tree data in several formats.
Bio::Variation TODO

Avoiding conflicts with non-BioPerl modules

Of course BioPerl is not the only package producing modules which fall in the Bio namespace. It is important to look in CPAN to see what other module names are already used. If you are a developer and want to put a new module in the namespace try and not use the namespaces we have already used to avoid confusion and collisions between our package and yours. If you plan to use a particular directory or module name we are happy to avoid using it if you just send and email to the Mailing lists.

Personal tools
Main Links