Skip to content

Биология

Constantine Rafikov edited this page Jan 7, 2023 · 3 revisions

Рекомендации для работы в Jupyter Notebook

Обычно исполнители прикрепляю ноутбук к комментарию в задаче. Сейчас мы переносим ноутбуки в отдельный репозиторий: https://github.com/open-genes/open-genes-notebooks

Рекомендации по оформлению ноутбуков

Называйте ноутбуки в таком формате: номер задачи + короткое описание.

Не забывайте описывать то, что вы делаете в каждом блоке.

Исправление проблем

Если ноутбук создавался локально и у вас есть зависимости в проекте, не забывайте добавлять перед импортами команды для установки соответствующих пакетов.

!pip install имя_пакета

Выгрузка данных напрямую из БД Open Genes

Чтобы быстро и просто генерировать датасеты, не обязательно скачивать много TSV файлов с сайта или делать запросы в API, а потом обрабатывать ответ. Вы можете скачать всю базу данных и работать с ней:

Скачать

Самый простой способ работать с БД, ничего не настраивая — установить клиент c визуальным интерфейсом. Например TablePlus.

Подключитесь к БД из скаченного с сайта дампа. Теперь вы можете просматривать содержимое БД в виде таблиц и делать запросы через консоль. А самое главное, вы сможете экспортировать результат в CSV датасет.

Интерфейс TablePlus

Так как все сущности, относящиеся к генам, связаны с генами по реляции через таблицы, вам понадобится использовать оператор JOIN.

Если вы не умеете писать SQL запросы, этот урок в W3 Schools просто и наглядно объясняет как использовать JOIN.

При помощи простого SQL запроса мы сгенерируем датасет из id и HGNC гена и уровня достоверности:

Датасет ген-уровень достоверности

SELECT 
	gene.id, 
	gene.symbol, 
	confidence_level.name_en 
FROM 
	gene_to_confidence_level 
	INNER JOIN confidence_level ON gene_to_confidence_level.confidence_level_id=confidence_level.id 
	INNER JOIN gene ON gene_to_confidence_level.gene_id=gene.id;

Еще примеры

Датасет ген-ортолог

SELECT
	gene.id,
	gene.symbol,
	gene.orthologs,
	model_organism.name_en
FROM
	gene_to_ortholog
	INNER JOIN gene ON gene_to_ortholog.gene_id = gene.id
	INNER JOIN ortholog ON gene_to_ortholog.ortholog_id = ortholog.id
	INNER JOIN model_organism ON ortholog.model_organism_id = model_organism.id;

Датасет ген-причина отбора

SELECT
	gene.id,
	gene.symbol,
	comment_cause.name_en
FROM
	gene_to_comment_cause
	INNER JOIN comment_cause ON gene_to_comment_cause.comment_cause_id = comment_cause.id
	INNER JOIN gene ON gene_to_comment_cause.gene_id = gene.id;

Датасет ген-механизм старения

SELECT DISTINCT
	gene.id,
	gene.symbol,
	aging_mechanism.name_en
FROM
	gene
	LEFT JOIN gene_to_ontology ON gene.id = gene_to_ontology.gene_id
	LEFT JOIN gene_ontology_to_aging_mechanism_visible ON gene_to_ontology.gene_ontology_id = gene_ontology_to_aging_mechanism_visible.gene_ontology_id
	INNER JOIN aging_mechanism ON gene_ontology_to_aging_mechanism_visible.aging_mechanism_id = aging_mechanism.id
AND aging_mechanism.name_en != ''
Clone this wiki locally