Полиморфизм для начинающих / Хабр

Категория: Разное

Генетический полиморфизм являет собой состояние, при котором отмечается явное разнообразие генов, но несмотря на это частота наименее распространённого гена в популяции будет составлять более 1% Поддержание полиморфизма происходит благодаря постоянного пере-комбинирования и мутирования генов. Согласно результатам последних исследований, проведённых учеными-генетиками, генетический полиморфизм имеет весьма широкую распространённость, ведь комбинирование гена может доходить до нескольких миллионов.

Мутирование генов

Фото: ДНК. Автор: vchal/shutterstock

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

Все мутации принято подразделять на следующие виды:

  • генные – приводящие к переменам последовательности нуклеотидов ДНК в каком-либо отдельном гене, что приводит к изменениям также и в РНК и в белке, кодируемом данным геном. Генные мутирования также подразделяются на 2 категории рецессивные и доминантными. Данный вид мутаций может привести к развитию новых признаков, поддерживающих либо подавляющих жизнедеятельность живого существа.

  • генеративное мутирование отражается на половых клетках и передаются при сексуальном контакте;

  • соматическое мутирование не отражается на половых клетках, у животных и людей не передаётся от родителей к детям, а у растений может наследоваться в случае вегетативного размножении;

  • геномное мутирование отражается на изменении численности хромосом в клеточном кариотипе;

  • хромосомное мутирование напрямую затрагивает процесс перестройки структурности хромосом, изменения положений их участков, происходящих из-за разрывов либо выпадением отдельных участков.

К мутированию генов, а, значит, и к повышению распространённости недугов имеющих наследственную природу могут привести следующие составляющие современной жизни:

  • Техногенные катастрофические происшествия;

  • Загрязнение экологической среды (применение пестицидов, добыча и использование горючего, применение средств бытовой химии);

  • Использование лекарственных средств и пищевых добавок, воздействующих на ДНК и РНК;

  • Приём в пищу генетически преобразованных продуктов питания;

  • Длительное, постоянное, либо особенно сильное кратковременное радиационное излучение.

Мутирование генов – процесс весьма непредсказуемый. Это связано с тем,что заранее предугадать, какой ген, каким образом и в какую сторону мутирует – предугадать практически невозможно. Мутирование генов протекает сам по себе, изменяя наследственные факторы и, на примере такого генетически обусловленного заболевания как тромбофилия, вполне очевидно, что далеко не всегда эти преобразования идут на пользу.

Виды полиморфизма

Фото: хромосомы. Автор: Rost9/shutterstock

Среди учёных-генетиков принято различать преходящий и сбалансированный генный полиморфизм. Преходящий полиморфизм отмечается в популяции в том случае, если имеет место замена аллеля, бывшего ранее обыкновенным, иными аллелями, наделяющими своих носителей более высоким уровнем приспособленности. В процессе протекания преходящего полиморфизма отмечается направленное сдвигание (исчисляется в %) различных генотипных форм. Данный вид генного полиморфизма — являет собою основной путь эволюционного процесса. В качестве примера преходящего полиморфизма можно привести процесс индустриального механизма. Таким образом, в результате ухудшения экологического состояния в ряде крупнейших мегаполисов мира более чем у 80-ти разновидностей бабочек, появились более темные расцветки. Это произошло по причине постоянного загрязнения стволов деревьев и последующего уничтожения более светлых особей бабочек насекомоядными птицами. Позже выяснилось, что более темная расцветка тела у бабочек появилась по причине генного мутирования, вызванного загрязнением окружающей среды.

Сбалансированный генный полиморфизм объясняется отсутствием сдвига численного соотношения различных форм и генотипов среди популяций, проживающих в не изменяющихся условиях окружающей среды. Однако процентное соотношение форм либо остается неизменным, либо может варьироваться вокруг какой-либо не изменяющейся величины. В отличие от преходящего генного полиморфизма, сбалансированные полиморфические явления — это неотъемлемая часть непрекращающегося эволюционного процесса.

Генный полиморфизм и состояние здоровья

Фото: современный человек. Автор: chombosan/shutterstock

Современные медицинские исследования доказали, что процесс внутриутробного развития ребёнка может значительно увеличивать вероятность тромбогенных сдвигов.

Полиморфизм — что это? Генетический полиморфизм

Особенно это ожидаемо в том случае, если женщина имеет предрасположенность либо страдает сама генетическим заболеванием. Чтобы беременность и процесс рождения долгожданного малыша проходили без серьёзных осложнений, врачи рекомендуют поднять свою родословную на предмет того, страдали ли близкие или более дальние родственники будущей мамы наследственно обусловленными заболеваниями.

На сегодняшний день стало известно, что гены такого передающегося по наследству заболевания как тромбофилия, способствуют развитию тромбофлебита и тромбоза во время вынашивания ребёнка, родовой деятельности и послеродового периода.

Кроме того полиморфические изменения генов фактора протромбина FII могут стать причиной неизлечимого бесплодия, развитию наследственно обусловленных пороков развития и даже внутриутробной гибели младенца ещё до рождения либо вскоре после рождения. Кроме того, данное генное преобразование в разы увеличивает риск развития таких недугов, как: тромбофлебит, тромбоэмболия, атеросклероз, тромбоз, инфаркт миокарда и ишемическое поражение сосудов сердца.

Генный полиморфизм фактора Лейдена FV также может значительно усложнить процесс беременности, так как он способен провоцировать привычный выкидыш и способствовать развитию генетических нарушений у ещё нерождённого ребёнка. Кроме того, он может вызвать наступление инфаркта либо инсульта в юном возрасте либо способствовать развитию тромбоэмболии;

Мутирование генов PAI-1 уменьшает активность противостоящей свертыванию системы, по этой причине его принято считать одним из важнейших факторов нормального протекания процесса свёртывания крови.

Развитие таких недугов как тромбоз либо тромбоэмболия – весьма опасны при беременности. Без профессионального медицинского вмешательства они нередко приводят к смертности во время родов как матери, так и ребёнка. Кроме того, роды при наличии этих недугов в большинстве случаев бывают преждевременными.

Когда необходимо сдавать кровь с целью выявления генетических нарушений?

Фото: Сдача анализов. Автор: Alexander Raths/shutterstock

Иметь некоторые сведения о предрасположенности к тем или иным генетическим заболеваниям рекомендуется каждому человеку даже если он не планирует беременность. Подобные знания могут оказать бесценную помощь в профилактике и лечении ускоренного тромбобразования, инфарктов, инсультов, ТЭЛА и других недугов. Однако на сегодняшний день значение информации о своём генетическом фонде играет огромную роль в лечении кардиологических недугов и в акушерском деле.

Таким образом, где назначение анализа на выявление тромбофилии и гемофилии играет особую роль в следующих случаях:

  • При планировании беременности;

  • При наличии патологических осложнений во время беременности;

  • Лечении заболеваний сосудов, сердца, артерий и вен;

  • Выяснении причин выкидышей;

  • Лечении бесплодия;

  • При подготовке к плановым операциям;

  • В лечении онкологических новообразований;

  • При лечении гормональных нарушений;

  • Лицам, страдающим ожирением;

  • При лечении эндокринологических болезней;

  • При необходимости принимать контрацептивные составы;

  • Лицам, занимающимся особенно тяжёлым физическим трудом и пр.

Своевременное развитие медицины позволяет заблаговременно выявить генетические аномалии, определить их полиморфизм и возможную предрасположенность к развитию генетических заболеваний путем проведения сложнейшего анализа крови. Хотя при проведении данного анализа в платных медицинских центрах подобное обследование может требовать некоторых затрат, проведение такого анализа может весьма облегчить лечение либо предупредить развитие множества генетических нарушений.

Обновлено: 2017-09-17 22:47:37

Автор: maksim

Интересное

В этом уроке я расскажу Вам о трех основных понятиях Объектно-Ориентированного Программирования: об Инкапсуляции, Наследовании, Полиморфизме; И научу Вас применять их в разработке.

Инкапсуляция

Инкапсуляция — свойство языка программирования, позволяющее объединить и защитить данные и код в объект и скрыть реализацию объекта от пользователя (программиста). При этом пользователю предоставляется только спецификация (интерфейс) объекта.

Иными словами при работе с грамотно спроектированным классом мы можем пользоваться только его методами, не вникая в то, как они устроены и как они работают с полями класса. Речь идет о ситуации, когда мы работаем с классом, разработанным другими программистами. Мы же просто пользуемся уже реализованным функционалом.

Приведем другой пример. Принципы инкапсуляции как скрытия внутренней реализации заложены в любой функции PHP. Возможно, вам уже известна функция strpos() для работы со строками из стандартной библиотеки PHP. Эта функция ищет в строке заданную последовательность символов и возвращает ее позицию в виде числа. Если задуматься над реализацией этой функции, то можно предположить, что нам потребуется в цикле просматривать каждый символ от начала строки на совпадение с начальным символом искомой последовательности и в случае такового сравнивать следующие два символа и т. д. Но нам как программистам нет необходимости задумываться над этим и вникать в тонкости реализации данной функции.

Объясните что такое полиморфизм простыми словами ?

Нам достаточно знать параметры, которые она принимает, и формат возвращаемого значения. Функция strpos() инкапсулирует в себе решение задачи поиска подстроки, предлагая нам лишь внешний интерфейс для ее использования.

Аналогичным образом правильно спроектированные классы скрывают свою внутреннюю реализацию, предоставляя внешним пользователям интерфейс в виде набора методов.

В языке PHP концепция инкапсуляции реализована в виде специальных модификаторов доступа к полям и методам классов. Об этом мы поговорим далее.

Наследование

Наследование — механизм объектно-ориентированного программирования, позволяющий описать новый класс на основе уже существующего (родительского), при этом свойства и функциональность родительского класса заимствуются новым классом.

Давайте приведем пример наследования из реальной жизни. В качестве класса можно взять геометрическую фигуру. При этом мы не уточняем, какой конкретно фигура должна быть. Какие свойства фигуры можно выделить? Предположим, она обладает цветом. Тогда в классе, описывающем фигуру, должно быть соответствующее поле строкового типа, задающее цвет фигуры. Также любая геометрическая фигура обладает площадью. Пусть площадь будет вторым свойством нашего класса.

Теперь предположим, что нашей программе требуется работать с конкретными геометрическими фигурами: квадратами и треугольниками, в том числе с их геометрическим положением на плоскости. Очевидно, что описание треугольников и квадратов с помощью класса Фигура будет недостаточным, потому что она не хранит информацию о геометрическом положении. Поэтому нам потребуется ввести еще два класса: Квадрат и Треугольник . При этом допустим, что в нашей программе нам также потребуются цвета и площади фигур. Эта ситуация как раз и требует использования наследования. Потому что любой квадрат и треугольник в программе заведомо является фигурой, т. е. имеет цвет и площадь. В то же время каждая фигура требует дополнительных данных (помимо цвета и площади) для своего описания, что решается вводом двух дополнительных классов для квадратов и треугольников, которые наследуются от класса Фигура.

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

Достаточно указать, что упомянутые классы наследуются от класса Фигура.

Теперь давайте рассмотрим еще один пример, более приближенный к реалиям веб-программистов. Сейчас в Интернете огромную популярность завоевали различные блоги. Фактически блог — это просто набор статей. И ключевой сущностью при разработке блога является именно статья.

А теперь давайте представим, что в нашем будущем блоге статьи могут иметь различные типы. Для начала остановимся на двух типах: обычная статья-заметка и новостная статья. Для новостной статьи важна дата ее публикации, ведь она несет в себе некоторую конкретную новость.

Чтобы реализовать эту ситуацию в PHP, нам потребуется определить два класса: класс для обычной статьи-заметки и класс для новостной статьи. При этом пусть новостная статья расширяет возможности обычной статьи, т. е. наследуется от нее. Для наследования классов в PHP используется ключевое слово extends.

class { … // содержимое класса } class { … // содержимое класса }

Приведенный код определяет класс NewsArticle как наследника Article. Класс Article в свою очередь является родительским для класса NewsArticle. Это значит, что поля и методы класса Article будут также присутствовать в классе NewsArticle , и заново их определять не нужно.

С помощью наследования можно выстраивать целую иерархию классов, наследуя один от другого. В то же время у любого класса может быть только один родитель:

Иногда у нас может появиться необходимость переопределить один из методов родительского класса. Давайте еще раз приведем реализацию класса Article:

Предположим, что вывод новостной статьи должен отличаться от представления обычной статьи, и мы должны дополнительно выводить время публикации новости. При этом в классе Article уже существует метод view(), отвечающий за вывод статьи. Можно поступить двумя способами. В первом случае можно придумать новый метод в классе NewsArticle, например, с именем viewNews() специально для вывода новости. Однако правильнее использовать одинаковые методы для выполнения схожих действий в наследуемых классах. Поэтому будет лучше, если метод для вывода новости в классе NewsArticle будет называться так же, как и в родительском классе — view(). Для реализации такой логики в PHP существует возможность переопределять родительские методы, т. е. задавать в дочерних классах методыс названиями, совпадающими в родительских классах. Реализация этих методов в родительских классах в таком случае становится неактуальной для класса-потомка. Давайте приведем пример класса NewsArticle с переопределенным методом view():

В приведенном коде используется функция strftime(), которая позволяет выводить даты в удобном виде. Для лучшего понимания кода ознакомьтесь со спецификацией этой функции в справочнике. Для нас же сейчас важно, чтобы вы обратили внимание на то, что класс NewsArticle, как и Article, определяет метод view(). Соответственно, все объекты этого класса будут использовать метод view(), объявленный в классе NewsArticle, а не в Article.

У вас может возникнуть вопрос: почему же все-таки важно переопределять некоторые методы вместо того, чтобы вводить новые методы у классов-потомков? Понимание этого придет вместе с пониманием следующей важнейшей концепции ООП.

Полиморфизм

Полиморфизм — взаимозаменяемость объектов с одинаковым интерфейсом.

Язык программирования поддерживает полиморфизм, если классы с одинаковой спецификацией могут иметь различную реализацию — например, реализация класса может быть изменена в процессе наследования. Это именно то, что мы видели в предыдущем примере со статьями.

Давайте рассмотрим следующий пример, который дает представление о сути полиморфизма:

class A { function Test() { echo ‘Это класс A

‘; } } $a = new A(); $b = new B(); $a->Call(); // выводит: «Это класс A» $b->Test(); // выводит: «Это класс B» $b->Call(); // выводит: «Это класс B»

Обратите внимание на комментарии к трем последним строчкам. Попытайтесь самостоятельно объяснить такой результат. Желательно собственноручно реализовать и протестировать этот пример. Потратьте время на то, чтобы работа сценария стала вам полностью ясна, т. к. в этом небольшом примере заложен глубокий смысл ООП. Теперь давайте попробуем вместе разобрать предложенный код.

$a->Call(); // выводит: «Это класс A»

В этой строке происходит вызов метода Call() у объекта класса А. Как и определено в функции Call() класса A , происходит вызов метода Test(). Отрабатывает метод Test() у объекта класса A, и на экран выводится текст «Это класс А «.

$b->Test(); // выводит: «Это класс B»

В данной строке происходит вызов метода Test() у объекта класса B. Метод Test() класса B выводит на экран текст «Это класс В «.

$b->Call(); // выводит: «Это класс B»

Наконец, в последней строке происходит вызов класса Call() у объекта класса В. Но в реализации класса B мы не увидим такого метода, а это значит, что он наследуется от класса A, т. к. класс B — это потомок класса A. Что же мы видим в реализации метода Call() класса A? Следующий код:

Метод Call() вызывает метод Test() того объекта, в котором находится. Это значит, что отработает метод Test() объекта класса B. Именно этим объясняется результат, выведенный на экране.

В этом и заключается принцип полиморфизма. Классы могут иметь одинаковые методы, но разную их реализацию. Разрабатывая код сценария, мы можем знать лишь общую для группы классов спецификацию их методов, но не иметь представления, экземпляр какого именно класса будет использоваться в конкретный момент времени.

Понятия инкапсуляции, наследования и полиморфизма можно назвать тремя китами ООП. Понимание и грамотное применение принципов этих концепций — залог успеха разработки с применением ООП.

Полиморфизм — концепция в объектно-ориентированном программировании, представляющая из себя возможность добавления в классы виртуальных методов, реализуемых в классах-потомках.

Классы, содержащие виртуальные методы, называют абстрактными.

Полиморфизм — один из трех важнейших механизмов объектно-ориентированного программирования (наряду с инкапсуляцией и наследованием).

В контексте объектно-ориентированного программирования широчайшей функцией полиморфизма является способность экземпляров подкласса играть роль объектов родительского класса. Благодаря этому, экземпляры подкласса можно использовать там, где используются экземпляры родительского класса.[1]

Полиморфизм позволяет создавать более абстрактные программы и повысить коэффициент повторного использования кода. Общие свойства объектов объединяются в систему, которую можно назвать по-разному — интерфейс, класс. Общие свойства имеют внутреннее и внешнее проявление. Внешне общие черты могут проявляться как одинаковый набор методов с одинаковыми именами и сигнатурами (типами аргументов и значений).

Полиморфизм (программирование)

На внутреннем уровне общность проявляется в одинаковой функциональности методов. Она описана интуитивно или выражена в виде строгих законов или правил, которым подчиняются методы.

[править]Примеры

В языке C#:

public class Renderable { public abstract void render (); } public class Cube : Renderable { public override void render () { Graphics.RenderCube (); } }

[править]Источники

  1. ↑Daniel P. Friedman, Mitchell Wand, Christopher T. Haynes, Essentials of Programming Languages, The MIT Press, 2001, ISBN 0-262-06217-8

Полиморфизм – это существование веществ одного и того же химического состава, но разной структуры.

Что такое полиморфизм, для чего он используется и как он используется?

Полиморфные модификации – разные минералы. Например, графит и алмаз – морфология кристаллов и физические свойства, которых резко различны. Явление полиморфизма отражает тот факт, что кристаллическая структура определяется не только химическим составом. Каждая полиморфная модификация устойчива при своих значениях температуры и давления. Наличие в горной породе той или иной полиморфной модификации часто служит индикатором условий формирования данной породы.

Образование одной полиморфной модификации из другой называют полиморфным превращением (или переходом). Скорость перехода может изменяться от очень высокой до чрезвычайно низкой. Скорость зависит от типа структурной перестройки, необходимой для превращения. Существует два типа превращений: переходы со смещением атомов (деформационные) и реконструктивные. Переходы со смещением обратимы и протекают быстро при определенных Р и Т. Примерами таких превращений служат высокотемпературный и низкотемпературный кварц, высокотемпературный и низкотемпературный лейцит. Факт первоначальной кристаллизации высокотемпературной формы часто можно определить по внешней форме кристаллов. Как правило, высокотемпературные модификации обладают более высокой симметрией, чем низкотемпературные.

Реконструктивные превращения протекают медленно, это вызвано необходимостью разрыва связей в структуре и пространственного перераспределения атомов или ионов. Примеры: кварц – кристобалит – тридимит. В большинстве случаев высокотемпературные модификации имеют более рыхлые структуры и пониженную плотность по сравнению с низкотемпературными формами. Это вызвано повышенным тепловым движением атомов, а также вхождением в структуры примесных ионов. Подобные чужеродные ионы часто стабилизируют структуру и препятствуют ее переходу в другую модификацию при понижении температуры.

Псевдоморфозы (ложные кристаллы)

Псевдоморфоза (по греч. «псевдос» – приставка, соответствующая русскому лже…, «морфе» – форма, вид) – это кристалл или зерно минерала, замещенные без изменения его формы другим минералом или смесью минералов. У этих образований часто сохраняются даже мельчайшие детали поверхности первоначальных кристаллов.

Существует два основных типа псевдоморфизма: при одном из них вещество полностью остается тем же, что и первоначально, а при втором происходит привнос или вынос некоторых элементов.

Первый тип псевдоморфизма наблюдается в тех случаях, когда одна полиморфная модификация сменяется другой без изменения внешней формы минерального индивида. Этот частный случай называется параморфизмом, а получившиеся образования – параморфозой одной формы по другой (например, параморфоза кальцита по арагониту). Так возникают параморфозы высокотемпературного α-кварца низкотемпературным β-кварцем (температура превращения 575º С).

Псевдоморфозы другого типа образуются, когда более ранний минерал замещается более поздним в результате химической реакции. Эта реакция может быть вызвана следующими причинами: 1) выносом какого-либо компонента (например, образование самородной меди по куприту или азуриту); 2) привносом какого-либо компонента (например, псевдоморфоза гипса по ангидриту или малахита по куприту); 3) частичной заменой компонентов (например, образование гётита (лимонита) по пириту); 4) полной сменой всех компонентов (например, псевдоморфоз кварца по флюориту).

Образование псевдоморфозы свидетельствует о том, что первоначально образовавшийся минерал перестал быть устойчивым в изменившейся физической и химической обстановке и заместился другим минералом, стабильным в этой новой обстановке. Поэтому изучение псевдоморфоз может дать ценную информацию о геологической истории породы, в которой содержится данная псевдоморфоза. Псевдоморфоза может, в частности, дать представление о природе и составе циркулировавших в горной породе растворов, которые привносили или выносили те или иные элементы.

В других случаях, когда известны условия устойчивости исходного и замещающего минералов, можно оценить температуру и давление, при которых происходило замещение.


⇐ Предыдущая567891011121314Следующая ⇒


Дата публикования: 2015-01-04; Прочитано: 309 | Нарушение авторского права страницы



studopedia.org — Студопедия.Орг — 2014-2018 год.(0.001 с)…

Добавить комментарий

Закрыть меню