Об этом проекте

## Что это такое AlleleForge — это ориентированный на исследования фреймворк для дизайна CRISPR-редактирования генома, который начинается с поврежденного аллеля, а не с гида. Вы предоставляете вариант — запись ClinVar, rsID, HGVS, VCF или необработанные координаты — и конвейер разрешает его, направляет к подходящим методам редактирования, перечисляет потенциальные гиды/pegRNA, оценивает их и возвращает ранжированное меню вариантов правок. Поддерживаются три метода: нуклеаза SpCas9, базовые редакторы (ABE/CBE) и праймированное редактирование (prime editing), которое проект считает своей основной модальностью. Каждый кандидат сопровождается прогнозируемым результатом редактирования, интервалом неопределенности и отчетом об офф-таргет эффектах. Все это доступно через три оболочки над одним ядром: библиотеку Python, интерфейс командной строки `aforge` и веб-интерфейс (бэкенд на FastAPI с фронтендом на Next.js). ## Отчетность по неопределенности и безопасности Прогнозы никогда не представляются в виде простых чисел с плавающей запятой. Каждый числовой результат сопровождается интервалом, методом его получения и флагом `calibrated`, указывающим, был ли интервал подогнан под отложенную выборку покрытия. По умолчанию весовые значения являются эвристическими и помечаются как `calibrated=False`. Рекалибровка интервалов использует методы split-conformal, а калибровка вероятностей — изотоническую регрессию, при этом `empirical_coverage`/ECE отображаются при необходимости. Анализ офф-таргет эффектов учитывает популяцию и гаплотипы, но работает только при явном согласии: проект не поставляет данные gnomAD, поэтому для сканирования со стратификацией по происхождению пользователь должен предоставить источник частот (`--gnomad`, `--haplotypes`, `--patient-vcf`). Без этого сканирование проводится только по референсу, о чем сообщается в выводе. Риск для предков сообщается как наихудший затронутый вариант популяции, а не среднее значение, причем порог переноса применяется идентично для путей популяции и гаплотипа. Номинация объединяет две модели специфичности (CFD и MIT), записывая оба значения для каждого сайта. Кэш офф-таргет результатов между запусками ограничен только поисками по референсу с использованием стандартного скорера. ## Воспроизводимость и инженерный подход Решения по дизайну, задокументированные в README, делают упор на воспроизводимость: результаты с адресацией по содержимому, сплиты и кэши (с повторной проверкой целостности), закрепленные окружения, детерминированные сиды и контрольные точки с хэшированием содержимого. Хэш артефакта `null` по дизайну блокирует загрузку. Модели загружаются через шлюз согласия/лицензии/контрольной суммы; основной бэкенд по умолчанию (Nucleotide Transformer v2 500M) имеет лицензию CC-BY-NC-SA-4.0 и отклоняется для коммерческого использования при загрузке, при этом реальные веса не поставляются. Для бэкенда предусмотрен путь экспорта в ONNX. Крейт на Rust/PyO3 (`aforge_native`) предоставляет опциональные ядра ускорения — поиск FM-index BWT, k-mer seeding, обход гаплотипов и bulged alignment — каждое из которых имеет байтово-идентичный резервный вариант на чистом Python и тесты на соответствие; библиотека устанавливается и работает даже без этого крейта. Примечательно, что бенчмаркинг привел к тому, что FM-index и k-mer seed префильтр были сделаны опциональными, а не стандартными, так как оба были измерены как чистые затраты на уровне сканирования. ## Бенчмарк и статус Публичный бенчмарк CRISPR-Bench предоставляет задачи, замороженные сплиты, метрики, раннер и таблицу лидеров; скрипт исследования калибровки/обобщения регенерирует ECE по каждой задаче, разрыв обобщения между типами клеток и отчеты о рекалибровке. Воспроизводимые фигуры SVG создаются рендерером без зависимостей. Все пятнадцать этапов дорожной карты v0.1.0 отмечены как завершенные (основные типы, доступ к геному, реестр данных, резолвер вариантов, движок офф-таргетов, зоопарк моделей/скоринга, три метода редактирования, дизайнер, отчетность, CLI, веб, бенчмарк, документация). Этапы после v0.1.0 на пути к v1.0 отмечены как «в процессе» или «не начаты», включая закрепление реальных хэшей артефактов и исследование валидации/калибровки. ## Структура установки Основная установка намеренно облегчена (типизированные модели, конфигурация, парсинг model-card) с опциональными дополнениями для `core`, `genome`, `variant`, `cli`, `web`, `ml`, `cas9-rs3`, `docs` и `dev`. Требуется Python ≥ 3.11. Дополнение `variant` требует заголовков клиента PostgreSQL, так как `hgvs` зависит от `psycopg2`; в README отмечено, что ранее это делало невозможным запуск задокументированной команды установки. Проект четко заявляет, что он является исследовательским инструментом, а не медицинским устройством, и что номинации офф-таргет эффектов являются вычислительными и должны быть подтверждены экспериментально.