Редактирование:
Проект: парсинг UniProt
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
[https://www.uniprot.org/ UniProt] — база знаний о протеинах. Она связывает сами протеины с последовательностями генов, кодирующими их. Она сохранена в одном маленьком текстовом файле и я решил, что пример парсинга этого файла на Python может быть полезен. Структурно, файл состоит из описания, заголовка таблицы, контента и лицензии. Мы отделяем от файла всё лишнее, потому, что так его можно читать построчно. {{ Запрос экспертизы | text=Я не очень хорошо понимаю, почему в заголовке базы [https://www.uniprot.org/ UniProt] говорят только о первой хромосоме. | qualification=Биолог }} <nowiki>− Не помню откуда я вышел на файлы, но для каждой хромосомы существует свой отдельный файл вида https://www.uniprot.org/docs/humchr<nn>.txt, где <nn> ::= [0-9]{2} | [xy]</nowiki> [[Участник:Denis.s|Denis.s]] ([[Обсуждение участника:Denis.s|обсуждение]]) == Selenium == === Пример экспорта в JSON === <syntaxhighlight lang="python" line> #!/usr/bin/env python3 """ Read and convert humchr01.txt items. """ import re import json def main(): """ Load processed txt file with no header and license, scan, build JSON data, export. """ gene_filename = "humchr01_for_splitting.txt" with open(gene_filename, 'r') as gene_file: original_genes = gene_file.read().splitlines() new_genes = [] for gene in original_genes: new_gene = {} new_gene['gene_name'], remainder = re.split("\s+", gene, maxsplit=1) new_gene['chromosomal_position'], remainder = re.split("\s+", remainder, maxsplit=1) new_gene['swiss_prot_ac'], remainder = re.split("\s+", remainder, maxsplit=1) new_gene['swiss_prot_ename'], remainder = re.split("\s+", remainder, maxsplit=1) mim_code = "" description = "" if re.match(r'^\d+', remainder): new_gene['mim_code'], description = re.split("\s+", remainder, maxsplit=1) else: new_gene['description'] = remainder new_genes.append(new_gene) with open("humchr01.json", "w") as humchr_json_file: json.dump(new_genes, humchr_json_file, ensure_ascii=False, sort_keys=True, indent=4) if __name__ == '__main__': main() </syntaxhighlight> === Пример экспорта в CSV === Tab-delimited. <syntaxhighlight lang="python" line> #!/usr/bin/env python3 """ Read and convert humchr01.txt items. """ import re import csv def main(): """ Load processed txt file with no header and license, scan, build CSV data, export. """ gene_filename = "humchr01_for_splitting.txt" with open(gene_filename, 'r') as gene_file: original_genes = gene_file.read().splitlines() new_genes = [] for gene in original_genes: new_gene = {} new_gene['gene_name'], remainder = re.split("\s+", gene, maxsplit=1) new_gene['chromosomal_position'], remainder = re.split("\s+", remainder, maxsplit=1) new_gene['swiss_prot_ac'], remainder = re.split("\s+", remainder, maxsplit=1) new_gene['swiss_prot_ename'], remainder = re.split("\s+", remainder, maxsplit=1) new_gene['mim_code'] = "" new_gene['description'] = "" if re.match(r'^\d+', remainder): new_gene['mim_code'], description = re.split("\s+", remainder, maxsplit=1) else: new_gene['description'] = remainder new_genes.append(new_gene) with open("humchr01.csv", 'wb') as csv_file: writer = csv.writer(csv_file, delimiter='\t', quotechar='\\', quoting=csv.QUOTE_MINIMAL) for gene in new_genes: writer.writerow([ gene['gene_name'], gene['chromosomal_position'], gene['swiss_prot_ac'], gene['swiss_prot_ename'], gene['mim_code'], gene['description'] ]) if __name__ == '__main__': main() </syntaxhighlight> == [[Racket]] == === Сохранение отпарсенного в [[Tabtree]] === == Заметка о лицензии == UniProt хотят, чтобы на них ссылались в научных работах. На образец можно посмотреть, [https://www.uniprot.org/help/publications пройдя по ссылке]. === Creative commons === Вот сам текст лицензии из файла UniProt. "Copyrighted by the UniProt Consortium, see https://www.uniprot.org/terms. Distributed under the Creative Commons Attribution (CC BY 4.0) License" [https://creativecommons.org/licenses/by/4.0/ Текст и описание] лицензии на сайте Creative Commons. [[Категория:Скрипты]]
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «hpluswiki» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Hpluswiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
Отменить
Справка по редактированию
(в новом окне)
Шаблон, используемый на этой странице:
Шаблон:Запрос экспертизы
(
править
)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
История
Ещё
Навигация
Начало
Свежие правки
Случайная страница
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице
Дополнительно
Как редактировать
Вики-разметка
Telegram
Вконтакте
backup