def __init__(self, *args, **kwargs): # pylint: disable=unused-argument """ Initialize ReadAligner. HMM state notation abbreviations: M_t - trusted match; M_u - untrusted match Ir_t - trusted read insert; Ir_u - untrusted read insert Ig_t - trusted graph insert; Ig_u - untrusted graph insert Keyword arguments: filename - a path to a JSON encoded file providing the scoring matrix for the HMM in an entry named 'scoring_matrix' and the transition probabilities for the HMM in an entry named 'transition_probabilities'. If provided the remaining keyword arguments are ignored. (default: None) scoring_matrix - a list of floats: trusted match, trusted mismatch, unstrusted match, untrusted mismatch. (default: ReadAligner.defaultScoringMatrix) transition_probabilities - A sparse matrix as a tuple of six tuples. The inner tuples contain 6, 4, 4, 6, 4, and 4 floats respectively. Transition are notated as 'StartState-NextState': ( ( M_t-M_t, M_t-Ir_t, M_t-Ig_t, M_t-M_u, M_t-Ir_u, M_t-Ig_u), (Ir_t-M_t, Ir_t-Ir_t, Ir_t-M_u, Ir_t-Ir_u ), (Ig_t-M_t, , Ig_t-Ig_t, Ig_t-M_u, Ig_t-Ig_u), ( M_u-M_t, M_u-Ir_t, M_u-Ig_t, M_u-M_u, M_u-Ir_u, M_u-Ig_u), (Ir_u-M_t, Ir_u-Ir_t, Ir_u-M_u, Ir_u-Ir_u ), (Ig_u-M_t, , Ig_u-Ig_t, Ig_u-M_u, Ig_u-Ig_u) ) (default: ReadAligner.defaultTransitionProbabilities) Note: the underlying CPython implementation creates the ReadAligner during the __new__ process and so the class initialization actually occurs there. Instatiation is documented here in __init__ as this is the traditional way. """ _ReadAligner.__init__(self)
def __new__(cls, count_graph, trusted_cov_cutoff, bits_theta, **kwargs): if 'filename' in kwargs: with open(kwargs.pop('filename')) as paramfile: params = json.load(paramfile) scoring_matrix = params['scoring_matrix'] transition_probabilities = params['transition_probabilities'] else: if 'scoring_matrix' in kwargs: scoring_matrix = kwargs.pop('scoring_matrix') else: scoring_matrix = ReadAligner.defaultScoringMatrix if 'transition_probabilities' in kwargs: transition_probabilities = kwargs.pop( 'transition_probabilities') else: transition_probabilities = \ ReadAligner.defaultTransitionProbabilities r = _ReadAligner.__new__(cls, count_graph, trusted_cov_cutoff, bits_theta, scoring_matrix, transition_probabilities) r.graph = count_graph return r
def __new__(cls, count_graph, trusted_cov_cutoff, bits_theta, **kwargs): if 'filename' in kwargs: with open(kwargs.pop('filename')) as paramfile: params = json.load(paramfile) scoring_matrix = params['scoring_matrix'] transition_probabilities = params['transition_probabilities'] else: if 'scoring_matrix' in kwargs: scoring_matrix = kwargs.pop('scoring_matrix') else: scoring_matrix = ReadAligner.defaultScoringMatrix if 'transition_probabilities' in kwargs: transition_probabilities = kwargs.pop( 'transition_probabilities') else: transition_probabilities = \ ReadAligner.defaultTransitionProbabilities readaligner = _ReadAligner.__new__( cls, count_graph, trusted_cov_cutoff, bits_theta, scoring_matrix, transition_probabilities) readaligner.graph = count_graph return readaligner