Mercurial > repos > cpt > cpt_protein_blast_grouping
diff protein_blast_grouping.py @ 1:f2a7dffab581 draft
planemo upload commit 6dde4ec93f27f36a10017393063dcf0568f1d405
author | cpt |
---|---|
date | Thu, 08 Aug 2024 02:46:54 +0000 |
parents | 7abe5f471364 |
children | c5e0e05ce58a |
line wrap: on
line diff
--- a/protein_blast_grouping.py Wed Jul 24 01:37:37 2024 +0000 +++ b/protein_blast_grouping.py Thu Aug 08 02:46:54 2024 +0000 @@ -1,5 +1,6 @@ import argparse import re +import sys class BlastProteinResultParser: @@ -37,7 +38,9 @@ sorted_results = sorted(self.results.items(), key=sort_key, reverse=True) return sorted_results[:num_hits] - def print_results(self, num_hits, sort_key="unique_queries"): + def print_results( + self, num_hits, sort_key="unique_queries", output_file=sys.stdout + ): top_hits = self.get_top_hits(num_hits, sort_key) print(f"# Top {num_hits} Hits") print( @@ -49,7 +52,8 @@ print( "{:<50} {:<25} {:<25}".format( organism, len(data["unique_queries"]), len(data["unique_hits"]) - ) + ), + file=output_file, ) @@ -62,6 +66,12 @@ "--hits", type=int, default=5, help="Number of top hits to display" ) parser.add_argument( + "--output", + type=argparse.FileType("w"), + default="-", + help="Output file (default: stdout)", + ) + parser.add_argument( "--sort", choices=["unique_queries", "unique_hits"], default="unique_queries", @@ -71,7 +81,9 @@ blast_parser = BlastProteinResultParser(args.blast) blast_parser.parse_blast() - blast_parser.print_results(args.hits, args.sort) + blast_parser.print_results(args.hits, args.sort, args.output) + + args.output.close() if __name__ == "__main__":