Пример #1
0
def _compute_score(model, mirna_transcript, candidate_site, label_encoder,
                   one_hot_encoder):
    """
    predict the score of the duplex passed as argument
    :param model: the trained neural network model
    :param label_encoder: the label encoder to use 
    :param one_hot_encoder: one_hot encoder object to use
    :param mirna_transcript: the mirna transcript sequence
    :param candidate_site: the candidate mbs sequence
    :return: the score according to the model
    """

    # reshape data
    nn_input = np.concatenate(
        (vec.one_hot_encode_sequence(mirna_transcript, label_encoder,
                                     one_hot_encoder),
         vec.one_hot_encode_sequence(candidate_site,
                                     label_encoder,
                                     one_hot_encoder,
                                     mirna=False)))
    nn_input = np.expand_dims(nn_input, axis=0)

    # predict output
    score = model.predict(nn_input)
    return score
Пример #2
0
def test_one_hot_encode_sequence_site_len():
    # check site
    enc0, enc1 = init_encoders()
    assert len(one_hot_encode_sequence('A' * 40, enc0, enc1,
                                       mirna=False)) == 160
    with pytest.raises(SystemExit):
        one_hot_encode_sequence('A' * 41, enc0, enc1, mirna=False)
Пример #3
0
def test_one_hot_encode_sequence_mirna_len():
    # check mirnas
    enc0, enc1 = init_encoders()
    assert len(one_hot_encode_sequence('', enc0, enc1)) == 120
    assert len(one_hot_encode_sequence('U' * 25, enc0, enc1)) == 120
    with pytest.raises(SystemExit):
        one_hot_encode_sequence('U' * 31, enc0, enc1)
Пример #4
0
def test_one_hot_encode_sequence_site_wellformed():
    # must not raise exception
    enc0, enc1 = init_encoders()
    raised = False
    try:
        one_hot_encode_sequence('A' * 40, enc0, enc1, mirna=False)
    except SystemExit:
        raised = True
    assert raised == False
Пример #5
0
def test_one_hot_encode_sequence_site_badformed():
    enc0, enc1 = init_encoders()
    with pytest.raises(SystemExit):
        one_hot_encode_sequence('H' * 40, enc0, enc1, mirna=False)
Пример #6
0
def test_one_hot_encode_sequence_mirna_badformed():
    enc0, enc1 = init_encoders()
    with pytest.raises(SystemExit):
        one_hot_encode_sequence('H' * 20, enc0, enc1)