Загрузка данных
"$OSD_BINARY" --gateway "$GATEWAY" --token "$TOKEN" session send "$SES" "Ты — научный ассистент для автоматической генерации отчетов о клонировании. Твоя задача: обработать ВСЕ папки в текущей рабочей директории и создать отчет '[GENE]_report.docx' для каждого гена.
В каждой подпапке находятся: *.docx (паспорт со словом 'паспорт'), *.png (NGS карта), *.gbk (GenBank).
В корне проекта: EXAMPLE1_report.doc (шаблон для кДНК) и EXAMPLE2_report.doc (шаблон для синтетических генов).
КРИТИЧЕСКИ ВАЖНЫЕ ПРАВИЛА:
1. НЕ используй конкретные имена папок, работай через поиск по расширениям.
2. НЕ делай HTTP-запросы в интернет. Используй встроенный словарь описаний для фичей.
3. ВСЕГДА добавляй блоки try...except в Python-скрипты.
4. Создавай файлы скриптов через команду cat, затем запускай через /NatureUsers/ras/work/open-science/env/bin/python3.
5. Для генов из кДНК ИСПОЛЬЗУЙ ТЕКСТ И СТРУКТУРУ ПРИВЕДЕННОГО НИЖЕ ШАБЛОНА PANK2_report.doc КАК АБСОЛЮТНЫЙ ЭТАЛОН.
6. Для синтетических генов используй структуру EXAMPLE2_report.doc, переименовав 'Выводы' в 'Заключение', а раздел NGS в 'Проверка конструкции с помощью NGS секвенирования'. Заголовок H1: 'Клонирование синтезированного гена [GENE] в вектор [VECTOR]'.
=== ЭТАЛОННЫЙ ТЕКСТ ДЛЯ ГЕНОВ ИЗ кДНК (PANK2_report.doc) ===
Клонирование гена PANK2 из кДНК матрицы «Huh7» в вектор pAAV-CAG-woWPRE
[Разделы: Выделение РНК, Синтез кДНК, Дизайн праймеров, Амплификация ДНК-копии гена из кДНК, Создание конструкции, Трансформация клеток E.coli, Проверка клонов с помощью рестрикционного анализа, Подтверждение конструкции с помощью NGS секвенирования, Заключение]
=== КОНЕЦ ЭТАЛОНА ===
ВЫПОЛНИ ШАГИ ПО ПОРЯДКУ, создав ЕДИНЫЙ скрипт process_all_genes.py:
ШАГ 0: Импорт и подготовка.
Импортируй os, glob, json, docx, docx2txt, Bio.SeqIO, dna_features_viewer, matplotlib.pyplot.
Определи словарь описаний: DESC_DICT = {'promoter': 'Промотор - регуляторная последовательность ДНК.', 'CDS': 'Кодирующая последовательность, содержащая информацию о структуре белка.', 'rep_origin': 'Ориджин репликации (ori) - участок ДНК, с которого начинается репликация.', 'AmpR': 'Ген устойчивости к ампициллину.', 'ITR': 'Инвертированные концевые повторы (ITR), необходимые для упаковки и репликации AAV.', 'default': 'Стандартный генетический элемент.'}
ШАГ 1: Функция определения типа гена и извлечения данных.
def process_passport(passport_file):
Извлеки текст через docx2txt. Определи тип: 'synthetic' если есть 'синтез', 'de novo', 'оптимизир', иначе 'cDNA'. Извлеки имя гена из имени папки (например, 'pAAV-CAG-COX10' -> 'COX10'). Верни словарь.
ШАГ 2: Функция извлечения картинок.
def extract_images(passport_file, out_dir):
Извлеки все inline_shapes из docx и сохрани как img_01.png, img_02.png в out_dir.
ШАГ 3: Функция парсинга GBK и создания карты.
def process_gbk(gbk_file, out_map_path):
Загрузи GBK. Отфильтруй фичи (исключи те, что >= 95% длины). Раскрась: CDS/gene='#8B008B', promoter='#4682B4', ori='#FFD700', Amp/resistance='#228B22', ITR='#808080', остальное='#A9A9A9'. Нарисуй CircularGraphicRecord (14x14), убери заголовок, сохрани plasmid_map.png (dpi=300). Верни список фичей.
ШАГ 4: Функция генерации текста и создания DOCX.
def create_report(gene_name, gene_type, passport_data, img_dir, map_file, features):
1. Выбери базовый текст: для cDNA используй ТОЧНУЮ структуру и текст PANK2_report.doc (заменив PANK2 на gene_name, 1383 на размер из паспорта, pAAV-CAG-woWPRE на вектор из паспорта, праймеры, клон, фрагменты рестрикции, концентрацию, даты, шифр). Для synthetic используй структуру EXAMPLE2_report.doc.
2. Создай DOCX через python-docx. Добавь заголовок H1: 'Клонирование гена [GENE] из кДНК матрицы в вектор [VECTOR]' (cDNA) или 'Клонирование синтезированного гена [GENE] в вектор [VECTOR]' (synthetic).
3. Добавь разделы текста.
4. Вставь РИСУНКИ В ПРАВИЛЬНЫХ МЕСТАХ:
- Рисунок 1 (img_01.png) в раздел 'Проверка клонов с помощью рестрикционного анализа' (cDNA) или 'Проверка синтезированной конструкции' (synthetic). Подпись: 'Рисунок 1. Электрофорез рестрикционных фрагментов успешных клонов и отрицательного контроля.' Ширина 6 дюймов.
- Рисунок 2 (map_file) в раздел 'Подтверждение конструкции с помощью NGS секвенирования' (cDNA) или 'Проверка конструкции с помощью NGS секвенирования' (synthetic). Подпись: 'Рисунок 2. Картирование ридов на референсную последовательность. Верхняя панель: диаграмма распределения количества прочтений в зависимости от их длины; Средняя панель: графическое отображение картирования прочтений на сборку de novo и референс; Нижняя панель: графическое отображение картирования прочтений на референс'. Ширина 7 дюймов.
- Рисунок 3 (img_02.png) после раздела проверки. Подпись: 'Рисунок 3. Проверка качества выделенной ДНК клонов.' Ширина 6 дюймов.
5. Добавь раздел 'Заключение'.
6. Добавь раздел 'Дополнительные материалы: Карта конструкции'. Вставь plasmid_map.png (6 дюймов).
7. Создай таблицу 4 колонки: '№', 'Название элемента', 'Координаты', 'Описание'.
8. Установи ширину колонок: 1.083", 1.083", 1.083", 3.251".
9. Заполни таблицу данными из features, используя DESC_DICT для описаний.
10. Сохрани как '[gene_name]_report.docx'.
ШАГ 5: Главный цикл.
1. Найди все подпапки.
2. Для каждой папки вызови process_passport, extract_images, process_gbk, create_report.
3. Выводи прогресс: 'Обработан ген [GENE] (тип: [cDNA/synthetic])'.
Создай этот скрипт через cat, затем запусти:
/NatureUsers/ras/work/open-science/env/bin/python3 process_all_genes.py
Отчитайся о результате: сколько папок обработано успешно, а где были ошибки." --agent build --wait