|
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";
}
}
|