From e11cc30a5a2776f179b5e69e9043610b160972fc Mon Sep 17 00:00:00 2001 From: Paul Cantalupo Date: Sun, 17 Feb 2013 18:01:11 -0500 Subject: [PATCH] removing searchio-writer-bsmlresultwriter files --- Bio/SearchIO/Writer/BSMLResultWriter.pm | 354 ------------------------ scripts/utilities/bp_search2BSML.pl | 70 ----- 2 files changed, 424 deletions(-) delete mode 100644 Bio/SearchIO/Writer/BSMLResultWriter.pm delete mode 100644 scripts/utilities/bp_search2BSML.pl diff --git a/Bio/SearchIO/Writer/BSMLResultWriter.pm b/Bio/SearchIO/Writer/BSMLResultWriter.pm deleted file mode 100644 index 8f99e28619..0000000000 --- a/Bio/SearchIO/Writer/BSMLResultWriter.pm +++ /dev/null @@ -1,354 +0,0 @@ -# -# BioPerl module for Bio::SearchIO::Writer::BSMLResultWriter -# -# Please direct questions and support issues to -# -# Cared for by Jason Stajich -# -# Copyright Jason Stajich -# -# You may distribute this module under the same terms as perl itself - -# POD documentation - main docs before the code - -=head1 NAME - -Bio::SearchIO::Writer::BSMLResultWriter - BSML output writer - -=head1 SYNOPSIS - - use Bio::SearchIO; - my $in = Bio::SearchIO->new(-file => 'result.blast', - -format => 'blast'); - my $out = Bio::SearchIO->new(-output_format => 'BSMLResultWriter', - -file => ">result.bsml"); - while( my $r = $in->next_result ) { - $out->write_result($r); - } - -=head1 DESCRIPTION - -This is a writer to produce BSML for a search result. - -=head1 FEEDBACK - -=head2 Mailing Lists - -User feedback is an integral part of the evolution of this and other -Bioperl modules. Send your comments and suggestions preferably to -the Bioperl mailing list. Your participation is much appreciated. - - bioperl-l@bioperl.org - General discussion - http://bioperl.org/wiki/Mailing_lists - About the mailing lists - -=head2 Support - -Please direct usage questions or support issues to the mailing list: - -I - -rather than to the module maintainer directly. Many experienced and -reponsive experts will be able look at the problem and quickly -address it. Please include a thorough description of the problem -with code and data examples if at all possible. - -=head2 Reporting Bugs - -Report bugs to the Bioperl bug tracking system to help us keep track -of the bugs and their resolution. Bug reports can be submitted via -the web: - - https://redmine.open-bio.org/projects/bioperl/ - -=head1 AUTHOR - Jason Stajich - -Email jason-at-bioperl-dot-org - -=head1 APPENDIX - -The rest of the documentation details each of the object methods. -Internal methods are usually preceded with a _ - -=cut - - -# Let the code begin... - - -package Bio::SearchIO::Writer::BSMLResultWriter; -use strict; - -use XML::Writer; -use IO::String; - -use base qw(Bio::Root::Root Bio::SearchIO::SearchWriterI); - - -=head2 new - - Title : new - Usage : my $obj = Bio::SearchIO::Writer::BSMLResultWriter->new(); - Function: Builds a new Bio::SearchIO::Writer::BSMLResultWriter object - Returns : an instance of Bio::SearchIO::Writer::BSMLResultWriter - Args : - - -=cut - -sub new { - my($class,@args) = @_; - - my $self = $class->SUPER::new(@args); - return $self; -} - -=head2 to_string - - Purpose : Produces data for each Search::Result::ResultI in a string. - : This is an abstract method. For some useful implementations, - : see ResultTableWriter.pm, HitTableWriter.pm, - : and HSPTableWriter.pm. - Usage : print $writer->to_string( $result_obj, @args ); - Argument : $result_obj = A Bio::Search::Result::ResultI object - : @args = any additional arguments used by your implementation. - Returns : String containing data for each search Result or any of its - : sub-objects (Hits and HSPs). - Throws : n/a - -=cut - -# this implementation is largely adapted from the Incogen XSLT stylesheet -# to convert NCBI BLAST XML to BSML - -sub to_string { - my ($self,$result,$num) = @_; - my $str = new IO::String(); - my $writer = new XML::Writer(OUTPUT => $str, - DATA_INDENT => 1, - DATA_MODE => 1); - $writer->xmlDecl('UTF-8'); - $writer->doctype('Bsml','-//EBI//Labbook, Inc. BSML DTD//EN', - 'http://www.labbook.com/dtd/bsml3_1.dtd'); - $writer->startTag('Bsml'); - $writer->startTag('Definitions'); - $writer->startTag('Sequences'); - my $reporttype = $result->algorithm; - my ($qmoltype,$hmoltype); - my $hit = $result->next_hit; - my $hsp = $hit->next_hsp; - if( $hsp->query->strand == 0 ) { $qmoltype = 'aa' } - else { $qmoltype = 'nt' } - - if( $hsp->hit->strand == 0 ) { $hmoltype = 'aa' } - else { $hmoltype = 'nt' } - - $writer->startTag('Sequence', - 'length' => $result->query_length, - 'title' => $result->query_name . " ". $result->query_description, - 'molecule' => $qmoltype, - 'representation' => 'virtual', - 'id' => $result->query_name - ); - # Here we're annotating the Query sequence with hits - # hence the Feature-table - $writer->startTag('Feature-tables'); - $writer->startTag('Feature-table', - 'title' => "$reporttype Result", - 'class' => $reporttype); - my ($hitnum,$hspnum) = (1,1); - foreach my $hit ( $result->hits ) { - $hspnum = 1; - foreach my $hsp ( $hit->hsps ) { - $writer->startTag('Feature', - 'class' => $reporttype, - 'value-type' => 'alignment', - 'title' => $hit->name. " ". $hit->description, - ); - - $writer->emptyTag('Interval-loc', - 'startpos' => $hsp->query->start, - 'endpos' => $hsp->query->end); - $writer->emptyTag('Qualifier', - 'value-type' => 'score', - 'value' => $hsp->score, - ); - - $writer->emptyTag('Qualifier', - 'value-type' => 'target-start', - 'value' => $hsp->hit->start, - ); - $writer->emptyTag('Qualifier', - 'value-type' => 'target-end', - 'value' => $hsp->hit->end, - ); - $writer->emptyTag('Link', - 'title' => 'alignment', - 'href' => sprintf("#SPA%d.%d",$hitnum,$hspnum) - ); - - if( $hsp->hit->strand < 0 ) { - $writer->emptyTag('Qualifier', - 'value-type' => 'target-on-complement', - 'value' => 1, - ); - } - $hspnum++; - $writer->endTag('Feature'); - } - $hitnum++; - } - $writer->endTag('Feature-table'); - $writer->endTag('Feature-tables'); - $writer->endTag('Sequence'); - $writer->endTag('Sequences'); - - $writer->startTag('Tables'); - $writer->startTag('Sequence-search-table', - 'search-type' => $reporttype, - 'query-length' => $result->query_length); - $hitnum = $hspnum = 1; - foreach my $hit ( $result->hits ) { - $hspnum = 1; - foreach my $hsp ( $hit->hsps ) { - $writer->startTag('Seq-pair-alignment', - 'id' => sprintf("SPA%d.%d",$hitnum,$hspnum), - 'method' => join(' ',$result->algorithm), - 'compxref' => sprintf("%s:%s", - '',$result->query_name), - 'refxref' => sprintf("%s:%s", - $result->database_name, - $hit->name), - 'refseq' => $hit->name, - 'title' => $result->query_name, - 'compseq' => $result->query_name, - 'compcaption' => $result->query_name . ' ' . - $result->query_description, - 'refcaption' => $hit->name . " ". - $hit->description, - 'totalscore' => $hsp->score, - 'refstart' => $hsp->query->start, - 'refend' => $hsp->query->end, - 'compstart' => $hsp->hit->start, - 'compend' => $hsp->hit->end, - 'complength' => $hit->length, - 'reflength' => $result->query_length); - - $writer->emptyTag('Attribute', - 'name' => 'hit-num', - 'content' => $hitnum); - $writer->emptyTag('Attribute', - 'name' => 'hit-id', - 'content' => $hit->name); - $writer->emptyTag('Attribute', - 'name' => 'hsp-num', - 'content' => $hspnum); - $writer->emptyTag('Attribute', - 'name' => 'hsp-bit-score', - 'content' => $hsp->bits); - $writer->emptyTag('Attribute', - 'name' => 'hsp-evalue', - 'content' => $hsp->evalue); - $writer->emptyTag('Attribute', - 'name' => 'pattern-from', - 'content' => 0); - $writer->emptyTag('Attribute', - 'name' => 'pattern-to', - 'content' => 0); - $writer->emptyTag('Attribute', - 'name' => 'query-frame', - 'content' => $hsp->query->frame); - $writer->emptyTag('Attribute', - 'name' => 'hit-frame', - 'content' => $hsp->hit->frame * $hsp->hit->strand); - $writer->emptyTag('Attribute', - 'name' => 'percent_identity', - 'content' => sprintf("%.2f",$hsp->percent_identity)); - $writer->emptyTag('Attribute', - 'name' => 'percent_similarity', - 'content' => sprintf("%.2f",$hsp->frac_conserved('total') * 100)); - my $cons = $hsp->frac_conserved('total') * $hsp->length('total'); - my $ident = $hsp->frac_identical('total') * $hsp->length('total'); - - $writer->emptyTag('Attribute', - 'name' => 'identity', - 'content' => $ident); - $writer->emptyTag('Attribute', - 'name' => 'positive', - 'content' => $cons); - $writer->emptyTag('Attribute', - 'name' => 'gaps', - 'content' => $hsp->gaps('total')); - $writer->emptyTag('Attribute', - 'name' => 'align-len', - 'content' => $hsp->length('total')); - $writer->emptyTag('Attribute', - 'name' => 'density', - 'content' => 0); - $writer->emptyTag('Attribute', - 'name' => 'hit-len', - 'content' => $hit->length); - my @extrafields; - - $writer->emptyTag('Seq-pair-run', - 'runlength' => $hsp->hit->length, - 'comprunlength' => $hsp->hsp_length, - 'complength' => $hsp->hit->length, - 'compcomplement'=> $hsp->hit->strand < 0 ? 1 :0, - 'refcomplement' => $hsp->query->strand < 0 ? 1 :0, - 'refdata' => $hsp->query_string, - 'compdata' => $hsp->hit_string, - 'alignment' => $hsp->homology_string, - ); - $hspnum++; - $writer->endTag('Seq-pair-alignment'); - } - $hitnum++; - } - $writer->endTag('Sequence-search-table'); - $writer->endTag('Tables'); - - $writer->startTag('Research'); - $writer->startTag('Analyses'); - $writer->startTag('Analysis'); - $writer->emptyTag('Attribute', - 'name' => 'program', - 'content' => $reporttype); - $writer->emptyTag('Attribute', - 'name' => 'version', - 'content' => join(' ',$reporttype, - $result->algorithm_version)); - $writer->emptyTag('Attribute', - 'name' => 'reference', - 'content' => $result->algorithm_reference); - $writer->emptyTag('Attribute', - 'name' => 'db', - 'content' => $result->database_name); - $writer->emptyTag('Attribute', - 'name' => 'db-size', - 'content' => $result->database_entries); - $writer->emptyTag('Attribute', - 'name' => 'db-length', - 'content' => $result->database_letters); - # $writer->emptyTag('Attribute', - # 'name' => 'iter-num', - # 'content' => $result->iteration_num); - foreach my $attr ( $result->available_parameters ) { - $writer->emptyTag('Attribute', - 'name' => $attr, - 'content' => $result->get_parameter($attr)); - } - foreach my $attr ( $result->available_statistics ) { - $writer->emptyTag('Attribute', - 'name' => $attr, - 'content' => $result->get_statistic($attr)); - } - $writer->endTag('Analysis'); - $writer->endTag('Analyses'); - $writer->endTag('Research'); - - $writer->endTag('Definitions'); - $writer->endTag('Bsml'); - $writer->end(); - return ${$str->string_ref}; -} -1; diff --git a/scripts/utilities/bp_search2BSML.pl b/scripts/utilities/bp_search2BSML.pl deleted file mode 100644 index 1fdc2c22fb..0000000000 --- a/scripts/utilities/bp_search2BSML.pl +++ /dev/null @@ -1,70 +0,0 @@ -#!perl - -# Author: Jason Stajich -# Description: Turn SearchIO parseable report(s) into a GFF report -# -=head1 NAME - -search2bsml - Turn SearchIO parseable reports(s) into a BSML report - -=head1 SYNOPSIS - -Usage: - search2bsml [-o outputfile] [-f reportformat] [-i inputfilename] OR file1 file2 .. - -=head1 DESCRIPTION - -This script will turn a protein Search report (BLASTP, FASTP, SSEARCH, -AXT, WABA, SIM4) into a BSML File. - -The options are: - - -i infilename - (optional) inputfilename, will read - either ARGV files or from STDIN - -o filename - the output filename [default STDOUT] - -f format - search result format (blast, fasta,waba,axt) - (ssearch is fasta format). default is blast. - -h - this help menu - -Additionally specify the filenames you want to process on the -command-line. If no files are specified then STDIN input is assumed. -You specify this by doing: search2gff E file1 file2 file3 - -=head1 AUTHOR - -Jason Stajich, jason-at-bioperl-dot-org - -=cut - -use strict; -use warnings; -use Getopt::Long; -use Bio::SearchIO; - -my ($output,$input,$format,$type,$help,$cutoff); -$format = 'blast'; # by default -GetOptions( - 'i|input:s' => \$input, - 'o|output:s' => \$output, - 'f|format:s' => \$format, - 'c|cutoff:s' => \$cutoff, - 'h|help' => sub{ exec('perldoc',$0); - exit(0) - }, - ); -# if no input is provided STDIN will be used -my $parser = new Bio::SearchIO(-format => $format, - -file => $input); - -my $out; -if( defined $output ) { - $out = new Bio::SearchIO(-file => ">$output", - -output_format => 'BSMLResultWriter'); -} else { - $out = new Bio::SearchIO(-output_format => 'BSMLResultWriter'); # STDOUT -} - -while( my $result = $parser->next_result ) { - $out->write_result($result); -} -