斯图尔特·考夫曼访谈

生物信息学——分子生物学和数学的融合——可能揭示人类基因组背后的“湿”电路

图片来源:圣塔菲研究所

斯图尔特·考夫曼身兼数职。他是一位企业家,创立了Bios Group,一家位于圣塔菲的软件公司,目前他在该公司担任首席科学官和董事会主席,并与人在圣地亚哥共同创立了Cistem Molecular公司。他是一位学者,目前在圣塔菲研究所担任外部教授,并在宾夕法尼亚大学医学院担任荣誉退休教授。他也是一位作家,撰写了大量的论文和三本畅销书(《秩序的起源:进化中的自组织和选择》、《宇宙家园》和《探索》)。但或许最重要的是,他是一位有远见卓识的人。

的确,考夫曼是现在绘制计算数学和分子生物学交叉领域地图的先驱科学家之一——这个新兴领域被称为生物信息学。《大众科学》的自由撰稿人肯·霍华德最近在纽约市采访了考夫曼,讨论这个相对较新的学科。以下是他们对话的编辑稿。关于生物信息学和基因组业务的更多信息将刊登在七月刊的《大众科学》上。


关于支持科学新闻报道

如果您喜欢这篇文章,请考虑订阅来支持我们屡获殊荣的新闻报道。 订阅。通过购买订阅,您将帮助确保有关塑造我们今天世界的发现和想法的具有影响力的故事的未来。



大众科学:生物信息学的希望是什么?

人类基因组计划的完成本身就是一个了不起的里程碑,并且是未来15到20年生物学领域杰出问题的起点——后基因组时代将需要大量的生物信息学。这与我们如何理解10万个基因的综合行为有关,这些基因在细胞内和细胞之间相互开启和关闭,以及细胞内和细胞之间的细胞信号网络。我们首次面临整合我们知识的问题。

大众科学:怎么说?

受精卵大约有8万到10万个结构基因。我想我们很快就会知道确切的答案。我们可以将细胞中,比如说,10万个基因视为某种并行处理的化学计算机,其中基因在某种极其复杂的相互作用网络中不断地相互开启和关闭。细胞信号通路与基因调控通路以我们刚刚开始解开的方式联系在一起。为了理解这一点,分子生物学家将不得不——并且他们已经开始——改变他们对细胞的思考方式。长期以来,我们一直认为一个基因对应一种蛋白质,并且我们一直以非常简单的想法看待被称为发育途径的调控级联。

这种想法是,当细胞经历分化时,它们遵循从前体细胞到最终分化细胞的某种发育途径。确实存在某种途径被遵循,但这与基因活动的滚动变化之间的关系远不清楚。这是我们面临的巨大问题。因此,摆在我们面前的最庞大的生物信息学项目将是解开这个调控网络。而且这不仅仅是生物信息学;必须将新的数学工具结合起来才能解决这个问题。这些工具通常会为调控网络的部分片段提出合理的替代电路。然后,我们将不得不将其与新型实验相结合,以弄清楚细胞中的电路实际上是什么样的。

大众科学:谁将从事整个领域的工作?是生物信息学家,还是数学家或生物学家?

以上所有领域的人员都会参与。随着生物学家意识到这将是至关重要的,他们开始转向计算和数学技术来开始研究它。与此同时,我们面前有RNA芯片数据,以及蛋白质组学数据。一个RNA芯片显示了来自给定细胞类型或给定组织样本的芯片上放置的大量不同基因的转录本的相对丰度。开始出现非常大的RNA芯片数据库,其中包含数万个基因的表达数据。对于正常细胞、患病细胞、未处理和处理过的正常和患病细胞。大多数数据是单时刻快照。你只需对一些组织进行取样,看看它在做什么。但我们开始获得发育途径的数据。

因此,你有一个前体细胞,通过给予它一些激素来触发其分化。你对它在分化过程中进行分阶段取样,我们观察基因在其活动过程中如何起伏。

这提出了一个问题,即你如何处理所有这些数据。目前,人们主要做的是聚类分析,也就是说,他们从一堆不同的细胞类型中获取芯片数据,并尝试对表达水平高的基因和表达水平低的基因进行聚类。实际上,这仅仅是以分子水平识别细胞类型的一种不同方式。这样做没有错,但从功能上来说,它没有任何意义,因为如果你有兴趣找出基因A开启基因B,而基因B——当它开启时——关闭基因C。人们分析数据的方式并没有朝着回答这些问题的方向发展。

大众科学:为什么会这样?

因为他们只是在识别模式。这对于诊断目的和治疗目的很有用,但这并不是利用数据来找到调控回路的方法。

大众科学:一旦你发现电路,你能做什么?

首先,你扩大了制药行业的靶标范围。假设一个给定的基因产生一种酶,那么也许这种酶是一个很好的药物靶标,你可以制造一种分子来增强或抑制这种酶的活性。但是你可以做的另一件事是开启或关闭产生这种酶的基因。通过找到医学上感兴趣的基因周围的电路,你扩大了药物靶标的数量,这样你就可以尝试调节基因网络的活动,而不是影响基因的产物。

此外,任何与诊断相关的事情,如果我知道基因活动和调控电路的模式,我可以测试以查看正常细胞类型和肝癌细胞——肝癌细胞之间的差异。这在诊断和治疗上显然是有用的。

所有这些的最大和最长期的后果是揭示控制细胞从受精卵到成体发育的基因调控网络。这意味着从长远来看,我们将能够控制细胞分化并诱导细胞死亡,即细胞凋亡。我的梦想如下:从现在开始的10年或20年后,如果你患有前列腺癌,我们将能够给予药物,诱导癌细胞以某种方式分化,使其不再表现出恶性行为,或者它们将通过进入细胞凋亡来自杀。然后,我们将能够引起组织再生,这样如果你碰巧失去了一半的胰腺,我们将能够再生你的胰腺。或者我们将能够再生糖尿病患者的β细胞胰岛。毕竟,如果我们能克隆多莉羊并从单个细胞中制造出一整只羊,并且如果我们现在有胚胎干细胞,我们需要的是能够控制分化途径的化学诱导刺激,以便我们可以比现在更随意地引起组织再生。我认为这将是生物医学领域的巨大变革。

大众科学:生物信息学在实现这一目标中起什么作用?

大多数癌细胞是单克隆的;这意味着它们都来源于某个单一细胞。大多数癌细胞在分化时是渗漏的,这意味着它们既产生正常细胞类型,也产生癌细胞。这是肿瘤学家已知的事实,但这并不是我们目前的治疗方案的一部分。当维持单克隆系的癌症干细胞增殖时,癌细胞既产生正常细胞类型,也产生癌细胞类型。如果我们能够取出癌细胞,给予它化学信号,诱导它分化成正常细胞类型——我们将不是通过杀死细胞来治疗癌症细胞,而是通过对它们使用柔道并转移它们成为正常细胞类型。这已经对维生素A和某些癌细胞有效,因此已经有一个先例。

这只是我们发现细胞的电路和逻辑——以及因此的动力学行为——后能够做到的事情的一个例子。我们将知道我们必须用什么来扰乱哪个基因,或者我们必须以什么时间顺序扰乱哪些基因序列,以引导癌细胞分化为非恶性行为或细胞凋亡。或者引导某些组织的再生。我可以想象,到那时,我们将能够从周围的正常组织中再生心脏组织,而不是用疤痕组织代替,而疤痕组织是心脏中复发性电活动的焦点,会发出小螺旋状的电活动,这会使你的心脏跳动不稳定,并使心脏病发作后的人容易发生心脏性猝死,因为他们会进入心室颤动。

假设我们可以做到的不是获得疤痕组织,而是假设我们可以让这些细胞分化成完全正常的肌原纤维。没有什么说我们不能做到这一点,因为肌肉细胞和纤维化组织在发育上是近亲。因此,你可以开始想象通过控制细胞分化、组织分化等等来治疗各种疾病。为了做到这一点,我们将必须知道电路是什么样的,我们将必须知道可以添加到人体中的哪些小分子或分子可以专门治疗患病组织而不会产生不适当的副作用。

大众科学:复杂性理论、无序/自组织系统如何发挥作用?来自许多不同地方的计算机、算法和数据如何需要整合?

我们将通过三种方式理解基因调控网络,所有这些方式都涉及计算工作,以及大量数据。其中一种方式已经被开创出来。它是这样的:我有一个小的基因电路,例如,噬菌体lambda——或类似的东西,它有20或30个基因和一个主要开关。我知道所有基因;我知道哪些基因产生哪些产物,哪些产物与哪些基因结合;我知道这些基因产物与基因结合的结合常数。我所做的是,我实际上为那个特定的电路制作了一个工程模型,有点像电气工程,只不过它是分子生物学-化学工程,为那个细菌制作一个特定的电路。人们倾向于对人类基因组做同样的事情。

假设我挑选出10个我知道相互调控的基因。我尝试构建一个关于它们行为的电路。这绝对是一件好事,我们应该这样做。但缺点如下:这10个基因有来自该电路外部其他基因的输入。因此,你正在获取嵌入在包含数千个基因的更大电路中的一小块电路。当你不知道它影响的外部基因时,你试图弄清楚该电路的行为。这使得直接方法变得困难,因为你永远不知道其他输入是什么。它很困难的证据来自一个平行的例子,即观察神经回路,观察神经节。多年来,我们知道,例如,龙虾胃神经节中的每个神经元是什么;所有突触连接是什么;神经递质是什么;并且神经节中可能有13或20个神经元,但你仍然无法弄清楚神经节的行为。因此,没有数学家会认为理解一个有13个变量的系统是一件容易的事情。我们想用10万个变量来做这件事。这放大了问题。

分子生物学家认为,他们将能够弄清楚10万个基因如何相互作用,而无需写下基因相互控制的数学方程式,然后从中弄清楚行为是什么。这就是我们正在经历的惊人转变的原因,并且正在发生很多摸索。这是因为分子生物学家基本上不懂数学。

解决这个问题的第二种方法是我开创的一种方法,它有很大的优点,但也有很大的缺点。事实证明,如果你想将基因建模为小灯泡,它们不是小灯泡,但如果你想以这种方式建模它们,那么谈论开启和关闭基因的适当规则被称为布尔函数。如果一个基因有K个输入,那么布尔函数的数量是有限的。

因此,我多年前开始思考,如果你只是随机地建立基因网络,每个基因遵循的逻辑都是随机分配的,那么是否会有一类网络的行为看起来像真实的生物网络?是否存在一类网络,我所做的只是告诉你我所知道的关于输入数量的所有信息,以及基因相互调控的规则的一些偏差——事实证明,一整类网络,无论细节如何,其行为都具有你在正常发育中看到的秩序?

大众科学:你如何将不同的网络识别为一个类别或另一个类别?

网络分为两类:一类在有序状态下运行,另一类在混沌状态下运行,然后在这两种状态之间存在一个相变,称为混沌边缘。有序状态显示出与真实基因系统经历真实发育的行为有很多相似之处。举个例子,如果我制作一个每个基因有两个输入的网络,这就是我告诉你的全部信息,并且我制作了一个巨大的网络,有5万或10万个基因,每个人都有两个输入,但就连接而言,这是一个混乱的网络——这是一个混乱的意大利面网络,并且分配给每个基因的逻辑都是随机分配的,因此逻辑是完全混乱的——但整个系统仍然表现出非凡的秩序。这种秩序与真实细胞类型的行为高度相似。

即使每个基因有10个输入,如果你用通道化函数偏置规则,网络也会从混沌状态进入有序状态。数据非常充分地表明,基因受到通道化函数的调控。这里有一个需要注意的地方。可能是,在已知的已发表的基因中,主要是它们受通道化函数控制,因为这样的基因具有容易找到的表型效应,并且有很多非通道化函数,但你只是不容易找到它们。因此,我们必须做的事情之一是从人类基因组或酵母基因组或果蝇基因组中随机取出基因,看看什么类型的控制规则控制它们。

大众科学:如果事实证明大多数基因都受通道化函数控制,那意味着什么?

我们所做的是制作大型基因网络,在数学上对基因进行建模,其中我们偏置了控制规则,以询问这样的网络是否处于有序状态或混沌状态,并且它们可测量地处于有序状态。这意味着自然选择已经调整了受通道化函数控制的基因的比例,使得细胞处于有序状态。

你这样做的方式是,你制作一个包含所有可能的网络的集合,其中包含已知的偏差、每个基因的输入数量和规则的偏差。你从该集合中随机抽取数千个网络进行采样,你得出的结论是针对该集合的典型成员的结论。这是生物学中一种非常不寻常的推理模式。这正是统计学中自旋玻璃等无序磁性材料的推理模式。它最突出的应用领域是在统计物理学中。这种集合方法,这种网络集合的弱点是,你永远无法从中推断出基因A调控基因F,因为你正在制作统计模型。其优势在于,你可以推断出关于基因调控网络的许多事情,如果你制作小电路并尝试进行电气工程方法,你将无法获得这些信息。

在这些模型网络的最简单情况下,有一个小的中央时钟在滴答作响;这对于真实细胞来说不是真的,但现在可以这样做。每个基因都会查看其输入的状态,并做正确的事情。因此,让我将网络的状态定义为所有10万个基因当前的开启和关闭值。那么有多少种状态?好吧,基因1有两种可能性,基因2有两种可能性,等等,因此有2100,000种状态,即1030,000种状态,因此我们谈论的是人类基因组中的一个系统,即使我们将基因理想化为开启或关闭——这是错误的,因为它们显示出分级的活动水平——它有1030,000种可能的状态。这令人难以置信,因为已知宇宙中的粒子数量是1080

以下是在有序状态下发生的事情。在任何时刻,系统都处于一种状态,并且有一个小小的时钟;当时钟滴答作响时,所有基因都会查看其输入的状态,并做正确的事情,因此整个系统从某种状态转变为某种状态,然后沿着轨迹从状态转变为状态。状态的数量是有限的;它很大,但它是有限的。因此,最终系统必须达到它以前处于的状态,然后它是一个确定性系统;它会做同样的事情。因此,它现在将围绕一个状态循环。因此,通用行为是流入循环的瞬态。

该循环称为状态循环或吸引子。我30年前所做的是问,“什么是细胞类型?”我猜测细胞类型是吸引子,否则我们将有1030,000种不同的细胞类型,而我们有大约260种。以下是在有序状态下发生的事情。状态循环上的状态数量趋于约为基因数量的平方根。10万的平方根约为318。因此,这个具有1030,000个状态的系统稳定在一个只有300个状态的小循环上。这是巨大的秩序。系统已将自身挤压到其状态相中的一个微小的黑洞中。

如果你处于这些吸引子状态循环之一,并且你扰乱了单个基因的活动,例如,如果有激素进入,大多数时候你会回到同一个吸引子,因此你具有体内平衡。然而,有时,你会离开一个状态循环,并跳到一个瞬态,该瞬态进入另一个状态循环,这就是分化。

我告诉你的所有事情都是关于人类基因组的可测试的事情。它们是关于整个基因组综合行为的预测,如果没有使用集合方法,现在就无法获得这些预测。它们是非常有力的预测。这是它的优势。弱点是它没有告诉你基因A调控基因F,这当然正是我们想要知道的事情之一。

大众科学:它能给你带来什么?

你可以使用集合方法回答各种各样的问题,在我们对基因组有一个完整的理论之前,我们将无法做到这一点。

大众科学:那么下一步该怎么做?从基因组中获取数据并将其插入这些模型中?

是的,从某种意义上说,你可以进行实验来测试这些类型的集合模型的所有预测。没有什么阻止我从不同细胞系中100个不同的随机选择的基因的上游克隆一个可控的启动子,扰乱相邻基因的活动,并使用Affymetrix芯片来观察基因活动变化的雪崩。所有这些都是可以测试的。

我们应该能够预测不仅会发生这种情况,而且还应该预测统计分布,即当你这样做时,细胞类型A返回成为细胞类型A的频率,以及细胞类型A变为细胞类型B的频率。这里的一切都是可测试的。在真实细胞的实际测试中,我们将开始发现对哪个基因的扰动实际上会导致哪个分化途径发生。你可以使用分子多样性或组合化学来制造分子,用这些分子来扰乱细胞,然后测试我们讨论过的假设。

目的是尝试找到方法来改变给定基因转录本的丰度以治疗疾病或引起分化。我有一个以上的朋友曾经或正在患癌症,我们治疗癌症的方法是乱枪打鸟,非常愚蠢,即使它们比过去更复杂。我们只是在杀死分裂的细胞。如果我们能够到达我们可以指导细胞分化的程度呢?如果我们能够实现这一点,那么它的实际意义将是巨大的。

大众科学:生物信息学是整合计算工作和湿实验工作的工具吗?

生物信息学必须扩展到包括实验设计。我们从生物信息学的每个部分中获得的是现在需要测试的假设。它帮助你挑选出要测试的假设。原因是我们不知道所有10万个基因和整个电路。即使我们知道整个电路,就像我们知道龙虾肠道神经节一样——人们已经工作了30年才弄清楚龙虾肠道神经节是如何工作的,即使知道所有的解剖连接。所以这不会容易。

我认为最大的智力增长领域将来自逆问题。重点如下:我向你展示基因表达不同模式的Affymetrix芯片,你从数据中告诉我哪个基因实际上通过什么逻辑调控哪个基因。这就是逆问题。我向你展示系统的行为,你推断出基因之间的逻辑和连接。

大众科学:你是否认为在不久的将来,或者甚至永远,能够为整个人体或各种电路进行计算机模拟工作?

是的,我认为可以。我认为我们的时间表是在10到15年内开发出细胞电路的良好模型,因为电路的很多部分是未知的。但在我可以制作模型并探索模型的动力学行为之前,我可以要么使用我使用过的集合方法,要么我实际上必须知道电路是什么样的。发现电路有三种方法。一种是纯粹的实验方法,分子生物学家长期以来一直在这样做。

大众科学:它有多准确?它有多可测试?

它适用于小型网络,适用于同步灯泡网络。真实细胞不是灯泡;它们是分级的活动水平,并且它们不是同步的,因此对于各种原因,尝试对真实细胞进行此操作是一个更难的问题。首先,当你采集组织样本时,你没有单一的细胞类型,你通常有几种细胞类型在其中。很多现有的数据都与组织样本有关,因为它来自活检数据。其次,大多数数据是单时刻快照,而不是沿着发育途径的基因活动序列。这更难获得数据。

它正开始变得可用。我们可以从状态转换中学到大量关于哪些基因调控哪些基因的数据。还有其他潜在的强大技术,相当于观察基因活动模式的相关波动,并尝试从中找出哪些基因通过什么规则调控哪些基因。这种逆问题努力的底线是,算法将提出可以解释数据的替代可能电路。然后,这将指导你询问下一个正确的实验是什么,以减少你对正确电路是什么的不确定性。因此,逆问题将影响实验设计的发展。

大众科学:你从微阵列实验开始?

你进去说,“我们认为基因A调控基因F。”现在你说,“如果这是真的,如果我扰乱基因A的活动,我应该看到基因F的活动发生变化;具体来说,如果我开启基因A,我应该开启基因F。”所以现在你回去找到一个顺式位点和一个反式因子,或者当添加到细胞中的一个小分子将开启基因A时,然后你使用Affymetrix芯片或其类似物来说,“我是否刚刚开启了基因F?”

大众科学:实际应用是什么?

我们已经将药物靶标集从酶本身扩展到控制产生该酶的基因活性的电路。

大众科学:生物信息学在整个企业中起什么作用?

让我们以逆问题为例。人们将从真实的波动基因表达模式中需要的数据量,以及试图从中推断出哪个基因通过什么逻辑调控哪个基因的尝试——这将需要巨大的计算能力。我曾经认为这个问题将是所谓的NP-hard,即在基因数量上呈指数级困难。我现在认为不是;我认为它是多项式级困难的,这意味着它是可解的,或者更有可能在基因数量上是可解的。

真正的原因如下:假设任何给定基因最多有1到10个输入。如果你将这些输入仅仅视为开启或关闭,那么它们可以处于210种状态;它们可以全部开启或全部关闭或任何其他组合。好吧,210是1,000。这是一个相当大的数字。但与1030,000相比,它很小。由于大多数基因受少量其他因素调控,因此问题在每个基因的输入数量上呈指数级,但在基因数量上仅呈多项式级。因此,我们真的有机会破解逆问题。我认为这将是未来15年内将发生的最重要的事情之一。

大众科学:逆问题是一个真正的问题,还是获得信息的一种方法?

这是一个真正的问题。直接问题是我写下一些动力系统的方程式,然后它以其动力学方式运行。逆问题是你观察动力学行为,并尝试找出规律。对于我们来说,逆问题是我们在Affymetrix芯片或蛋白质组学显示方法(如二维凝胶)上看到基因组显示自身的动力学行为。现在我们想从中推断出电路和逻辑是什么。因此,它是问题的一般形式。它是试图找出哪些基因正在调控哪些基因的方法,以便我不仅从我的集合方法中知道,而且我知道基因A确实在调控基因F。

大众科学:找出逆问题的障碍是什么?是计算机能力?设计合适的算法?生物分子理解?

所有这三个方面都是障碍。让我们举一个例子:反馈回路使事情变得难以弄清楚。基因组几乎可以肯定地充满了反馈回路。例如,有很多基因调控它们自身的活动。因此,弄清楚将处理反馈回路的算法将不是一件容易的事。计算能力变得很大,因为如果我想寻找单个输入,例如通道化输入,则通道化输入非常容易识别,因为如果基因A开启,那么基因C无论如何都会开启。因此,我所要做的就是检查大量的基因表达数据,我可以发现,每当A开启时,C会在片刻之后开启。

我可以一次查看一个基因来做到这一点。但假设我有一个更复杂的规则,其中两个基因必须处于组合状态才能开启基因C。要做到这一点,我必须成对地查看基因,以查看它们是否设法调控基因C。如果我单独查看A或单独查看B,我将一无所获。因此,现在如果我有10万个基因,我必须查看10万2对;那是1010对。现在,如果我有一个规则,该规则取决于三个基因的活动状态来开启基因,那么我必须查看1053,即1015,这可能大约是我们现在拥有的计算能力的极限。

但这忽略了一个事实,即我们不必固执;我们总是可以去做实验。因此,这现在与实验设计联系起来。请注意,所有这些问题都指向新的实验设计方向,我们要做的是将逆问题之类的事情与能够切换任意基因的活动结合起来。

大众科学:分子生物学知识呢?

这将需要大量的生物学知识。例如,让我们假设每个结构基因至少有一个调控它的顺式位点。那么就有10万个顺式位点。没有人知道这是否是真的,但让我们提出这一点。好吧,我们有很多工作要做才能找出所有顺式位点。现在让我们假设大约5%的结构基因充当结构基因的调控输入。因此,大约有4,000到5,000个反式因子构成了我们正在谈论的这个庞大的网络。

好吧,我们必须发现这些反式因子是什么;我们必须发现顺式位点是什么;我们必须发现调控逻辑是什么。然后我们必须制作它的数学模型。然后我们必须整合这些数学模型的行为。然后我们将遇到人们在观察龙虾肠道神经节时遇到的相同问题——即使你知道所有输入,弄清楚行为也将是困难的。然后我们将遇到人们在观察龙虾肠道神经节时遇到的相同问题——即使你知道所有输入,弄清楚行为也将是困难的。然后我们将遇到你正在观察一个有40个基因的电路的问题,但是来自10万个基因网络中其他基因的影响将破坏你的模型。因此,这绝非易事。

大众科学:就时间表而言,我们是在展望一年还是200年之后?

我认为在未来30到40年内,我们将解决这个问题的主要部分。这些工具将在未来10到12年内成熟,然后我们将真正开始取得进展。

大众科学:您如何定义进步?

我们将要获得基因组大部分区域的调控机制,并真正理解其运作方式。获得基因组序列固然了不起,但这能告诉你关于调控机制什么呢?到目前为止,可以说一无所知,除了知道有哪些参与者。

SA:所以我们正处于开端?

我们正处于后基因组医学的初期阶段。但未来的回报将是巨大的。在未来的三十年里,将来有一天,当有人身患癌症前来就诊时,我们将不仅根据癌细胞的形态学特征,还能通过观察该细胞内基因表达和顺式作用元件结合活动的详细模式,来对其进行精确诊断。我们将了解调控机制和可尝试的自分泌扰动,或者我们知道可以尝试哪些基因活性扰动,这些扰动将导致癌细胞分化为正常细胞类型或启动细胞凋亡。

SA:那会是某人走进他们医生的办公室,医生打开电脑然后仅仅输入数据吗?

这将需要能够进行 RNA 样本分析。生物科技公司与大型制药公司,尤其是那些拥有足够资金推动项目通过临床试验的大型制药公司,最终将证明可以用这种方法治疗癌症,或者治疗例如关节的一些退行性疾病,在这些疾病中我们可以再生滑膜。 为什么不呢? 既然我们都能制造出一整只羊,为什么不能再生滑膜呢?

© . All rights reserved.