0
0 Комментариев
Probabilities = {'A': 0.25, 'C': 0.25, 'G': 0.25, 'T': 0.25}
def WeightedDie(Probabilities):
    import random
    r = random.uniform(0, 1)
    letter = ''
    for symbol in "ACGT":
    if r >= 0 and r <= Probabilities['A']:
        letter = 'A'
    elif r >= Probabilities['A'] and r <= (Probabilities['A'] + Probabilities['C']):
        letter = 'C'
    elif r >= (Probabilities['A'] + Probabilities['C']) and r <= (Probabilities['A'] + Probabilities['C'] + Probabilities['G']):
        letter = 'G'
    elif r >= (Probabilities['A'] + Probabilities['C'] + Probabilities['G']) and r <= (Probabilities['A'] + Probabilities['C'] + Probabilities['G'] + Probabilities['T']):
        letter = 'T'
    return letter

Мне нужна функция для случайного выбора событий с заданными вероятностями. Когда я задаю интервалы, я получаю данные по ключу. Однако, ключи могут по-разному называться, не обязательно ACGT, и тогда моя функция работать не будет. Вот в этом и проблема.


Добавить комментарий