модель молекулы днк

import random

def generate_random_dna(length: int) -> str:
    """Генерирует случайную последовательность ДНК заданной длины"""
    dna_bases = ['A', 'G', 'T', 'C']
    return ''.join(random.choice(dna_bases) for _ in range(length))

if __name__ == "__main__":
    length = int(input("Введите длину последовательности ДНК: "))
    if length <= 0:
        print("Длина последовательности должна быть положительной.")
    else:
        random_dna = generate_random_dna(length)
        print(f"Случайная последовательность ДНК длиной {length}: {random_dna}")



      ***



import random

def generate_random_dna_with_repeats(length: int) -> str:
    """Генерирует случайную последовательность ДНК заданной длины с короткими повторяющимися элементами"""
    dna_bases = ['A', 'G', 'T', 'C']
    random_dna = ''

    while length > 0:
        # Генерируем случайную длину STR от 2 до 6 нуклеотидов
        str_length = random.randint(2, 6)
        # Генерируем случайное количество повторов STR от 9 до 15 раз
        repeats = random.randint(9, 15)
        # Генерируем случайный мотив STR
        str_motif = ''.join(random.choice(dna_bases) for _ in range(str_length))
        # Добавляем повторяющийся мотив в последовательность ДНК
        random_dna += str_motif * repeats
        length -= str_length * repeats

    return random_dna

if __name__ == "__main__":
    length = int(input("Введите длину последовательности ДНК: "))
    if length <= 0:
        print("Длина последовательности должна быть положительной.")
    else:
        random_dna = generate_random_dna_with_repeats(length)
        print(f"Случайная последовательность ДНК длиной {length} с короткими повторяющимися элементами: {random_dna}")






   ***




import os

# Определяем сопоставление русских букв с уникальными комбинациями AGTC
encoding_map = {
    'а': 'ACG', 'б': 'AGT', 'в': 'TGA', 'г': 'CAG', 'д': 'GTC',
    'е': 'ATG', 'ё': 'TCA', 'ж': 'GAT', 'з': 'CTA', 'и': 'TCG',
    'й': 'GAC', 'к': 'CTC', 'л': 'AAT', 'м': 'GCA', 'н': 'TAA',
    'о': 'CTC', 'п': 'AGC', 'р': 'GAT', 'с': 'TGC', 'т': 'CAG',
    'у': 'ATC', 'ф': 'TGA', 'х': 'GTT', 'ц': 'CCG', 'ч': 'AGT',
    'ш': 'TCC', 'щ': 'TGT', 'ъ': 'TCA', 'ы': 'CAG', 'ь': 'GCC',
    'э': 'ACG', 'ю': 'GCT', 'я': 'TCG'
}

def encode_text(text):
    encoded_text = []
    for char in text:
        if char.lower() in encoding_map:
            encoded_text.append(encoding_map[char.lower()])
        else:
            encoded_text.append(char)  # Оставляем символы, которые не закодированы
    return ''.join(encoded_text)

def main():
    input_file = 'код.txt'
    output_file = 'код_текст.txt'

    if os.path.exists(input_file):
        with open(input_file, 'r', encoding='utf-8') as f:
            text = f.read()

        encoded_text = encode_text(text)

        with open(output_file, 'w', encoding='utf-8') as f:
            f.write(encoded_text)

        print(f"Текст успешно закодирован и сохранен в '{output_file}'!")
    else:
        print(f"Файл '{input_file}' не найден.")

if __name__ == "__main__":
    main()




код.txt


это простой код который мы должны
получить из нашего текста из слов ии
нам надо понять как обычно возникает
код молекул днк в живых клетках
при кодировании больших данных ии
информации моделей  эволюции жизни



ACGCAGCTC AGCGATCTCTGCCAGCTCGAC CTCCTCGTC
CTCCTCCAGCTCGATCAGGAC GCACAG GTCCTCAATGATTAACAG
AGCCTCAATATCAGTTCGCAGGCC TCGCTA TAAACGTCCATGCAGCTC
CAGATGCTCTGCCAGACG TCGCTA TGCAATCTCTGA TCGTCG
TAAACGGCA TAAACGGTCCTC AGCCTCTAATCGCAGGCC CTCACGCTC CTCAGTCAGAGTTAACTC TGACTCCTATAATCGCTCACGATGCAG
CTCCTCGTC GCACTCAATATGCTCATCAAT GTCTAACTC TGA GATTCGTGACAGGTT CTCAATATGCAGCTCACGGTT
AGCGATTCG CTCCTCGTCTCGGATCTCTGAACGTAATCGTCG AGTCTCAATGCCTCCTCGGTT GTCACGTAATAACAGGTT TCGTCG
TCGTAATGACTCGATGCAACGCCGTCGTCG GCACTCGTCATGAATATGGAC 
ACGTGACTCAATGCTCCGTCGTCG GATTCGCTATAATCG

ACGCAGCTC AGCGATCTCTGCCAGCTCGAC CTCCTCGTC
CTCCTCCAGCTCGATCAGGAC GCACAG GTCCTCAATGATTAACAG
AGCCTCAATATCAGTTCGCAGGCC TCGCTA TAAACGTCCATGCAGCTC
CAGATGCTCTGCCAGACG TCGCTA TGCAATCTCTGA TCGTCG
TAAACGGCA TAAACGGTCCTC AGCCTCTAATCGCAGGCC CTCACGCTC
CTCAGTCAGAGTTAACTC TGACTCCTATAATCGCTCACGATGCAG
CTCCTCGTC GCACTCAATATGCTCATCAAT GTCTAACTC TGA
GATTCGTGACAGGTT CTCAATATGCAGCTCACGGTT
AGCGATTCG CTCCTCGTCTCGGATCTCTGAACGTAATCGTCG
AGTCTCAATGCCTCCTCGGTT GTCACGTAATAACAGGTT TCGTCG
TCGTGACTCGATGCAACGCCGTCGTCG GCACTCGTCATGAATATGGAC 
ACGTGACTCAATGCTCCGTCGTCG GATTCGCTATAATCG


кажется мы получили из нашего текста txt
код похожий на кусок молекулы днк
однако реальный код днк это голограмма
в которой много повторов вроде AGAGAGAAGGGTTTAAT
наша программа это кажется не учитывает
но этот код можно доработать при желании


Рецензии