The University of Arizona
Simple Testcase: Bioperl FPC  
Home | Search | FPC | WebAGCoL

Following is a simple testcase which shows how to access various methods implemented in Bioperl FPC

#!/usr/local/bin/perl -w

use Bio::MapIO;

my $file = $ARGV[0] || 'demo.fpc';

my $mapio = new Bio::MapIO(-format => "fpc",-file => $file,
     -species => "Orysa sativa",
     -readcor => 0, -verbose => 0);

my $fpcmap = $mapio->next_map();
my $markercount = 0;

print "Group Type: ",$fpcmap->group_type(),"\n";
print "Group Abbr: ",$fpcmap->group_abbr(),"\n";

print "CLONES\n\n";

foreach my $cloneid ($fpcmap->each_cloneid()) {
   my $cloneobj = $fpcmap->get_cloneobj($cloneid);
   print "Clone: ",$cloneobj->name(), "\n";

   foreach my $val ($cloneobj->each_markerid()) {
     print " marker $val hits this clone\n";
   }

   if ($cloneobj->contigid() > 0) {
     print " in Contig ", $cloneobj->contigid(), " : ",
       $cloneobj->range()->start(), "-",
       $cloneobj->range()->end(), "\n";
   }

   foreach my $val ($cloneobj->bands()) {
     print " bands ";
     foreach my $item (@$val){
       print " $item ";
     }
     print "\n";
   }

   foreach my $val ($cloneobj->each_match('exact')) {
     print " EXACT match to $val\n";
   }
   foreach my $val ($cloneobj->each_match('approximate')) {
     print " APPROXIMATE match to $val\n";
   }
   foreach my $val ($cloneobj->each_match('pseudo')) {
     print " PSEUDO match to $val\n";
   }
}

print "\n\nMARKERS\n\n";

foreach $marker($fpcmap->each_markerid()) {
   my $markerobj = $fpcmap->get_markerobj($marker);

   print "Marker$marker\tgroup:",$markerobj->group(),"\tpos:",$markerobj->global(),"\n";

   # get all the clones hit by this marker
   foreach $clone ($markerobj->each_cloneid()) {
     print " +++Clone: $clone\n";
   }

   # get all the contigs where this marker hit
   foreach $contig ($markerobj->each_contigid()) {
     print " +++Ctg$contig\n";
   }
}

print "\n\nCONTIG\n\n";

foreach my $contig ($fpcmap->each_contigid()) {
   ## if you would like to skip ctg0
   next unless ($contig);
   # Create the marker object of only the required markers
   my $contigobj = $fpcmap->get_contigobj($contig);

   print "Ctg$contig\tgroup:",$contigobj->group(),"\tpos:",$contigobj->position(),"\t\n";

   # get all the clones in this contig
   foreach $clone ($contigobj->each_cloneid()) {
     print " +++Clone: $clone\n";
   }

   # get all the markers in this contig
   foreach $marker ($contigobj->each_markerid()) {
     print " +++Marker: $marker\n";
   }
}

 

Email Comments To: www@agcol.arizona.edu