Files
SciMesh/README.md
T
2026-07-13 22:26:44 +03:00

57 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SciMesh
Минимальный локальный поиск молекул ChEMBL, похожих на гефитиниб (`CHEMBL939`).
Скрипт находит `CHEMBL939` в TSV и использует его `canonical_smiles` как эталон. Затем во втором потоковом проходе по файлу строит Morgan fingerprints (`radius=2`, `fpSize=2048`) и ранжирует остальные валидные SMILES по Tanimoto similarity. Невалидные SMILES и сам `CHEMBL939` пропускаются. В памяти остаются только 20 лучших результатов (или значение `--top`).
## Установка
```bash
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
```
RDKit также можно установить через conda-forge:
```bash
conda install -c conda-forge rdkit
```
## Запуск
```bash
python scimesh.py chembl_37_chemreps.txt -o gefitinib_similarities.csv
```
По умолчанию создаётся CSV с колонками `rank,chembl_id,canonical_smiles,similarity` и выводится тот же top-20 в терминал. Для другого размера выборки:
```bash
python scimesh.py chembl_37_chemreps.txt --top 50 -o top_50.csv
```
Во время поиска статус выводится в `stderr` каждые 100 000 строк: количество обработанных строк, текущая и средняя скорость, прошедшее время и число пропущенных невалидных SMILES. Период можно изменить или отключить:
```bash
python scimesh.py chembl_37_chemreps.txt --progress-every 500000
python scimesh.py chembl_37_chemreps.txt --progress-every 0
```
## Быстрый тест на части базы
Опция `--max-rows` ограничивает второй проход первыми `N` строками TSV. Сам `CHEMBL939` перед этим всё равно находится в отдельном потоковом проходе, поэтому эталон остаётся тем же. Получившийся CSV — это top‑20 только по обработанной части, а не по полной базе.
```bash
python scimesh.py chembl_37_chemreps.txt --max-rows 10000 -o test_results.csv
```
## Изображения структур
Передайте каталог в `--images-dir`, чтобы создать `CHEMBL939_gefitinib.png` с гефитинибом и `top_candidates.png` с сеткой top‑кандидатов. На изображениях кандидатов указаны ранг, ChEMBL ID и Tanimoto similarity.
```bash
python scimesh.py chembl_37_chemreps.txt --images-dir structures
```
Опция `--image-columns` задаёт число структур в строке сетки (по умолчанию `4`).