Skip to content

Commit

Permalink
Merge pull request #219 from medema-group/hotfix/central-lcs
Browse files Browse the repository at this point in the history
clear central on new longest lcs
  • Loading branch information
nlouwen authored Dec 5, 2024
2 parents 54487ab + 29ea5a2 commit 7b7b637
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 14 deletions.
6 changes: 3 additions & 3 deletions big_scape/cli/benchmark_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,12 +52,12 @@ def benchmark(ctx, *args, **kwargs):
ctx.obj.update(ctx.params)
ctx.obj["mode"] = "Benchmark"

# workflow validations
validate_output_paths(ctx)

# set start time and label
set_start(ctx.obj)

# workflow validations
validate_output_paths(ctx)

# initialize logger
init_logger(ctx.obj)
init_logger_file(ctx.obj)
Expand Down
5 changes: 2 additions & 3 deletions big_scape/cli/cli_validations.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
from pathlib import Path
from typing import Optional
import os
import time
import platform

# from other modules
Expand All @@ -22,7 +21,7 @@ def set_start(param_dict) -> None:
"""get start time and set label in a run parameter dict"""

start_time: datetime = datetime.now()
timestamp = start_time.strftime("%d-%m-%Y_%H-%M-%S")
timestamp = start_time.strftime("%Y-%m-%d_%H-%M-%S")
if param_dict["label"]:
param_dict["label"] = f"{param_dict['label']}_{timestamp}"
else:
Expand Down Expand Up @@ -116,7 +115,7 @@ def validate_output_dir(ctx, param, output_dir) -> Path:
def validate_output_paths(ctx) -> None:
"""Sets the output paths to default output_dir if not provided"""

timestamp = time.strftime("%Y-%m-%d_%H-%M-%S", time.localtime())
timestamp = ctx.obj["label"]

if "db_path" in ctx.obj and ctx.obj["db_path"] is None:
db_path = ctx.obj["output_dir"] / Path(f"{ctx.obj['output_dir'].name}.db")
Expand Down
6 changes: 3 additions & 3 deletions big_scape/cli/cluster_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,16 +138,16 @@ def cluster(ctx, *args, **kwargs):
ctx.obj["propagate"] = True # compatibility with query wrt cc generation
ctx.obj["mode"] = "Cluster"

# set start time and run label
set_start(ctx.obj)

# workflow validations
validate_binning_cluster_workflow(ctx)
validate_pfam_path(ctx)
validate_domain_include_list(ctx)
validate_output_paths(ctx)
validate_disk_only(ctx)

# set start time and run label
set_start(ctx.obj)

# initialize logger
init_logger(ctx.obj)
init_logger_file(ctx.obj)
Expand Down
6 changes: 3 additions & 3 deletions big_scape/cli/query_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,16 +99,16 @@ def query(ctx, *args, **kwarg):
ctx.obj["exclude_classes"] = None
ctx.obj["include_classes"] = None

# set start time and label
set_start(ctx.obj)

# workflow validations
validate_pfam_path(ctx)
validate_output_paths(ctx)
validate_binning_query_workflow(ctx)
validate_query_record(ctx)
validate_disk_only(ctx)

# set start time and label
set_start(ctx.obj)

# initialize logger
init_logger(ctx.obj)
init_logger_file(ctx.obj)
Expand Down
10 changes: 8 additions & 2 deletions big_scape/comparison/lcs.py
Original file line number Diff line number Diff line change
Expand Up @@ -287,9 +287,12 @@ def find_domain_lcs_region(

# Length

# clear the list if it's not empty and the current match is longer
# clear the longest list if it's not empty and the current match is longer.
# also clear the central list as we do not care about a shorter LCS even if it
# is more central
if len(use_longest_list) > 0 and length > use_longest_list[0][1]:
use_longest_list.clear()
use_central_list.clear()

# add the match to the list if it's empty or the current match is equal length
# or longer than the existing match
Expand Down Expand Up @@ -523,9 +526,12 @@ def find_domain_lcs_protocluster(

# Length

# clear the list if it's not empty and the current match is longer
# clear the longest list if it's not empty and the current match is longer.
# also clear the central list as we do not care about a shorter LCS even if it
# is more central
if len(use_longest_list) > 0 and length > use_longest_list[0][1]:
use_longest_list.clear()
use_central_list.clear()

# add the match to the list if it's empty or the current match is equal length
# or longer than the existing match
Expand Down
3 changes: 3 additions & 0 deletions big_scape/output/legacy_output.py
Original file line number Diff line number Diff line change
Expand Up @@ -642,6 +642,9 @@ def write_network_file(

if cutoff is not None:
select_statement = select_statement.where(distance_table.c.distance < cutoff)
else:
# still do not include edges with a distance of 1
select_statement = select_statement.where(distance_table.c.distance < 1)

edgelist = set(DB.execute(select_statement).fetchall())

Expand Down

0 comments on commit 7b7b637

Please sign in to comment.