Рисунок ДНК со старым поворотом
Цифры, буквы и символы — вот некоторые из примерно 100 самособирающихся форм ДНК, разработанных учеными Гарварда. Авторы и права: Б. Вэй, М. Дай, П. Инь/Wyss Inst. для биологически вдохновленной инженерии/Гарвардский университет
Ученые разработали способ вырезания фигур из холстов ДНК, включая все буквы латинского алфавита, смайлики и голову орла.
Брайан Вей, научный сотрудник Гарвардской медицинской школы в Бостоне, штат Массачусетс, и его коллеги создали эти формы из отдельных нитей ДНК длиной всего 42 буквы. Каждая прядь уникальна и складывается, образуя прямоугольную плитку. При смешивании соседние плитки прилипают друг к другу в виде кирпичной стены, а более короткие граничные плитки фиксируют края на месте.
В своей простейшей конфигурации плитки образуют сплошной прямоугольник размером 64 на 103 нанометра, но Вэй и его команда могут создавать более сложные формы, исключая определенные плитки. Используя эту стратегию, они создали 107 двухмерных фигур, включая буквы, цифры, китайские иероглифы, геометрические фигуры и символы.
Работа Вея возрождает метод, используемый Недом Симаном, химиком из Нью-Йоркского университета и пионером в области ДНК-нанотехнологий. Еще в 1991 году Симэн сформировал из коротких нитей ДНК кубы, трубки и решетки. Это была кропотливая работа, и она ограничивалась небольшими и простыми конструкциями 2 .
В 2006 году Пол Ротемунд из Калифорнийского технологического института в Пасадене создал более крупные структуры, используя технику ДНК-оригами. Он свернул цепочку ДНК из 7000 букв из генома вируса М13 в нужную форму и использовал около 200 более мелких «основных» нитей, чтобы удерживать ее на месте 3 .
С тех пор во всех подобных работах фигурируют длинные леса. Вэй и его коллеги отходят от этой традиции. Они показывают, что небольшие нити могут быть объединены в большие структуры без использования каркаса и с приемлемым выходом (доля нитей, которые собираются в формы) 12–17%.
Маленький размер не является ограничением
Этот подход «вступает в противоречие с традиционным представлением о сборке на основе плиток», — говорит Курт Готельф, директор Центра ДНК-нанотехнологий Орхусского университета в Дании. Многие ученые предполагали, что небольшие нити необходимо смешивать в очень точных пропорциях, чтобы избежать образования сплавленных или полуготовых структур. «Долгое время считалось, что это устанавливает предел размера конструкций, которые можно эффективно собрать таким образом», — говорит он.
Пэн Инь, также из Гарвардской медицинской школы и руководитель исследования, считает, что этот метод работает, потому что нити собираются медленно, но быстро растут, как только начинают. Это означает, что формы имеют низкую вероятность соприкосновения друг с другом и неправильного слияния, когда они начинают принимать форму.
Метод оригами Ротемунда требует нового набора основных нитей для каждого дизайна.
Но плиточная техника более универсальна. Из одного и того же набора плиток можно создать миллионы форм, просто исключив некоторые из них. «Если у вас есть предварительно синтезированная библиотека, вам не нужны новые конструкции ДНК», — говорит Инь. «Вы просто выбираете свои молекулы».
Команда разработала робота, который собирает плитки. Нужная форма рисуется с помощью графического интерфейса, а робот выбирает и перемешивает нужные пряди. Он может производить 48 форм за столько же часов.
Инь говорит, что «любые технологические приложения очень спекулятивны». Но он думает, что сможет создать фрагменты ДНК, используя L-ДНК, зеркальное отображение классической двойной спирали, не встречающееся в природе. Такие структуры могут быть полезны для разработки наноразмерных устройств для доставки лекарств, особенно потому, что они с меньшей вероятностью будут разрушены ферментами, разрезающими ДНК, или вызовут иммунную реакцию. В сопроводительной статье News & Views 4 Ротемунд и Эббе Андерсен, также из Центра ДНК-нанотехнологий, говорят, что «выводы Вея и его коллег напоминают нам, что мы все еще только начинающие плотники ДНК, и приободряем других к смешать сотни нитей ДНК вопреки общепринятой мудрости.
Результаты, вероятно, нас удивят».
Gale Apps — Технические трудности
Приложение, к которому вы пытаетесь получить доступ, в настоящее время недоступно. Приносим свои извинения за доставленные неудобства. Повторите попытку через несколько секунд.
Если проблемы с доступом сохраняются, обратитесь за помощью в наш отдел технической поддержки по телефону 1-800-877-4253. Еще раз спасибо, что выбрали Gale, обучающую компанию Cengage.
org.springframework.remoting.RemoteAccessException: невозможно получить доступ к удаленной службе [authorizationService@theBLISAuthorizationService]; вложенным исключением является com.zeroc.Ice.UnknownException
unknown = «java.lang.IndexOutOfBoundsException: индекс 0 выходит за границы для длины 0
в java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
в java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
в java.base/jdk.
internal.util.Preconditions.checkIndex(Preconditions.java:248)
в java.base/java.util.Objects.checkIndex(Objects.java:372)
в java.base/java.util.ArrayList.get(ArrayList.java:458)
в com.gale.blis.data.subscription.dao.LazyUserSessionDataLoaderStoredProcedure.populateSessionProperties(LazyUserSessionDataLoaderStoredProcedure.java:60)
в com.gale.blis.data.subscription.dao.LazyUserSessionDataLoaderStoredProcedure.reQuery(LazyUserSessionDataLoaderStoredProcedure.java:53)
в com.gale.blis.data.model.session.UserGroupEntitlementsManager.reinitializeUserGroupEntitlements(UserGroupEntitlementsManager.java:30)
в com.gale.blis.data.model.session.UserGroupSessionManager.getUserGroupEntitlements(UserGroupSessionManager.java:17)
в com.gale.blis.api.authorize.contentmodulefetchers.CrossSearchProductContentModuleFetcher.getProductSubscriptionCriteria(CrossSearchProductContentModuleFetcher.java:244)
на com.
gale.blis.api.BLISAuthorizationServiceImpl.authorize_aroundBody0(BLISAuthorizationServiceImpl.java:57)
на com.gale.blis.api.BLISAuthorizationServiceImpl.authorize_aroundBody1$advice(BLISAuthorizationServiceImpl.java:61)
на com.gale.blis.api.BLISAuthorizationServiceImpl.authorize(BLISAuthorizationServiceImpl.java:1)
в com.gale.blis.auth.AuthorizationService._iceD_authorize(AuthorizationService.java:97)
в com.gale.blis.auth.AuthorizationService._iceDispatch(AuthorizationService.java:406)
в com.zeroc.IceInternal.Incoming.invoke(Incoming.java:221)
в com.zeroc.Ice.ConnectionI.invokeAll(ConnectionI.java:2706)
на com.zeroc.Ice.ConnectionI.dispatch(ConnectionI.java:1292)
в com.zeroc.Ice.ConnectionI.message(ConnectionI.java:1203)
в com.zeroc.IceInternal.ThreadPool.run(ThreadPool.java:412)
в com.zeroc.IceInternal.ThreadPool.access$500(ThreadPool.java:7)
в com.

java:117)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod (RequestMappingHandlerAdapter.java:895)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal (RequestMappingHandlerAdapter.java:808)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.
java:963)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
org.
apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
org.apache.catalina.filters.HttpHeaderSecurityFilter.doFilter(HttpHeaderSecurityFilter.java:126)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
org.
apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter.java:67)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
org.springframework.web.filter.RequestContextFilter.doFilterInternal (RequestContextFilter.java:100)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
org.
apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
com.gale.common.http.filter.SecurityHeaderFilter.doFilterInternal(SecurityHeaderFilter.java:29)
org.
springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:102)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
org.
springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:101)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:119)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
org.springframework.web.filter.FormContentFilter.doFilterInternal (FormContentFilter.java:93)
org.
springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal (WebMvcMetricsFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.
java:189)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal (CharacterEncodingFilter.java:201)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
org.
apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
org.
apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707)
org.apache.