blast_parse_2.pl
		
1	
2	
3	
4	
5	
6	
7	
8	use lib '/home/gbell/perl_modules/nhgri/';
9	
10	use NHGRI::Blastall;
11	use GD;
12	
13	if (! $ARGV[0])
14	{
15	   print "What is the BLAST file to parse? ";
16	
17	   
18	   chomp ($inFile = <STDIN>);
19	}
20	else
21	{
22	   $inFile = $ARGV[0];
23	}
24	
25	
26	my $b = new NHGRI::Blastall;
27	
28	
29	$b->read_report("$inFile");
30	
31	
32	@results = $b->result();
33	
34	
35	@ids = $b->result('id');
36	
37	
38	@query_defline = $b->result('query');
39	
40	print "HIT_NUM\tQUERY\tQUERY_ID\tSUBJECT_LENGTH\tSCORE\tEXPECT\t";
41	print "MATCH_LENGTH\tIDENTITY\tQUERY_START\tQUERY_END\tSUBJECT_START\tSUBJECT_END\n";
42	print "\n**** DATA FOR QUERY $query_defline[0] ****\n\n";
43	
44	
45	for ($i = 0; $i <= $
46	{
47	   
48	   $hit_num = $i + 1;
49	   
50	   $this_id = $ids[$i];
51	   
52	   @deflines = $b->result('defline', $ids[$i]);
53	
54	   for ($j = 0; $j <= $
55	   {
56	      
57	      
58	      $deflines[$j] =~ s/(\s){5,}/ /g;
59	   }
60	
61	   
62	   @scores = $b->result('scores', $ids[$i]);
63	   
64	   @expects = $b->result('expects', $ids[$i]);
65	   
66	   @subject_length = $b->result('subject_length', $ids[$i]);
67	   
68	   @match_lengths = $b->result('match_lengths', $ids[$i]);
69	   
70	   @identities = $b->result('identities', $ids[$i]);
71	
72	   
73	   @query_starts = $b->result('query_starts', $ids[$i]);
74	   @query_ends = $b->result('query_ends', $ids[$i]);
75	   @subject_starts = $b->result('subject_starts', $ids[$i]);
76	   @subject_ends = $b->result('subject_ends', $ids[$i]);
77	
78	   
79	   
80	   
81	
82	   
83	   
84	
85	   for ($k = 0; $k <= $
86	   {
87	      print "$hit_num\t$deflines[0]\t$this_id\t";
88	      print "$subject_length[0]\t$scores[$k]\t$expects[$k]\t$match_lengths[$k]\t";
89	      printf "%0.2f", $identities[$k];
90	      print "\t$query_starts[$k]\t$query_ends[$k]\t$subject_starts[$k]\t$subject_ends[$k]\n";
91	   }
92	}
93	
94	
95	
96	
97	
98	
99	
100	sub dump_results
101	{
102	   foreach $rh_r (@results)
103	   {
104	      while (($key,$value) = each %$rh_r)
105	      {
106	         if (ref($value) eq "ARRAY")
107	         {
108	            print "$key: ";
109	            foreach $v (@$value)
110	            {
111	               print "$v ";
112	            }
113	            print "\n";
114	         }
115	         else
116	         {
117	            print "$key: $value\n";
118	         }
119	      }
120	      print "\n";
121	   }
122	}
123	
124