Previous changeset 1:66f8262e1686 (2012-03-05) Next changeset 3:c0fb858f44a2 (2012-09-11) |
Commit message:
reformat output to tabular |
modified:
hmmer.xml |
added:
hmmer_wrapper.pl |
b |
diff -r 66f8262e1686 -r 376092ae10ed hmmer.xml --- a/hmmer.xml Mon Mar 05 22:51:04 2012 -0800 +++ b/hmmer.xml Thu Aug 30 11:58:27 2012 -0700 |
b |
@@ -1,8 +1,12 @@ <tool id="hmmer" name="hmmer" version="1.0.0"> <description>hmmscan/search seqs vs profiles</description> -<command> +<requirements> + <requirement type="package">hmmer</requirement> +</requirements> +<command interpreter="perl"> +hmmer_wrapper.pl $program -##--cpu 8 +--cpu 8 --tblout $tblout --domtblout $domtblout $acc @@ -126,10 +130,6 @@ <data name="tblout" format="tabular" label="${tool.name} on $on_string: Per-sequence hits" /> <data name="domtblout" format="tabular" label="${tool.name} on $on_string: Per-domain hits" /> </outputs> -<requirements> - <requirement type="binary">hmmscan</requirement> - <requirement type="binary">hmmsearch</requirement> -</requirements> <tests> </tests> <help> |
b |
diff -r 66f8262e1686 -r 376092ae10ed hmmer_wrapper.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/hmmer_wrapper.pl Thu Aug 30 11:58:27 2012 -0700 |
[ |
@@ -0,0 +1,39 @@ +#!/usr/bin/env perl + +use warnings; +use strict; +use File::Copy; + +my $cmd="@ARGV"; +my ($tblout,$domtblout); +die("Missing --tblout\n") unless $cmd =~ / \-\-?tblout\s+(\S+)/; +$tblout = $1; +die("Missing --domtblout\n") unless $cmd =~ / \-\-?domtblout\s+(\S+)/; +$domtblout = $1; +my $output = `$cmd 2>&1`; +die("HMMer failure: $output\n") unless $? == 0; +reformat($tblout); +reformat($domtblout); +exit; + +sub reformat +{ + my $infile = shift; + my $outfile = "$infile.new"; + open(IN, "<$infile") or die($!); + open(OUT, ">$outfile") or die($!); + print OUT "#target name\taccession\tquery name\taccession\tE-value (full)\tscore (full)\tbias (full)\tE-value (best)\tscore (best)\tbias (best)\texp\treg\tclu\tov\tenv\tdom\trep\tinc\tdescription of target\n"; + while (<IN>) + { + next if /^#/; + my @row0 = split(/\s+/); + my @row = @row0[0..17]; + push @row, join(' ', @row0[18..$#row0]); + print OUT join("\t", @row), "\n"; + } + close(IN); + close(OUT); + move($outfile,$infile); +} + +__END__ |