|
1 | 1 | import json
|
| 2 | +import collections |
2 | 3 | import concurrent
|
3 | 4 | import logging
|
4 | 5 | import platform
|
@@ -145,6 +146,28 @@ def info_metadata(metadata, verbose, log_file):
|
145 | 146 | print(metadata_db)
|
146 | 147 |
|
147 | 148 |
|
| 149 | +@click.command() |
| 150 | +@click.argument("match_db", type=click.Path(exists=True, dir_okay=False)) |
| 151 | +@click.option("-v", "--verbose", count=True) |
| 152 | +@click.option("-l", "--log-file", default=None, type=click.Path(dir_okay=False)) |
| 153 | +def info_matches(match_db, verbose, log_file): |
| 154 | + """ |
| 155 | + Information about an alignment store |
| 156 | + """ |
| 157 | + setup_logging(verbose, log_file) |
| 158 | + with sc2ts.MatchDb(match_db) as db: |
| 159 | + print(db) |
| 160 | + print("last date = ", db.last_date()) |
| 161 | + print("cost\tpercent\tcount") |
| 162 | + df = db.as_dataframe() |
| 163 | + total = len(db) |
| 164 | + hmm_cost_counter = collections.Counter(df["hmm_cost"].astype(int)) |
| 165 | + for cost in sorted(hmm_cost_counter.keys()): |
| 166 | + count = hmm_cost_counter[cost] |
| 167 | + percent = count / total * 100 |
| 168 | + print(f"{cost}\t{percent:.1f}\t{count}") |
| 169 | + |
| 170 | + |
148 | 171 | def add_provenance(ts, output_file):
|
149 | 172 | # Record provenance here because this is where the arguments are provided.
|
150 | 173 | provenance = get_provenance_dict()
|
@@ -389,6 +412,7 @@ def cli():
|
389 | 412 | cli.add_command(import_metadata)
|
390 | 413 | cli.add_command(info_alignments)
|
391 | 414 | cli.add_command(info_metadata)
|
| 415 | +cli.add_command(info_matches) |
392 | 416 |
|
393 | 417 | cli.add_command(daily_extend)
|
394 | 418 | cli.add_command(validate)
|
|
0 commit comments