utils package

Submodules

deeprm.utils.utils

Utility functions for DeepRM.

deeprm.utils.utils.mean_phred(phred)[source]

Calculates the mean Phred quality score.

Parameters:

phred (numpy.ndarray) – Array or list of Phred quality scores.

Returns:

Mean Phred quality score.

Return type:

float

deeprm.utils.utils.maybe_index_bam(bam_path, threads=1)[source]

Ensure a BAM is indexed. If indexing fails because the BAM is not coordinate-sorted, write a coordinate-sorted copy (<stem>.sorted[.N].bam), index it, and return that path.

Returns:

Path (as str) to the BAM that is guaranteed to be indexed (original or sorted copy).

Parameters:
  • bam_path (str)

  • threads (int)

Return type:

str

deeprm.utils.logging

Logging utilities for DeepRM.

class deeprm.utils.logging.ColorFormatter(datefmt='%Y-%m-%d %H:%M:%S')[source]

Bases: Formatter

Custom logging formatter that adds colored output and time prefix. It formats log messages with a timestamp and applies colors based on the log level. It also indents multiline messages to align with the timestamp prefix.

Parameters:

datefmt (str) – Format string for the timestamp. Defaults to “%Y-%m-%d %H:%M:%S”.

datefmt

Format string for the timestamp.

Type:

str

format(record)[source]

Format the log record with a timestamp and colored output.

Parameters:

record (logging.LogRecord) – The log record to format.

Returns:

The formatted log message with timestamp and color.

Return type:

str

converter()
localtime([seconds]) -> (tm_year,tm_mon,tm_mday,tm_hour,tm_min,

tm_sec,tm_wday,tm_yday,tm_isdst)

Convert seconds since the Epoch to a time tuple expressing local time. When ‘seconds’ is not passed in, convert the current time instead.

default_msec_format = '%s,%03d'
default_time_format = '%Y-%m-%d %H:%M:%S'
formatException(ei)

Format and return the specified exception information as a string.

This default implementation just uses traceback.print_exception()

formatMessage(record)
formatStack(stack_info)

This method is provided as an extension point for specialized formatting of stack information.

The input data is a string as returned from a call to traceback.print_stack(), but with the last trailing newline removed.

The base implementation just returns the value passed in.

formatTime(record, datefmt=None)

Return the creation time of the specified LogRecord as formatted text.

This method should be called from format() by a formatter which wants to make use of a formatted time. This method can be overridden in formatters to provide for any specific requirement, but the basic behaviour is as follows: if datefmt (a string) is specified, it is used with time.strftime() to format the creation time of the record. Otherwise, an ISO8601-like (or RFC 3339-like) format is used. The resulting string is returned. This function uses a user-configurable function to convert the creation time to a tuple. By default, time.localtime() is used; to change this for a particular formatter instance, set the ‘converter’ attribute to a function with the same signature as time.localtime() or time.gmtime(). To change it for all formatters, for example if you want all logging times to be shown in GMT, set the ‘converter’ attribute in the Formatter class.

usesTime()

Check if the format uses the creation time of the record.

deeprm.utils.logging.get_logger(name='deeprm', level=20)[source]

Return a configured logger with colored console output.

Parameters:
  • name (str) – Name of the logger. Defaults to “deeprm”.

  • level (int) – Logging level. Defaults to logging.INFO.

Returns:

Configured logger instance.

Return type:

logging.Logger

deeprm.utils.memory

Memory management utilities for DeepRM.

deeprm.utils.memory.start_mem_watchdog(limit_gb=None, interval_s=10)[source]

Start a daemon thread that exits the current process if RSS exceeds limit.

Parameters:
  • limit_gb (float) – Memory limit in GiB. Defaults to 95% of total RAM. (optional)

  • interval_s (int) – Check interval in seconds. Defaults to 10. (optional)

Returns:

The watchdog thread.

Return type:

threading.Thread

deeprm.utils.activations

Activation function utilities for DeepRM.

deeprm.utils.activations.get_activation_fn(activation)[source]

Returns the activation function module based on the given activation name.

Parameters:

activation (str) – Name of the activation function. Supported values are “relu”, “gelu”, “silu”, and “elu”.

Returns:

Activation function module.

Return type:

torch.nn.Module

Raises:

RuntimeError – If the given activation function name is not supported.

deeprm.utils.check_deps

deeprm.utils.check_deps.check_torch_available()[source]

Checks if PyTorch is available.

Raises:

SystemExit – If PyTorch is not installed, provides instructions for installation.

Returns:

None

deeprm.utils.check_installation

class deeprm.utils.check_installation.Issue(severity: 'str', message: 'str', hint: 'str | None' = None, code: 'str | None' = None)[source]

Bases: object

Parameters:
  • severity (str)

  • message (str)

  • hint (str | None)

  • code (str | None)

severity: str
message: str
hint: str | None = None
code: str | None = None
deeprm.utils.check_installation.collect(require_train=False)[source]
Parameters:

require_train (bool)

Return type:

Tuple[Dict[str, Any], List[Issue]]

deeprm.utils.check_installation.parser(prog=None)[source]
Parameters:

prog (str | None)

Return type:

ArgumentParser

deeprm.utils.check_installation.main(argv=None)[source]
Parameters:

argv (List[str] | None)

Return type:

int

deeprm.utils.check_installation.entry(argv=None)[source]

Entry point for the CLI.

Parameters:

argv (List[str] | None)

Return type:

int