Открыть главное меню
Главная
Случайная
Войти
Настройки
О hpluswiki
Отказ от ответственности
hpluswiki
Найти
Редактирование:
Проект: парсинг 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:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
Отменить
Справка по редактированию
(в новом окне)
Шаблон, используемый на этой странице:
Шаблон:Запрос экспертизы
(
править
)