File: use_both_hmmsets

package info (click to toggle)
barrnap 0.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 22,256 kB
  • sloc: perl: 226; makefile: 62; sh: 15
file content (58 lines) | stat: -rw-r--r-- 1,796 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Description: Use_both_hmmsets
--- a/bin/barrnap
+++ b/bin/barrnap
@@ -3,6 +3,7 @@
 use warnings;
 use List::Util qw(max);
 use FindBin;
+use File::Temp qw/ tempfile tempdir /;
 use File::Temp;
 
 # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
@@ -64,6 +65,7 @@
 my $hmmdb = "$DBDIR/$kdom.hmm";
 err("Can't find database: $hmmdb") unless -r $hmmdb;
 msg("Using database: $hmmdb");
+my $nonfreehmmdb = "$DBDIR/nonfree/$kdom.hmm";
 
 # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 # check if user is piping to STDIN
@@ -84,6 +86,20 @@
 # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 # run the external command
 
+if (-e $nonfreehmmdb)  {
+  # prepare full pHMM file (with nonfree if it exists)
+  open ( HMMDB, "<", $hmmdb ) or die "Could not open file $hmmdb: $!";
+  open ( NONFREE, "<", $nonfreehmmdb );
+  my ($tmpfile, $tmpfilename) = tempfile();
+  while ( my $line = <HMMDB> ) {
+    print $tmpfile $line;
+  }
+  while ( my $line = <NONFREE> ) {
+    print $tmpfile $line;
+  }
+  $hmmdb = $tmpfilename
+}
+
 msg("Scanning $fasta for $kdom rRNA genes... please wait");
 my $opts = "--cpu $threads -E $evalue --w_length $MAXLEN -o /dev/null --tblout /dev/stdout";
 my $cmd = "nhmmer $opts '$hmmdb' '$fasta'";
@@ -123,7 +139,7 @@
   # check for incomplete alignments
   my $note = '';
   my $len = $end-$begin+1;
-  
+
   if ( $len < int($reject * $LENG{$gene}) ) {
     msg("Rejecting short $len nt predicted $gene. Adjust via --reject option.");
     next HIT;
@@ -144,7 +160,7 @@
   ];
 }
 
-# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
+# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
 # output a sorted GFF3
 
 sub gff_sort {