罕见病科普 | DMD杜氏肌营养不良症
发布日期:2021-09-03
DMD世界知晓日
共同关注,传递关爱
每年的9月7日是DMD(杜氏肌营养不良症)世界知晓日。据了解,目前已知的罕见病已超过7000种,中国的罕见病患者已达2000万人。在这些罕见病中,神经系统遗传病占到了50%。而排在神经系统遗传病第一大类的遗传性肌肉病中,肌营养不良居第一位。
假性肥大型进行性肌营养不良,又称Duchenne/Becker 肌营养不良(DMD/BMD),是一种随着年龄增加全身肌肉呈进行性消耗和运动功能减退的致死性X-伴性隐性遗传性肌肉疾病。二者都是由抗肌萎缩蛋白基因(DMD)突变导致的。DMD发病率为1/3500活产男婴,BMD发病率为1/30000男性。
发病机制
抗肌萎缩蛋白基因是X染色体上一个庞大的基因,含有79个外显子 exons,全长超过2Mb。突变大多数为一个或多个外显子的缺失或重复,小部分是点突变。抗肌萎缩蛋白,通过抗肌萎缩蛋白相关蛋白复合体,与细胞内肌动蛋白连接。这个蛋白复合体是一连串胞质胞膜蛋白,与肌纤维周围的细胞外基质锚定,以连接细胞骨架肌动蛋白与细胞外基质,稳定肌膜,就像一根沿着屋顶的木制承重横梁,维持着房子的稳定。没有抗肌萎缩蛋白的支撑,肌膜萎塌。时间一长,细胞蛋白(肌酸激酶 creatine kinase, CK)溢出损伤的细胞,钙离子进入细胞,最终造成细胞死亡。短期内,肌肉可再生,造成肌纤维尺寸参差不齐;长此以往,肌肉萎缩并且脂肪组织和结缔纤维组织增生渗入其间,导致肌肉无力。
(图片来源网络)
临床症状
1、患者以腿部症状最为明显,DMD患儿在童年时期学步晚,表现为“鸭步”,他们小腿肚表现为假性肥大,但小腿肌视觉上的增大并不是由于肌肉组织,而是脂肪组织和纤维组织。
2、DMD另一典型体征是Gower征,表现为臀部和大腿周围的肌肉无力,只能借助双臂力量。
(图片来源网络)
后期症状包括,由于严重的肌无力需坐轮椅,由于膈肌无力会发生呼吸衰竭,脊柱侧凸,扩张性心肌病和心律失常,最后一般由于呼吸或心力衰竭而去世。
DMD基因突变与表型(DMD/BMD)的关系
有报道指出当DMD突变为框外变异(out-of-frame,如无义变异或移码变异图 B)使得抗肌萎缩蛋白严重缺乏时,导致DMD,症状通常于5岁出现,该疾病的结局比BMD更严重。另一方面,DMD突变为框内变异(in-frame,如错义变异导致ORF正常维持,蛋白质不会过早停止翻译图C)时,将产生畸形蛋白,引起表型较轻的BMD,发病年龄较晚,一般在10到20岁,但这种变异与表型规律【开放阅读框规律】不是绝对的。
J Med Genet. 2016 Mar; 53(3): 145–151.
对此,去年11月,加拿大神经肌肉研究所的学者对从2012年到2019年在加拿大神经肌肉疾病登记处登记的DMD和BMD患者的基因型-表型相关性进行了评估。
J Pers Med. 2020 Dec; 10(4): 241.
文章以342例DMD和60例BMD患者的基因结果进行分析,发现大多数患者出现缺失(71%),其次是小型突变(17%)以及重复(10%),2%的检测结构为阴性,不排除深度内含子或结构变异存在导致。对这边变异的位置和类别分别进行了统计,如下图所示:
J Pers Med. 2020 Dec; 10(4): 241
Overview of small mutations in the study population:a)突变位于蛋白结构域位置;b)突变位于外显子相对位置;c)变异类型统计;d)碱基突变热点
90%的变异与表型的关系可以遵循开放阅读框规律,即大多数框外突变导致DMD,而大多数框内突变导致BMD。对此,加拿大神经肌肉研究也针对DMD和BMD患者的框内和框外缺失的频率进行了统计,发现238名拥有缺失型变异的DMD患者中,87%为框外变异;13%为框内变异;在49名拥有缺失变异的BMD患者中,84%为框内变异,16%为框外变异(a)。从所有缺失型的变异角度来说,96%(208/216)的框外缺失表现为DMD患者,只有4%(8/216)表现为BMD患者。重复变异也表现为类似的规律。
J Pers Med. 2020 Dec; 10(4): 241
DMD/BMD的临床诊断流程
1、大片段缺失/重复(占比65%-75%):Mlpa(多重连接探针扩增技术),CMA芯片或NGS依赖的CNV-seq;
2、小的突变,如SNV/Indel(占比25%):Sanger 测序 或 NGS;
3、复杂结构变异(占比2%):RT-PCR或Bionano光学图谱。
(图片来源网络)
DMD/BMD治疗进展
l 药物治疗(糖皮质激素、血管紧张素转换酶抑制剂、艾地苯醌、沙丁胺醇);
l 呼吸系统支持尤其是无创性呼吸机的应用;
l 以水疗法和抗关节挛缩为主的康复治疗、营养管理;
l 基因治疗(外显子跳跃、无义突变通读、腺相关病毒介导的微小抗肌萎缩蛋白基因替代治疗)、抑制肌肉生长抑制素、上调肌营养相关蛋白和基因编辑治疗等新兴治疗方法也在蓬勃发展
目前的临床治疗研究主要致力于基因治疗和干细胞移植治疗以恢复蛋白表达、上调其他肌细胞骨架蛋A如肌营养相关蛋白(utrophin)表达、抑制肌肉生长负调节因子、抗炎治疗等延缓疾病进展。
以下对基因治疗部分做介绍:
1、外显子跳跃
原理:通过反义寡核苷酸(ASO)诱导的选择性剪接前信使RNA(premRNA)跳过特定外显子,恢复DMD基因可读框,产生内源性截短但有功能的dystrophin,使症状较重的Duchenne型肌营养 不良症临床表型转变为症状较轻的Becker型肌营养不良症临床表型。
临床:约70%的大片段缺失的Duchenne型肌营养不良症患者和47%的无义突变患者,可以通过单外显子跳跃治疗实现DMD基因可读框的恢复,反义寡核苷酸鸡尾酒疗法可以实现DMD基因多个外显子跳跃治疗,理论上可用于80%~90%的Duchenne型肌营养不良症患者,并已经动物模型如小鼠和犬模型证实。
2016年9月美国食品和药物管理局(FDA)有条件批准Sarepta治疗公司的新药Exondys 51,成为首个获批治疗杜氏肌营养不良症(DMD)的药物。FDA表示,Sarepta提交的数据证实该类DMD患者(抗肌营养不良蛋白基因中存在可导致51号外显子跳跃的确证突变))经Exondys 51治疗后抗肌营养不良蛋白(dystrophin)水平升高,而这可以合理的预测这些DMD患者中的临床受益。今年,FDA宣布加速批准Sarepta治疗公司Vyondys 53上市。
(图片来源网络)
2、无义突变通读
无义突变导致pre-mRNA出现提前终止密码子,使肽链合成提前终止,导致目的蛋白合成障碍或截短。研究显示,某些化学物质可以诱导提前终止密码子位点的通读,抑制其导致的翻译提前终止,使全长蛋白恢复表达,尽管可能需要在提前终止密码子位点引入错误氨基酸。
无义突变占所有DMD基因突变类型的10%~15%,目前研究显示,可用于DMD基因无义突变通读治疗的药物主要有氨基糖苷类抗生素、非氨基糖苷类抗生素、PTC124、RTC13、RTC14等,其中氨基糖苷类抗生素和PTC124目前已进入临床试验阶段。2018年11月解放军总医院第三医学中心的全球DMD无义突变中国区域临床试验也正式启动。目前,欧洲药物管理局 (EMA)业已批准PTC124用于治疗Duchenne型肌营养不良症,但美国食品与药品管理局认为Ⅲ期临床试验未能证明其有效性,拒绝在美国上市。
3、 腺相关病毒介导的微小抗肌萎缩蛋白基因替代治疗
这是一款在研静脉注射基因疗法。它将由人类肌肉特异性启动子控制的“迷你”抗肌萎缩蛋白(mini-dystrophin)转基因装在腺相关病毒9(AAV9)载体中。AAV9病毒载体具有向肌肉组织靶向递送转基因的能力。这款在研疗法已经被FDA授予孤儿药资格和罕见儿科疾病药物认定(rare pediatric diseasedesignation)。
2020年5月15日,辉瑞(Pfizer)公司宣布,其在研基因疗法PF-06939926,在治疗杜兴氏肌营养不良症(DMD)患者的1b期临床试验中,表现出良好的耐受性和令人鼓舞的疗效,以及可控制的安全性事件。
2020年8月,美国FDA宣布,加速批准日本新药株式会社(Nippon Shinyaku)子公司NS Pharma开发的Viltepso(viltolarsen)上市,用于治疗特定杜氏肌营养不良(DMD)患者。
2020年9月,Sarepta公司公布了DMD候选基因疗法SRP-9001的临床研究数据,数据显示:SRP-9001具有良好的安全性和持久的疗效。2021年5月18日, Sarepta展示了其在研基因疗法SRP-9001的最新临床试验结果,结果证明这种疗法能有效升高人体内抗肌萎缩蛋白的表达水平,且安全性与耐受性良好。
2021年1月,美国全国儿童医院(Nationwide Children’s Hospital)基因治疗中心的研究人员在在JAMA Neurology发表了前四名接受AAV基因疗法SRP-9001治疗的前4名DMD患者的安全性方面数据:所有与治疗相关的事件都是轻度到中度,没有严重的不良事件。
(图片来源网络)
基因疗法未来可期,我们也期待DMD的基因疗法终有一天可以正式应用于临床,彻底结束DMD这种神经肌肉病给患儿带来的痛苦。
引发类型为“System.OutOfMemoryException”的异常。
在 System.String.CreateStringFromEncoding(Byte* bytes, Int32 byteLength, Encoding encoding) 在 System.Text.UnicodeEncoding.GetString(Byte[] bytes, Int32 index, Int32 count) 在 System.Data.SqlClient.TdsParserStateObject.TryReadString(Int32 length, String& value) 在 System.Data.SqlClient.TdsParser.TryReadSqlStringValue(SqlBuffer value, Byte type, Int32 length, Encoding encoding, Boolean isPlp, TdsParserStateObject stateObj) 在 System.Data.SqlClient.TdsParser.TryReadSqlValue(SqlBuffer value, SqlMetaDataPriv md, Int32 length, TdsParserStateObject stateObj) 在 System.Data.SqlClient.SqlDataReader.TryReadColumnInternal(Int32 i, Boolean readHeaderOnly) 在 System.Data.SqlClient.SqlDataReader.TryReadColumn(Int32 i, Boolean setTimeout, Boolean allowPartiallyReadColumn) 在 System.Data.SqlClient.SqlDataReader.GetValues(Object[] values) 在 System.Data.ProviderBase.DataReaderContainer.CommonLanguageSubsetDataReader.GetValues(Object[] values) 在 System.Data.ProviderBase.SchemaMapping.LoadDataRow() 在 System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping) 在 System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue) 在 System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords) 在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) 在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) 在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) 在 Whir.Repository.Database.Query(String sql, Object[] args) 在 Whir.Label.Dynamic.Content.GetColumnFileValue() 在 Whir.Label.Dynamic.Content.Render(HtmlTextWriter output) ''标签解析异常!
引发类型为“System.OutOfMemoryException”的异常。
在 System.Data.SqlClient.TdsParserStateObject.TryReadString(Int32 length, String& value) 在 System.Data.SqlClient.TdsParser.TryReadSqlStringValue(SqlBuffer value, Byte type, Int32 length, Encoding encoding, Boolean isPlp, TdsParserStateObject stateObj) 在 System.Data.SqlClient.TdsParser.TryReadSqlValue(SqlBuffer value, SqlMetaDataPriv md, Int32 length, TdsParserStateObject stateObj) 在 System.Data.SqlClient.SqlDataReader.TryReadColumnInternal(Int32 i, Boolean readHeaderOnly) 在 System.Data.SqlClient.SqlDataReader.TryReadColumn(Int32 i, Boolean setTimeout, Boolean allowPartiallyReadColumn) 在 System.Data.SqlClient.SqlDataReader.GetValues(Object[] values) 在 System.Data.ProviderBase.DataReaderContainer.CommonLanguageSubsetDataReader.GetValues(Object[] values) 在 System.Data.ProviderBase.SchemaMapping.LoadDataRow() 在 System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping) 在 System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue) 在 System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords) 在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) 在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) 在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet) 在 Whir.Repository.Database.Query(String sql, Object[] args) 在 Whir.Label.Dynamic.Content.GetColumnFileValue() 在 Whir.Label.Dynamic.Content.Render(HtmlTextWriter output)



