Фенотип определяется как наблюдаемый характер или признак, проявляемый организмом в отношении определенного химического вещества или окружающей среды. Фенотип микрочипа одновременно измеряет реакцию организма на большее количество химических веществ и окружающей среды и анализирует данные, чтобы понять генную мутацию, генные признаки и т. Д.
Biopython предоставляет отличный модуль Bio.Phenotype для анализа фенотипических данных. Давайте узнаем, как анализировать, интерполировать, извлекать и анализировать данные микрочипов фенотипа в этой главе.
анализ
Данные микрочипа фенотипа могут быть в двух форматах: CSV и JSON. Biopython поддерживает оба формата. Анализатор Biopython анализирует данные микрочипа фенотипа и возвращает их в виде коллекции объектов PlateRecord. Каждый объект PlateRecord содержит коллекцию объектов WellRecord. Каждый объект WellRecord содержит данные в формате 8 строк и 12 столбцов. Восемь строк представлены от A до H, а 12 столбцов представлены от 01 до 12. Например, 4- й ряд и 6- й столбец представлены D06.
Давайте разберемся с форматом и концепцией разбора на следующем примере:
Шаг 1 — Загрузите файл Plates.csv, предоставленный командой Biopython — https://raw.githubusercontent.com/biopython/biopython/master/Doc/examples/Plates.csv
Шаг 2 — Загрузите модуль фенотипа, как показано ниже —
>>> from Bio import phenotype
Шаг 3 — Вызвать метод phenotype.parse, передав файл данных и опцию формата («pm-csv»). Он возвращает итеративный PlateRecord, как показано ниже,
>>> plates = list(phenotype.parse('Plates.csv', "pm-csv")) >>> plates [PlateRecord('WellRecord['A01'], WellRecord['A02'], WellRecord['A03'], ..., WellRecord['H12']'), PlateRecord('WellRecord['A01'], WellRecord['A02'], WellRecord['A03'], ..., WellRecord['H12']'), PlateRecord('WellRecord['A01'], WellRecord['A02'], WellRecord['A03'], ..., WellRecord['H12']'), PlateRecord('WellRecord['A01'], WellRecord['A02'],WellRecord['A03'], ..., WellRecord['H12']')] >>>
Шаг 4 — Доступ к первой табличке из списка, как показано ниже —
>>> plate = plates[0] >>> plate PlateRecord('WellRecord['A01'], WellRecord['A02'], WellRecord['A03'], ..., WellRecord['H12']') >>>
Шаг 5 — Как обсуждалось ранее, пластина содержит 8 рядов, каждый из которых содержит 12 предметов. Доступ к WellRecord можно получить двумя способами, как указано ниже:
>>> well = plate["A04"] >>> well = plate[0, 4] >>> well WellRecord('(0.0, 0.0), (0.25, 0.0), (0.5, 0.0), (0.75, 0.0), (1.0, 0.0), ..., (71.75, 388.0)') >>>
Шаг 6 — Каждая скважина будет иметь серии измерений в разные моменты времени, и к ней можно получить доступ, используя цикл for, как указано ниже —
>>> for v1, v2 in well: ... print(v1, v2) ... 0.0 0.0 0.25 0.0 0.5 0.0 0.75 0.0 1.0 0.0 ... 71.25 388.0 71.5 388.0 71.75 388.0 >>>
интерполирование
Интерполяция дает более глубокое понимание данных. Biopython предоставляет методы для интерполяции данных WellRecord для получения информации о промежуточных временных точках. Синтаксис похож на индексирование списка и поэтому прост в изучении.
Чтобы получить данные за 20,1 часа, просто передайте в качестве значений индекса, как указано ниже —
>>> well[20.10] 69.40000000000003 >>>
Мы можем передать начальный и конечный момент времени, как указано ниже —
>>> well[20:30] [67.0, 84.0, 102.0, 119.0, 135.0, 147.0, 158.0, 168.0, 179.0, 186.0] >>>
Приведенная выше команда интерполирует данные от 20 часов до 30 часов с интервалом в 1 час. По умолчанию интервал составляет 1 час, и мы можем изменить его на любое значение. Например, давайте дадим интервал 15 минут (0,25 часа), как указано ниже —
>>> well[20:21:0.25] [67.0, 73.0, 75.0, 81.0] >>>
Анализировать и извлекать
Biopython предоставляет метод, пригодный для анализа данных WellRecord с использованием сигмоидальных функций Gompertz, Logistic и Richards. По умолчанию метод fit использует функцию Gompertz. Нам нужно вызвать метод fit объекта WellRecord, чтобы выполнить задачу. Кодировка выглядит следующим образом —
>>> well.fit() Traceback (most recent call last): ... Bio.MissingPythonDependencyError: Install scipy to extract curve parameters. >>> well.model >>> getattr(well, 'min') 0.0 >>> getattr(well, 'max') 388.0 >>> getattr(well, 'average_height') 205.42708333333334 >>>
Biopython зависит от модуля scipy, чтобы выполнить расширенный анализ. Он будет вычислять минимальные, максимальные и средние значения высоты без использования модуля scipy.