----------------------------------- TO DO --------------------------------------

ID: 0001
Title: test example code in documentation
Date: 08/30/2006
Submitted by: Tom
Importance (5 = critical, 1 = maybe tomorrow): 4
Status (open/done): open
CrossRef: none

Description:
All of the examples we're releasing to the public should be tested at least
once.  There's nothing more disconcerting then typing an example verbatim and 
finding that it doesn't work.

------------------------------------ TO DO --------------------------------------

ID: 0002
Title: 
Date: 
Submitted by: 
Importance (5 = critical, 1 = maybe tomorrow): 
Status (open/done): 
CrossRef: 

Description:


--------------------------------- TO DO --------------------------------------

ID: 0003
Title: Integrating nextool and nexplot  in Bio::NEXUS module
Date: 08/31/2006
Submitted by: Vivek Gopalan
Importance (5 = critical, 1 = maybe tomorrow): 3
Status (open/done):  open
CrossRef: 

Description: "Proposal for integrating nextool and nexplot in the Bio::NEXUS module"

Currently nextool.pl and nexplot.pl are given as executable files along with the module for performing useful and easy way of modifying
the nexus object contents. The input for these executables are the nexus files along with arguments to perform variousfunctions.

Problems of executables:

1.  During installation, these files are copied to a separate directory (install directory) from the Bio::NEXUS module directory. Hence, users may find it difficult to find these executable files if the PATH variable is not set correctly.
2. Difficult to integrate with Nexplorer, since the output of these programs are only nexus files rather than Bio::NEXUS object. This also
caused separate code development of Nexplorer.
3. The output are only nexus files. Hence users are restricted in analysing the modified Bio::NEXUS object.

My suggestions are 

1 To integrate 'nextool.pl' contents as Bio::NEXUS::Tools::NexModifier or Bio::NEXUS::Tools::NexManipulator module
2. To integrate 'nexplot.pl' contents as Bio::NEXUS::Tools::NexPlotter or some other name.

For example, To obtain a PostScript output of a manipulated nexus object the following two lines of code can be used

$nex_obj = new Bio::NEXUS::Tools::NexModifier(
     -input_filename => 'test.nex',
     -out_filename   => 'out.nex',
     -exclude_otus   => ['A','B'],
     -rename_otus    => ['C'=>'Human_gene'],
     -exclude_otus   => ['Human_gene']
);

$nexplot_obj = new Bio::NEXUS::Tools::NexPlotter(
    -input          => $nex_obj, 
    -out_filename   => 'out.ps',
    -draw_border    => 1,
    -show_data      => 1
);


# Main advantages
1. All the utilities in nextool.pl and nexplot.pl can be integrated into the NexModifier and NexPlotter packages. (Take less time for conversation of the content from the executables to classes)
2. Easy to integrate to Nexplorer (web based program for manipulation and plotting of NEXUS content) - Only the HTML and JavaScript codes 
has to mapped to the Bio::NEXUS::Tools::NexPlotter object.
3. Users can get the modified Bio::NEXUS object or plot data object and then perform other manipulations on these objects.
4. Provide a starting point for developing a 'command line' scripts for manipulating Bio::NEXUS object.
5. Easy for code development, since the classes are part of the main module.
6. Same command can be called multiple times (see exclude_otus above ).

# 
1. GD, Simple::Postscript, PDF::API2 perl library installation, if plotting of data is required.
2. Simple documentation for users to effectively use the arguments should be written.

