Биопайтон - Biopython
Оригинальный автор (ы) | Чепмен Б., Чанг Дж.[1] |
---|---|
изначальный выпуск | 2000[1] |
Стабильный выпуск | 1.74[2] / 16 июля 2019 |
Репозиторий | https://github.com/biopython/biopython |
Написано в | Python и C |
Платформа | Кроссплатформенность |
Тип | Биоинформатика |
Лицензия | Лицензия Biopython |
Интернет сайт | биопайтон |
В Биопайтон проект - это Открытый исходный код сбор некоммерческих Python инструменты для вычислительная биология и биоинформатика, созданный международной ассоциацией разработчиков.[1][3][4] Он содержит классы для представления биологические последовательности и аннотации последовательности, и он может читать и писать в различные форматы файлов. Это также позволяет использовать программные средства доступа к сети базы данных биологической информации, например, в NCBI. Отдельные модули расширяют возможности Biopython до выравнивание последовательностей, структура белка, популяционная генетика, филогенетика, мотивы последовательности, и машинное обучение. Biopython - один из нескольких проектов Bio *, направленных на сокращение дублирование кода в вычислительная биология.[5]
История
Разработка Biopython началась в 1999 году, а впервые он был выпущен в июле 2000 года.[6] Он был разработан в те же временные рамки и с аналогичными целями для других проектов, которые добавляли возможности биоинформатики в свои соответствующие языки программирования, включая BioPerl, BioRuby и BioJava. Первыми разработчиками проекта были Джефф Чанг, Эндрю Далке и Брэд Чепмен, хотя на сегодняшний день внесли свой вклад более 100 человек.[7] В 2007 году аналогичный Python проект, а именно PyCogent, был основан.[8]
Первоначальный объем Biopython включал доступ, индексирование и обработку файлов биологической последовательности. Хотя это все еще является основным направлением деятельности, в последующие годы добавленные модули расширили его функциональность, чтобы охватить дополнительные области биологии (см. Ключевые особенности и примеры ).
Начиная с версии 1.62, Biopython поддерживает работу как на Python 3, так и на Python 2.[9]
Дизайн
Везде, где это возможно, Biopython следует соглашениям, используемым языком программирования Python, чтобы упростить пользователям, знакомым с Python. Например, Seq
и SeqRecord
объектами можно управлять с помощью нарезка аналогично строкам и спискам Python. Он также разработан, чтобы быть функционально похожим на другие проекты Bio *, такие как BioPerl.[6]
Biopython может читать и записывать наиболее распространенные форматы файлов для каждой из своих функциональных областей, а его лицензия является разрешающей и совместима с большинством других лицензий на программное обеспечение, что позволяет использовать Biopython в различных программных проектах.[4]
Ключевые особенности и примеры
Последовательности
Ключевым понятием Биопайтона является биологическая последовательность, которая представлена Seq
учебный класс.[10] Биопайтон Seq
Объект похож на строку Python во многих отношениях: он поддерживает нотацию фрагментов Python, может быть объединен с другими последовательностями и является неизменным. Кроме того, он включает методы, специфичные для последовательности, и определяет конкретный используемый биологический алфавит.
>>> # Этот скрипт создает последовательность ДНК и выполняет некоторые типичные манипуляции>>> из Bio.Seq импорт Seq>>> из Био.Алфавит импорт ИЮПАК>>> dna_sequence = Seq('AGGCTTCTCGTA', ИЮПАК.unambiguous_dna)>>> dna_sequenceSeq ('AGGCTTCTCGTA', IUPACUnambiguousDNA ())>>> dna_sequence[2:7]Seq ('GCTTC', IUPACUnambiguousDNA ())>>> dna_sequence.reverse_complement()Seq ('TACGAGAAGCCT', IUPACUnambiguousDNA ())>>> rna_sequence = dna_sequence.расшифровывать()>>> rna_sequenceSeq ('AGGCUUCUCGUA', IUPACUnambiguousRNA ())>>> rna_sequence.переведите()Seq ('RLLV', IUPACProtein ())
Аннотация последовательности
В SeqRecord
класс описывает последовательности, а также информацию, такую как имя, описание и функции в форме SeqFeature
объекты. Каждый SeqFeature
объект определяет тип объекта и его расположение. Типы признаков могут быть «ген», «CDS» (кодирующая последовательность), «repeat_region», «mobile_element» или другие, а положение признаков в последовательности может быть точным или приблизительным.
>>> # Этот сценарий загружает аннотированную последовательность из файла и просматривает часть ее содержимого.>>> из Био импорт SeqIO>>> seq_record = SeqIO.читать('pTC2.gb', 'генбанк')>>> seq_record.имя'NC_019375'>>> seq_record.описание«Плазмида pTC2 Providencia stuartii, полная последовательность».>>> seq_record.Особенности[14]SeqFeature (FeatureLocation (ExactPosition (4516), ExactPosition (5336), strand = 1), type = 'mobile_element')>>> seq_record.seqSeq ('GGATTGAATATAACCGACGTGACTGTTACATTTAGGTGGCTAAACCCGTCAAGC ... GCC', IUPACAmbiguousDNA ())
Ввод и вывод
Biopython может читать и записывать в ряд распространенных форматов последовательностей, включая ФАСТА, FASTQ, GenBank, Clustal, PHYLIP и NEXUS. При чтении файлов описательная информация в файле используется для заполнения членов классов Biopython, таких как SeqRecord
. Это позволяет преобразовывать записи одного формата файла в другие.
Очень большие файлы последовательностей могут превышать ресурсы памяти компьютера, поэтому Biopython предоставляет различные варианты доступа к записям в больших файлах. Они могут быть полностью загружены в память в структурах данных Python, таких как списки или словари, обеспечивая быстрый доступ за счет использования памяти. В качестве альтернативы файлы можно читать с диска по мере необходимости, с меньшей производительностью, но меньшими требованиями к памяти.
>>> # Этот скрипт загружает файл, содержащий несколько последовательностей, и сохраняет каждую в другом формате.>>> из Био импорт SeqIO>>> геномы = SeqIO.разбирать('salmonella.gb', 'генбанк')>>> за геном в геномы:... SeqIO.записывать(геном, геном.я бы + '.fasta', 'fasta')
Доступ к онлайн-базам данных
С помощью модуля Bio.Entrez пользователи Biopython могут загружать биологические данные из баз данных NCBI. Каждая из функций, предоставляемых Entrez поисковая система доступна через функции этого модуля, включая поиск и загрузку записей.
>>> # Этот скрипт загружает геномы из базы данных NCBI Nucleotide и сохраняет их в файле FASTA.>>> из Био импорт Entrez>>> из Био импорт SeqIO>>> выходной файл = открыто('all_records.fasta', "ш")>>> Entrez.электронное письмо = '[email protected]'>>> Records_to_download = ['FO834906.1', 'FO203501.1']>>> за record_id в Records_to_download:... ручка = Entrez.efetch(db='нуклеотид', я бы=record_id, rettype='gb')... seqRecord = SeqIO.читать(ручка, формат='gb')... ручка.Закрыть()... выходной файл.записывать(seqRecord.формат('fasta'))
Филогения
Модуль Bio.Phylo предоставляет инструменты для работы и визуализации филогенетические деревья. Для чтения и записи поддерживаются различные форматы файлов, в том числе Newick, NEXUS и phyloXML. Общие манипуляции с деревом и обходы поддерживаются через Дерево
и Clade
объекты. Примеры включают преобразование и сопоставление файлов дерева, извлечение подмножеств из дерева, изменение корня дерева и анализ функций ветвей, таких как длина или оценка.[12]
Деревья с корнями можно рисовать ASCII или используя matplotlib (см. рисунок 1), а Graphviz библиотеку можно использовать для создания нерутированных макетов (см. рисунок 2).
Диаграммы генома
Модуль GenomeDiagram предоставляет методы визуализации последовательностей в Biopython.[14] Последовательности можно рисовать в линейной или круговой форме (см. Рисунок 3), и поддерживаются многие выходные форматы, в том числе PDF и PNG. Диаграммы создаются путем создания треков и последующего добавления к ним функций последовательности. Перебирая объекты последовательности и используя их атрибуты, чтобы решить, добавляются ли они к дорожкам диаграммы и каким образом, можно в значительной степени контролировать внешний вид окончательной диаграммы. Между разными дорожками можно провести перекрестные ссылки, что позволяет сравнивать несколько последовательностей на одной диаграмме.
Макромолекулярная структура
Модуль Bio.PDB может загружать молекулярные структуры из PDB и ммCIF files и был добавлен в Biopython в 2003 году.[15] В Структура
объект является центральным для этого модуля, и он организует структуру макромолекул в иерархическом порядке: Структура
объекты содержат Модель
объекты, которые содержат Цепь
объекты, которые содержат Остаток
объекты, которые содержат Атом
объекты. Неупорядоченные остатки и атомы получают свои классы, Неупорядоченный остаток
и DisorderedAtom
, которые описывают их неопределенное положение.
Используя Bio.PDB, можно перемещаться по отдельным компонентам файла макромолекулярной структуры, например, исследовать каждый атом в белке. Могут быть выполнены общие анализы, такие как измерение расстояний или углов, сравнение остатков и расчет глубины остатков.
Популяционная генетика
Модуль Bio.PopGen добавляет поддержку Biopython для Genepop, программного пакета для статистического анализа популяционной генетики.[16] Это позволяет анализировать Равновесие Харди – Вайнберга, нарушение равновесия по сцеплению и другие особенности населения частоты аллелей.
Этот модуль также может выполнять популяционное генетическое моделирование с использованием коалесцентная теория с программой fastsimcoal2.[17]
Оболочки для инструментов командной строки
Многие модули Biopython содержат оболочки командной строки для часто используемых инструментов, что позволяет использовать эти инструменты из Biopython. Эти обертки включают ВЗРЫВ, Clustal, PhyML, EMBOSS и SAMtools. Пользователи могут создать подкласс общего класса оболочки, чтобы добавить поддержку любого другого инструмента командной строки.
Смотрите также
Рекомендации
- ^ а б c Чепмен, Брэд; Чанг, Джефф (август 2000 г.). «Биопайтон: инструменты Python для вычислительной биологии». Информационный бюллетень ACM SIGBIO. 20 (2): 15–19. Дои:10.1145/360262.360268. S2CID 9417766.
- ^ «Выпущен Biopython 1.74». Открытый фонд биоинформатики. 16 июля 2019.
- ^ Петух, Питер JA; Антао, Тьяго; Чанг, Джеффри Т; Чепмен, Брэд А; Кокс, Саймон Дж; Далке, Андрей; Фридберг, Иддо; Hamelryck, Томас; Кауфф, Франк; Вильчинский, Бартек; де Хун, Мишель Дж. Л. (20 марта 2009 г.). «Biopython: свободно доступные инструменты Python для вычислительной молекулярной биологии и биоинформатики». Биоинформатика. 25 (11): 1422–3. Дои:10.1093 / биоинформатика / btp163. ЧВК 2682512. PMID 19304878.
- ^ а б Посетите веб-сайт Biopython, чтобы узнать о других документы, описывающие Биопайтон, и список из более чем ста публикации с использованием / цитированием Biopython.
- ^ Мангалам, Гарри (сентябрь 2002 г.). «Наборы инструментов Bio * - краткий обзор». Брифинги по биоинформатике. 3 (3): 296–302. Дои:10.1093 / bib / 3.3.296. PMID 12230038.
- ^ а б Чепмен, Брэд (11 марта 2004 г.), Проект Biopython: философия, функциональность и факты (PDF), получено 11 сентября 2014
- ^ Список участников Biopython, заархивировано из оригинал 11 сентября 2014 г., получено 11 сентября 2014
- ^ Рыцарь, R; Максвелл, П; Бирмингем, А; Карнес, Дж; Caporaso, J.G .; Easton, B.C .; Итон, М. Хамади, М; Линдси, H; Лю, Z; Лозупон, С; Макдональд, Д; Робсон, М; Саммут, Р; Смит, S; Wakefield, M. J .; Видманн, Дж; Викман, S; Уилсон, S; Инь, H; Хаттли, Г. А. (2007). "Py Убедительный: Набор инструментов для понимания последовательности ". Геномная биология. 8 (8): R171. Дои:10.1186 / gb-2007-8-8-r171. ЧВК 2375001. PMID 17708774.
- ^ Чепмен, Брэд, Установка Биопайтона, получено 11 сентября 2014
- ^ Чанг, Джефф; Чепмен, Брэд; Фридберг, Иддо; Hamelryck, Томас; де Хун, Мишель; Петух, Питер; Антао, Тьяго; Талевич, Эрик; Вильчинский, Бартек (29 мая 2014 г.), Руководство и поваренная книга Biopython, получено 28 августа 2014
- ^ Zmasek, Christian M; Чжан, Цин; Е, Южень; Годзик, Адам (24 октября 2007 г.). «Удивительная сложность предковой сети апоптоза». Геномная биология. 8 (10): R226. Дои:10.1186 / gb-2007-8-10-r226. ЧВК 2246300. PMID 17958905. Получено 9 сентября 2014.
- ^ Талевич, Эрик; Инверго, Брэндон М; Петух, Питер JA; Чепмен, Брэд А. (21 августа 2012 г.). «Bio.Phylo: единый инструментарий для обработки, анализа и визуализации филогенетических деревьев в Biopython». BMC Bioinformatics. 13 (209): 209. Дои:10.1186/1471-2105-13-209. ЧВК 3468381. PMID 22909249. Получено 9 сентября 2014.
- ^ «Плазмида pKPS77 штамма Klebsiella pneumoniae KPS77, полная последовательность». NCBI. Получено 10 сентября 2014.
- ^ Причард, Лейтон; Уайт, Дженнифер А; Берч, Пол RJ; Тот, Ян К. (март 2006 г.). «GenomeDiagram: пакет Python для визуализации крупномасштабных геномных данных». Биоинформатика. 22 (5): 616–617. Дои:10.1093 / биоинформатика / btk021. PMID 16377612.
- ^ Hamelryck, Томас; Мандерик, Бернар (10 мая 2003 г.). "Анализатор файлов PDB и класс структуры, реализованный на Python". Биоинформатика. 19 (17): 2308–2310. Дои:10.1093 / биоинформатика / btg299. PMID 14630660. Получено 10 сентября 2014.
- ^ Руссе, Франсуа (январь 2008 г.). «GENEPOP'007: полная переработка программного обеспечения GENEPOP для Windows и Linux». Ресурсы по молекулярной экологии. 8 (1): 103–106. Дои:10.1111 / j.1471-8286.2007.01931.x. PMID 21585727. S2CID 25776992.
- ^ Excoffier, Лоран; Фолль, Матье (1 марта 2011 г.). «fastsimcoal: непрерывный симулятор геномного разнообразия при произвольно сложных сценариях эволюции». Биоинформатика. 27 (9): 1332–1334. Дои:10.1093 / биоинформатика / btr124. PMID 21398675. Получено 11 сентября 2014.