项目文章 | PNAS 斑马鱼转录因子ChIP-seq助力解析GATA6突变相关的肝脏疾病机制
近日,西南大学阮华/黄红辉团队联合重庆大学邱菊辉/王贵学团队在PNAS发表了题为“An animal model recapitulates human hepatic diseases associated with GATA6 mutations”的研究论文。该研究构建了一个gata6敲除斑马鱼模型,它重现了gata6突变患者的大部分症状,包括心脏流出道缺陷、胰腺发育不全/发育不全、胆囊发育不全和各种肝病。然后,利用该模型研究了GATA6突变相关的人类肝脏疾病的表型和机制。爱基百客为该研究提供ChIP-seq的技术支持。

研究背景
GATA6是一种锌指转录因子,参与多种发育过程的组织特异性表达和调节。GATA6在心脏、胰腺、肝脏和其他器官的早期发育中起关键作用。在人类中,杂合子GATA6突变与多种先天性心脏病、胰腺发育不全或无胰腺、胆道异常(如胆囊缺失、肝内胆管稀少)以及其他消化系统异常有关。此外,GATA6突变还与先天性甲状腺功能减退症和神经认知障碍等其他异常有关。
由于GATA6在早期胚胎发育中的重要作用,传统的Gata6敲除小鼠模型无法存活到足够的时间以观察消化系统的发育异常。因此,缺乏一个能够全面模拟GATA6突变相关症状的动物模型。斑马鱼没有胚外内脏内胚层,因此,斑马鱼模型可以规避Gata6敲除小鼠的这一限制。这种模型可以更好地模拟人类GATA6突变相关的症状。该研究的目标是通过建立斑马鱼模型,全面模拟人类GATA6突变相关的症状,并揭示其分子机制,为理解和治疗这些疾病提供新的见解。
研究思路

研究结果
1. 斑马鱼gata6突变体表现出与人类GATA6缺陷相关的多种缺陷
为了分析GATA6在人类先天性缺陷中的作用,利用CRISPR/Cas9基因编辑技术构建了斑马鱼gata6突变体。心脏畸形是人类GATA6突变最常见的特征。在受精后30小时(hpf),gata6突变体出现心包水肿、心率降低以及血流阻塞。从其他表型数据看,gata6在斑马鱼中的敲除导致心脏发育缺陷。
观察到的最显著现象是大多数gata6突变体的血液循环恢复,这在此前未曾报道过。由于gata4/5/6在斑马鱼心脏发育中具有功能冗余性,研究检测了gata6突变体中的gata4和gata5的表达情况。在心脏中都检测到了这两个基因的转录,但是在血液循环恢复之前的30hpf时间点,与同胞相比,gata5的表达升高,而gata4未变化(图1C)。为了研究心管中gata5表达的升高是否是gata6突变体血液循环恢复的原因,研究构建了gata4和gata5突变体。在gata6突变体中,血液循环的恢复被gata5的杂合突变显著阻碍;然而,gata4的杂合突变并未产生影响(图1D)。使用低剂量基因特异性形态发生素抑制gata5表达也观察到了类似的作用。这些结果表明,心管中gata5表达的升高导致了大多数gata6突变体的血液循环恢复。
血液循环的恢复规避了心脏缺陷对大多数gata6突变体胚胎发育的破坏性影响,从而为研究消化器官的器官发生提供了机会,而消化器官异常在携带GATA6突变的人类患者中非常常见。从已分化的祖细胞(36hpf)到分化细胞(3.5dpf),突变体的外分泌腺显著发育不良,而胰岛素阳性的胰岛在形态上基本正常(图1E)。在3.5dpf时,大约一半的突变胚胎观察到肠道旋转异常(图1F)。在细胞分化阶段(从52hpf到3.5dpf),gata6突变体的肝脏比同胞的肝脏更小;然而,到7.5dpf时,尽管突变体肝脏呈灰色且缺少左叶,其大小几乎与同胞相当。虽然突变体肝脏的血管网络在7.5dpf时基本保持完整,但其肝内胆管系统严重受损(图1G和H),在3.5dpf时也是如此(图1J)。在突变体中观察到少量胆管细胞簇,与同胞中高度分支的肝内胆管(IHD)系统明显不同(图1G–J)。胆小管在突变体中也受到破坏且组织紊乱(图1H和I)。BODIPY-FL C5:0是一种代谢的荧光脂质类似物,能够被肝脏吸收并与胆盐一起由同胞的肝细胞分泌;然而,在突变体肝脏中未能被运输,反而滞留并形成大液滴(图1K)。胆管稀少通常会导致肝内胆汁淤积。实时定量PCR分析显示,经典胆汁酸合成基因(cyp7a1和cyp8b1)显著下调,而nr0b2a和abcb11b(两个nr1h4的典型靶基因,编码胆汁酸受体FXR)显著上调,这些是肝内胆汁淤积的典型基因表达模式。除了严重受损的肝内胆管网络外,gata6突变体在5.5dpf时还表现出胆囊缺失(图1K)。
总的来说,斑马鱼gata6突变体表现出疏流道心脏缺陷、胰腺发育缺失、肠管旋转异常、胆囊缺失、肝内胆管稀少和胆汁淤积,这些症状再现了在人类GATA6突变患者中观察到的大部分临床表型。

图1:gata6的敲除会导致斑马鱼的各种缺陷
2. 斑马鱼中gata6的敲除损害了肝母细胞的形成以及胆管细胞的分化和增殖
肝脏中的两种主要细胞类型是肝细胞和胆管细胞,它们均由肝前体细胞分化而来。在30hpf时,突变体的肝前体细胞形成的肝芽相比同胞略小一些(图2A)。在32和36hpf时,这种大小差异更加明显,突变体肝脏中的肝前体细胞数量约为同胞的一半(图2B和C)。
为了研究gata6对后续细胞分化的影响,在72hpf时分析了肝脏中的细胞类型。在gata6突变体肝脏中,检测到的胆管细胞(高水平Alcama)和肝细胞(非常低或无Alcama)数量比其同胞少,此外,胆管细胞在gata6突变体肝脏中的比例显著减少(图2D–F)。在48至72hpf时观察肝脏时,同胞中肝细胞和胆管细胞的数量均相应增加,但在突变体中,胆管细胞未能扩增,而肝细胞则持续增殖(图2G–J)。这些数据表明,gata6对胆管细胞分化的影响大于对肝细胞的影响。在36hpf至3.5dpf期间,进一步检查了肝脏中的凋亡和细胞增殖情况,在突变体中未观察到异常的TUNEL信号,且EdU阳性细胞的比例在突变体与同胞之间相当。这些数据表明,gata6缺失损害了肝前体细胞的初始形成,破坏了胆管细胞的分化和增殖,这可能是突变体肝内胆管网络受损的原因。

图2:斑马鱼中gata6的缺失会导致肝胆异常
3. Hhex结合Gata6,启动早期肝脏发育
根据在gata6突变体中观察到的消化器官表型,对现有数据进行了表型筛查,发现gata6突变体几乎被斑马鱼造血表达同源框基因(hhex)突变体所表型复制。此外,在Foxa3-Cre;Hhexd2,3/-条件性敲除小鼠中也观察到了肝囊肿。与此前报道一致,在斑马鱼hhex突变体中观察到了小肝脏、异常的肝内胆管网络、胆囊缺失以及胰腺发育不全/缺失(图3A和B),这些与gata6突变体中的缺陷相似。这些数据强烈提示Gata6和Hhex之间存在功能性联系。
当使用RNA原位杂交分别检查突变体中的基因表达时,未发现hhex和gata6之间存在转录调控关系(图2A)。随后测试了Gata6和Hhex之间可能的物理相互作用,发现Hhex可以与Gata6共免疫沉淀,但不能与Gata6的突变变体Gata6Δ20共免疫沉淀(图3C和D)。为了表征Gata6与Hhex结合所需的关键结构域,对Gata6引入了四种不同的突变以删除特定结构域(图3E)。研究发现,删除Gata6的C端、两个串联的ZnF结构域或GATA-N(而非N端)会破坏其与Hhex的相互作用(图3F和G)。
为了测试Gata6和Hhex相互作用的生物学功能意义,生成了gata6和hhex的双突变体。在双突变体中,既检测不到肝前体细胞,也检测不到外分泌胰腺前体细胞,因此无法检测到肝细胞或外分泌胰腺细胞(图3H)。这些数据表明,Gata6和Hhex在肝脏和外分泌胰腺器官发生的早期阶段共同发挥作用。

图3:Gata6与Hhex在物理上和遗传上相互作用。
4. Gata6和Hhex协同激活lrh-1基因的表达
在表型筛查中,另一个显示与hhex和gata6突变体相似的消化器官表型的斑马鱼突变品系是孤儿核受体及转录因子肝受体同源物1(Lrh-1,也称为核受体亚家族5A组成员2,Nr5a2)突变体。除了之前报告的肝脏和胰腺缺陷外,在lrh-1突变体中还观察到了严重受损的肝内胆管网络(图4A和B);然而,通过2F11免疫染色显示,在5.5dpf时突变体的胆囊在形态上可识别但较小,尽管不能完全排除由于肝内胆管网络受损导致胆汁无法运输以充盈胆囊的可能性。
小鼠和人类LRH-1启动子中存在多个GATA转录因子保守结合位点。因此,lrh-1可能参与gata6和hhex在肝脏发育中的下游过程。敲除gata6或hhex中的任何一个都会显著降低肝脏区域的lrh-1表达(图4C)。Jaspar数据库分析显示斑马鱼lrh-1编码序列上游3kb的DNA片段包含九个推测的GATA结合位点(图4D)。将这一3kb的DNA片段克隆并与荧光素酶报告基因融合。启动子活性实验显示,Gata6和Hhex均可以在HepG2细胞中激活荧光素酶表达。更重要的是,Gata6和Hhex协同显著增强了这一活性(图4E);因此,该3kbDNA片段被命名为斑马鱼lrh-1启动子。
接下来,删除了lrh-1启动子中靠近5-prime的五个推测的GATA结合位点,生成了长度为1.5kb的DNA片段。荧光素酶实验显示,这一删除显著降低了lrh-1启动子的活性,提示这些推测的GATA结合位点对于Gata6激活转录至关重要(图4F)。由于在斑马鱼中缺乏有效的Gata6抗体,生成了一条可诱导的转基因品系Tg(pIDM:HA-gata6),以在多西环素(Dox)处理下激活HA标签的Gata6表达。利用这一品系,进行了染色质免疫共沉淀和qPCR(ChIP-qPCR)实验,结果显示在Dox处理组中,Gata6显著富集于含有推测结合位点的斑马鱼lrh-1启动子区域(图4G)。一致的是,通过对3.5dpf Tg(pIDM:HA-gata6)胚胎的ChIP-seq分析也揭示了这些推测结合位点的富集(图4H)。
随后测试了突变Gata6变体的转录活性能力。N端缺失的Gata6变体部分丧失了转录活性,另外三种突变的Gata6变体几乎完全失去了转录活性。与Hhex共表达这四种突变Gata6变体表现出极少或完全没有协同作用(图4I)。因此,lrh-1的协同激活似乎需要完整的Gata6以及其与Hhex的物理相互作用。
为了测试lrh-1激活失败是否是gata6−/−;hhex−/−双突变体中表型的原因,生成了一条可诱导的转基因品系Tg(hsp70:HAM-lrh-1),以避免lrh-1过表达导致的胚胎早期致死现象。如先前报道,诱导的lrh-1表达在胚胎中引发了强烈的背化作用;然而,prox1的表达在gata6−/−;hhex−/−双突变体中得到了部分恢复(图4J)。总之,研究发现表明,Hhex/Gata6通过调控lrh-1的转录表达至少部分参与了斑马鱼肝脏发育。

图4:Gata6和Hhex协同激活lrh-1转录
5. Gata6、Hhex和Lrh-1之间的相互作用调节β-Catenin信号传导
β-catenin信号对于调控肝脏规范化和肝内胆管网络的形成至关重要。文献报道过的分子证据显示了LRH-1和β-catenin之间的协同作用。与之前的报道一致,Lrh-1和β-catenin的共转染有效激活了TOP-FLASH报告基因(图5D),表明Lrh-1在激活β-catenin信号中的作用。鉴于Gata6和Hhex协同激活lrh-1表达,因此,在gata6、hhex和lrh-1突变体中,β-catenin信号可能被降低。在30hpf时,所有三种突变体的肝脏中均显示出myca和mycb(内源性β-catenin靶基因)的表达减少(图5A)。此外,GATA6或HHEX敲低扰乱了HepG2细胞中LRH-1的表达,而当GATA6、HHEX或LRH-1中任意一个被敲低时,发现β-catenin信号的靶基因表达下调。这些数据表明了存在一个网络,其中Gata6与Hhex相互作用以促进lrh-1的转录,并增强其对β-catenin信号的激活。
为了研究在gata6、hhex和lrh-1突变体中观察到的β-catenin信号下调的生物学后果,通过使用β-catenin信号的抑制剂XAV939或SSTC3在斑马鱼胚胎中抑制了该信号,结果在3.5dpf时出现了小肝脏和聚集在结节中的胆管细胞(图5B),与这三个突变体中观察到的表型相似。此外,斑马鱼突变体prometheus(prt/wnt2bb),其肝脏中的β-catenin信号缺陷,也被发现具有小肝脏以及严重破坏的肝内胆管网络和胆小管(图5C),这些与三个突变体中的肝脏表型相似。这些数据表明,β-catenin信号的减弱似乎是gata6、hhex和lrh-1突变体中肝脏表型的潜在原因。
考虑到三个突变体中Lrh-1对β--catenin信号的激活受到干扰,研究在Gata6过表达中进行了检测。Lrh-1和β--catenin激活了TOP-FLASH报告基因;然而,这一活性通过Gata6共表达以剂量依赖的方式显著减弱(图5D)。为了进一步阐明其机制,研究并验证了Gata6与Lrh-1之间可能的相互作用(图5E)。为定位Gata6中与Lrh1相互作用相关的区域,对四种突变的Gata6变体进行了与Lrh-1的免疫共沉淀实验,发现只有N端缺失的突变Gata6能够与Lrh1结合。一致的是,这一突变的Gata6变体显著降低了Lrh-1-β--catenin信号的活性,与野生型一样有效。考虑到Gata6能促进lrh-1的表达,并且Gata6与Lrh-1有相互作用,可以合理推测,当Gata6过表达时,过量的Lrh-1与Gata6之间的相互作用可能会影响Gata6的转录活性。这一负反馈效应通过以下观察得到了确认:Lrh-1的存在能够显著降低Gata6和Hhex对lrh-1启动子的激活作用(图5F)。因此,Lrh-1与Gata6之间的相互作用对于确保适当的Gata6活性所需的反馈调节是必要的。
Western blot结果显示,当与Hhex共同表达时,Gata6蛋白水平显著减少,且这种作用呈剂量依赖性(图3C)。在用环己酰亚胺(CHX)抑制蛋白合成后,Hhex诱导的Gata6降解被进一步加剧(图5G),但这种降解效应可以被蛋白酶体抑制剂MG132阻断,说明Hhex通过蛋白酶体途径促进了Gata6蛋白的降解。此外,这种效应似乎独立于Hhex和Gata6之间的相互作用,因为突变的Gata6蛋白,除了缺失ZnFs(Gata6Δ295-395),无论是否能够与Hhex相互作用,也与Hhex的共表达降解。进一步分析表明,Hhex不仅协助Gata6激活下游基因lrh-1的表达,还可能防止Gata6蛋白过量积累。
总之,Gata6与Hhex相互作用,共同协同促进lrh-1的转录;相反,Lrh-1结合Gata6以防止其自身转录的过度激活。此外,Gata6的水平通过Hhex介导的蛋白酶体降解进行调控。Gata6、Hhex和Lrh-1这三个转录因子之间的相互作用精确调节了Gata6的活性、Lrh-1的产生以及β-catenin信号的输出,从而确保了斑马鱼肝脏的正常发育(图5H)。

图5:Gata6、Hhex和Lrh-1之间的协同相互作用调节了β-catenin信号的输出
6. 与肝胆畸形相关的GATA6突变体与HHEX发生异常的相互作用
在斑马鱼中的发现促使研究团队测试这里识别的机制是否也发生在人类携带GATA6突变的患者中。研究了人类GATA6与HHEX之间的相互作用。共免疫沉淀分析显示,GATA6可以与HHEX共免疫沉淀(图6A)。同时注意到,当与HHEX共表达时,GATA6蛋白水平显著下降且呈剂量依赖性(图6B和C),而MG132能够减弱HHEX诱导的GATA6降解(图6D)。这些结果与在斑马鱼中的观察结果一致。
迄今为止,已有约140例携带GATA6突变的人类患者被报道。关于肝胆畸形的数据涉及19名携带者,包括15种外显子变异和两种剪切变异。构建了这15种外显子变异(图6E),并克隆了人类LRH-1编码序列上游3kb的DNA片段,其中包含14个潜在的GATA结合位点。荧光素酶报告实验显示,野生型GATA6显著提高了-3 kb LRH-1启动子的活性(图6F)。相比之下,大多数突变的GATA6变体无法转录激活LRH-1启动子,而错义突变p.Gly469Glu和p.Lys473Gln则保留了大部分能力(图6F)。选取了五种GATA6突变体作为代表,以分析其与HHEX的可能相互作用。共免疫沉淀实验揭示,与野生型相比,这些突变的GATA6变体显著降低了与HHEX的相互作用能力(图6G)。
一致地,野生型GATA6和HHEX协同激活了LRH-1启动子,而这种协同作用在GATA6突变体中被削弱(图6H)。此外,与自身转录激活能力的轻微影响不同,p.Gly469Glu和p.Lys473Gln突变体仅保留了残余的HHEX相互作用能力,并且分别对激活LRH-1启动子表现出无协同作用或较弱的协同作用。这些数据表明,与肝胆畸形相关的GATA6突变可能部分是由于其与HHEX的异常相互作用,从而削弱了对LRH-1的激活作用。有趣的是,人类GATA6和HHEX能够协同激活斑马鱼lrh-1启动子(图6I);然而,斑马鱼Gata6和Hhex对人类LRH-1启动子的激活效率较低。总体而言,这些数据表明,由GATA6、HHEX和LRH-1组成的转录调控网络在正常肝脏发育中起着至关重要的作用,尤其是在斑马鱼胆管系统的建立过程中,该调控网络在人类中似乎是保守的。
总 结
该研究建立了一个gata6敲除的斑马鱼模型,重现了人类GATA6突变患者的多数症状,包括心脏流出道缺陷、胰腺发育不全、胆囊缺失和肝病,尤其表现出肝内胆管稀少、胆小管受损、胆汁淤积,并首次发现肝囊肿表型。机制上,Gata6通过与Hhex协同作用激活lrh-1表达,增强Lrh-1介导的β-catenin信号至关重要,该过程受负反馈和Hhex介导的蛋白降解调控。这一机制在人类细胞中保守。这里建立的疾病模型提供了与GATA6突变相关的人类肝脏疾病的表型和机制的见解。
ChIP-seq简介
爱基百客王牌产品
ChIP-seq技术将染色质免疫共沉淀和二代测序技术结合,是研究体内蛋白质与DNA相互作用的有力工具,可用于组蛋白修饰、RNA聚合酶、转录因子和辅因子以及G4链体(G4)等方面的研究,技术成熟稳定。爱基百客ChIP-seq可提供:
01.ChIP-seq测序分析
Peak分析:Peak注释和分布分析,Peak关联基因的GO、KEGG的注释和富集分析,转录因子和Motif分析等。
多样本差异分析:差异Peak分布情况统计,差异Peak关联基因GO、KEGG功能注释与富集,转录因子预测,Motif预测等。
02.后续验证
· ChIP-qPCR
分析组蛋白修饰/转录因子与染色质区域的结合情况,揭示染色质状态和基因表达调控之间的关系,真实反映结合特性。
· EMSA
基于DNA-蛋白质复合体在聚丙烯酰胺凝胶电泳(PAGE)中的迁移率不同,检测活化的与DNA结合的蛋白转录或调节因子。
· 双荧光素酶报告实验
检测转录因子与靶启动子的特异结合。
03.ChIP-seq+转录组关联分析
ChIP-seq和转录组关联分析可以做以下2个方面的研究
· DNA结合蛋白和基因表达调控:
通过ChIP-seq技术可以确定DNA结合蛋白(如转录因子)的结合位点,然后与转录组数据结合分析,可以获得转录因子直接调控的靶基因,为全面理解转录因子调控功能提供依据。
· 组蛋白修饰和基因表达:
ChIP-seq可以用于鉴定组蛋白修饰的位点,结合转录组数据可以了解这些修饰对基因表达的影响。
04.爱基百客ChIP-seq三大优势
· 优势一:
项目经验丰富,研究物种200+种,累计实验2000余次。全面覆盖医口和农口等不同样本,不惧特殊样本(如脂肪组织、高淀粉组织和真菌类),抗体经验也极其丰富(多种组蛋白修饰、转录因子、标签抗体以及p300和RNApol II等均有涉及);
· 优势二:
提供前期实验设计、测序、分析以及后期验证(ChIP-qPCR、EMSA)一站式服务;
· 优势三:
项目文章多次发表于Science、Cancer Cell、Nature Plants、Nature Metabolism以及Plant Cell等期刊。

相关文章:
项目文章 | PNAS 斑马鱼转录因子ChIP-seq助力解析GATA6突变相关的肝脏疾病机制
近日,西南大学阮华/黄红辉团队联合重庆大学邱菊辉/王贵学团队在PNAS发表了题为“An animal model recapitulates human hepatic diseases associated with GATA6 mutations”的研究论文。该研究构建了一个gata6敲除斑马鱼模型,它重现了gata6突变患者的大…...
easyexcel-导入(读取)(read)-示例及核心部件
文章目录 导入(读取)(read)-示例及核心部件导入(读取)(read)-核心部件EasyExcel(EasyExcelFactory) # 入口read() # read()方法用于构建workbook(工作簿)对象,new ExcelReaderBuilder()doReadAll()这里选XlsxSaxAnalyser这个实现类吧然后到这个类XlsxRowHandler&…...
作业day3
请使用dup2 fgets printf 实现文件拷贝功能、 文件1: 复后文件: #define BUFFER_SIZE 1024 void file_copy(const char* src_file, const char* dest_file) { int src_fd, dest_fd; char buffer[BUFFER_SIZE]; // 打开源文件 src_fd open(s…...
第五节 MATLAB命令
本节的内容将提供常用的一些MATLAB命令。 在之前的篇章中我们已经知道了MATLAB数值计算和数据可视化是一个交互式程序,在它的命令窗口中您可以在MATLAB提示符“>>”下键入命令。 MATLAB管理会话的命令 MATLAB提供管理会话的各种命令。如下表所示:…...
Oracle 普通用户连接hang住处理方法
一、现象说明 $ sqlplus / as sysdbaSQL*Plus: Release 19.0.0.0.0 - Production on Wed Dec 18 16:49:19 2024 Version 19.11.0.0.0Copyright (c) 1982, 2020, Oracle. All rights reserved.Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Pro…...
理解C++中的右值引用
右值引用,顾名思义,就是对一个右值进行引用,或者说给右值一个别名。右值引用的规则和左值一用一模一样,都是对一个值或者对象起个别名。 1. 右值引用和左值引用一样,在定义的同时必须立即赋值,如果不立即赋…...
02-机器学习-核心概念
以下是机器学习核心概念的详细梳理。 1. 机器学习三大范式 类型定义典型应用监督学习使用带标签的数据训练模型,预测未知数据的标签。分类(邮件垃圾过滤)、回归(房价预测)无监督学习从无标签的数据中发现隐藏模式或结…...
1.26 实现文件拷贝的功能
使用dup2fgetsprintf实现文件拷贝的功能。 #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <pthread.h> #in…...
ES6+新特性,var、let 和 const 的区别
在 JavaScript 中,var、let 和 const 都用于声明变量,但它们有一些重要的区别,主要体现在 作用域、可变性和提升机制 等方面。 1. 作用域(Scope) var: var 声明的变量是 函数作用域,也就是说,它…...
HarmonyOS简介:HarmonyOS核心技术理念
核心理念 一次开发、多端部署可分可合、自由流转统一生态、原生智能 一次开发、多端部署 可分可合 自由流转 自由流转可分为跨端迁移和多端协同两种情况 统一生态 支持业界主流跨平台开发框架,通过多层次的开放能力提供统一接入标准,实现三方框架快速…...
嵌入式C语言:结构体对齐
目录 一、对齐的原因 1.1. 硬件访问效率 1.2. 内存管理简化 1.3. 编译器优化 1.4. 代码示例 二、对齐规则 2.1. 基本数据类型对齐 2.2. 结构体成员对齐 2.3. 结构体整体对齐 2.4. 代码示例 三、对齐控制 3.1. 使用 #pragma pack 3.2. 使用 __attribute__((packed)…...
【Rust自学】15.5. Rc<T>:引用计数智能指针与共享所有权
喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 15.5.1. 什么是Rc<T> 所有权在大部分情况下都是清晰的。对于一个给定的值࿰…...
谈谈RTMP|RTSP播放器视频view垂直|水平反转和旋转设计
技术背景 我们在做RTMP|RTSP播放器的时候,有这样的技术诉求,有的摄像头出来的数据是有角度偏差的,比如“装倒了”,或者,图像存在上下或者左右反转,这时候,就需要播放器能做响应的处理ÿ…...
decison tree 决策树
熵 信息增益 信息增益描述的是在分叉过程中获得的熵减,信息增益即熵减。 熵减可以用来决定什么时候停止分叉,当熵减很小的时候你只是在不必要的增加树的深度,并且冒着过拟合的风险 决策树训练(构建)过程 离散值特征处理:One-Hot…...
GO语言 链表(单向链表
链表的前提 GO语言的链表类似于C语言的链表,它通过结构体和结构体指针实现。 结构体 GO语言定义结构体如下 type user struct {name stringage intnext *user } 结构体指针 结构体指针就是指向结构体的指针,我们在链表中会用到结构体指针实现链…...
Java:初识Java
初识Java 一.Java语言概述 1. Java是什么 Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义。 不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的…...
Spring WebSocket 与 STOMP 协议结合实现私聊私信功能
目录 后端pom.xmlConfig配置类Controller类DTO 前端安装相关依赖websocketService.js接口javascripthtmlCSS 效果展示简单测试连接: 报错解决方法1、vue3 使用SockJS报错 ReferenceError: global is not defined 功能补充拓展1. 安全性和身份验证2. 异常处理3. 消息…...
从0到1:C++ 开启游戏开发奇幻之旅(一)
目录 为什么选择 C 进行游戏开发 性能卓越 内存管理精细 跨平台兼容性强 搭建 C 游戏开发环境 集成开发环境(IDE) Visual Studio CLion 图形库 SDL(Simple DirectMedia Layer) SFML(Simple and Fast Multim…...
基于Flask的哔哩哔哩综合指数UP榜单数据分析系统的设计与实现
【Flask】基于Flask的哔哩哔哩综合指数UP榜单数据分析系统的设计与实现(完整系统源码开发笔记详细部署教程)✅ 目录 一、项目简介二、项目界面展示三、项目视频展示 一、项目简介 该系统旨在通过大数据分析和数据挖掘技术,结合Flask轻量级We…...
在php中怎么打开OpenSSL
(点击即可进入聊天助手) 背景 在使用php做一些项目时,有用到用户邮箱注册等,需要开启openssl的能力 在php系统中openssl默认是关闭状态的,在一些低版本php系统中,有的甚至需要在服务器终端后台,手动安装 要打开OpenSSL扩展,需要进行以下步骤 …...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
uniapp中使用aixos 报错
问题: 在uniapp中使用aixos,运行后报如下错误: AxiosError: There is no suitable adapter to dispatch the request since : - adapter xhr is not supported by the environment - adapter http is not available in the build 解决方案&…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
