当前位置: 首页 > news >正文

CellMarker | 人骨骼肌组织细胞Marker大全!~(强烈建议火速收藏!)

1写在前面

分享一下最近看到的2paper关于骨骼肌组织的细胞Marker,绝对的Atlas级好东西。👍

希望做单细胞的小伙伴觉得有用哦。😏

2常用marker(一)

general_mrkrs <- c(
'MYH7', 'TNNT1', 'TNNT3', 'MYH1', 'MYH2', "CKM", "MB", # Myofibers
'PAX7', 'DLK1', # MuSCs
'PDGFRA', 'DCN', 'ANGPTL7', 'OSR2', 'NGFR', 'SLC22A3','ITGA6', # Fibroblasts
'FMOD', 'TNMD' , 'MKX', # Tenocytes
'MPZ', 'MBP', # Schwann cells
'CDH2', 'L1CAM', # SCG
'MSLN', 'ITLN1', # mesothelium
"ADIPOQ", "PLIN1", # adipocytes
'PTPRC', 'CD3D', 'IL7R', # T cells
'NKG7', 'PRF1', #NK cells
'CD79A', "TCL1A", # B cells
'MZB1', 'JCHAIN', # B plasma
"CD14", "FCGR3A",'S100A8', 'S100A12', # Mono
"CD163", "C1QA", # Macrop
"XCR1", "CLEC9A", # cDC1 "CADM1",
"CD1C", "CLEC10A", "CCR7", # cDC2
'LILRA4', 'IL3RA', "IRF7", # pDC
'FCGR3B', 'CSF3R', 'SORL1', # Neutrophils
'EPX', 'PRG2', # Eosinophils 'CLC'
'TPSB2', 'MS4A2', # Mast cells
'PECAM1', 'HEY1','CLU', # art EC
'CA4', 'LPL', # capEC
'ACKR1', 'SELE', # venEC
'LYVE1', 'TFF3', # lymphEC
'RGS5','ABCC9', # pericytes
'MYH11', 'ACTA2', # SMC
'HBA1', #RBC
)

出自下面paper:👇

Human skeletal muscle aging atlas. Veronika R. Kedlian, Yaning Wang, Tianliang Liu, Xiaoping Chen, Liam Bolt, Catherine Tudor, Zhuojian Shen, Eirini S. Fasouli, Elena Prigmore, Vitalii Kleshchevnikov, Jan Patrick Pett, Tong Li, John E G Lawrence, Shani Perera, Martin Prete, Ni Huang, Qin Guo, Xinrui Zeng, Lu Yang, Krzysztof Polański, Nana-Jane Chipampe, Monika Dabrowska, Xiaobo Li, Omer Ali Bayraktar, Minal Patel, Natsuhiko Kumasaka, Krishnaa T. Mahbubani, Andy Peng Xiang, Kerstin B. Meyer, Kourosh Saeb-Parsy, Sarah A Teichmann & Hongbo Zhang 2024 Apr.

3常用marker(二)

Mural Cell Markers

#SMOOTH MUSCLE CELLS
FeaturePlot(df.harmony, features = "MYH11", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "ACTA2", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "TAGLN", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)

#PERICYTES
FeaturePlot(df.harmony, features = "RGS5", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "CSPG4", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "PDGFRB", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)

Glial Cells Markers

FeaturePlot(df.harmony, features = "PROX1", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "MPZ", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "NCAM1", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "CDH19", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "SOX10", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "PLP1", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)


Adipocites Markers

FeaturePlot(df.harmony, features = "PLIN1", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "ADIPOQ", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "MMRN1", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "CCL21", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)

Tenocytes Markers

FeaturePlot(df.harmony, features = "FMOD", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "TNMD", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "COL22A1", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "SCX", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "DLG2", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "FBN1", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)

Endothelial Markers

#FeaturePlot(df.harmony, features = "PCDHA6", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)

#ARTERIAL
FeaturePlot(df.harmony, features = "FBLN5", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "DLL4", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "SEMA3G", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)

#CAPILLARIES
FeaturePlot(df.harmony, features = "RGCC", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)

#VENOUS
FeaturePlot(df.harmony, features = "EPHB4", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)

Myonuclei Markers

FeaturePlot(df.harmony, features = "TTN", min.cutoff = "q9", order = T, cols = c("lightblue", "navy"), raster = FALSE)

#IMMATURE MYOCYTE
FeaturePlot(df.harmony, features = "MYMX", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "MYOG", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)

#REG MYONUCLEI
FeaturePlot(df.harmony, features = "FLNC", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "MYH3", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "MYH8", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "XIRP1", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)


NMJ Myonuclei Markers (Neuromuscular junction)

#NMJ
FeaturePlot(df.harmony, features = "CHRNE", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "CHRNA1", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "PRKAR1A", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "COL25A1", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "UTRN", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "COLQ", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "ABLIM2", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "VAV3", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "UFSP1", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)

MTJ Myonuclei Markers (Myotendinous junction)

#MTJ
FeaturePlot(df.harmony, features = "COL22A1", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "PIEZO2", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "COL24A1", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "COL6A1", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "FSTL1", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "COL6A3", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)
FeaturePlot(df.harmony, features = "TIGD4", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)

FeaturePlot(mini_df.harmony.harmony, features = "EYS", min.cutoff = "q9", order = TRUE, cols = c("lightblue", "navy"), raster = FALSE)

出自下面paper:👇

Lai, Y., Ramírez-Pardo, I., Isern, J. et al. Multimodal cell atlas of the ageing human skeletal muscle. Nature (2024).


alt
最后祝大家早日不卷!~

点个在看吧各位~ ✐.ɴɪᴄᴇ ᴅᴀʏ 〰

📍 往期精彩

📍 🤩 LASSO | 不来看看怎么美化你的LASSO结果吗!?
📍 🤣 chatPDF | 别再自己读文献了!让chatGPT来帮你读吧!~
📍 🤩 WGCNA | 值得你深入学习的生信分析方法!~
📍 🤩 ComplexHeatmap | 颜狗写的高颜值热图代码!
📍 🤥 ComplexHeatmap | 你的热图注释还挤在一起看不清吗!?
📍 🤨 Google | 谷歌翻译崩了我们怎么办!?(附完美解决方案)
📍 🤩 scRNA-seq | 吐血整理的单细胞入门教程
📍 🤣 NetworkD3 | 让我们一起画个动态的桑基图吧~
📍 🤩 RColorBrewer | 再多的配色也能轻松搞定!~
📍 🧐 rms | 批量完成你的线性回归
📍 🤩 CMplot | 完美复刻Nature上的曼哈顿图
📍 🤠 Network | 高颜值动态网络可视化工具
📍 🤗 boxjitter | 完美复刻Nature上的高颜值统计图
📍 🤫 linkET | 完美解决ggcor安装失败方案(附教程)
📍 ......

alt

alt

alt

alt

本文由 mdnice 多平台发布

相关文章:

CellMarker | 人骨骼肌组织细胞Marker大全!~(强烈建议火速收藏!)

1写在前面 分享一下最近看到的2篇paper关于骨骼肌组织的细胞Marker&#xff0c;绝对的Atlas级好东西。&#x1f44d; 希望做单细胞的小伙伴觉得有用哦。&#x1f60f; 2常用marker&#xff08;一&#xff09; general_mrkrs <- c( MYH7, TNNT1, TNNT3, MYH1, MYH2, "C…...

游戏名台词大赏

文章目录 原神&#xff08;圈内&#xff09; 崩坏&#xff1a;星穹铁道&#xff08;圈内&#xff09; 崩坏3&#xff08;圈内&#xff09; 原神 只要不失去你的崇高&#xff0c;整个世界都会为你敞开。 总会有地上的生灵&#xff0c;敢于直面雷霆的威光。 谁也没有见过风&…...

OpenCV如何在图像中寻找轮廓(60)

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇&#xff1a;OpenCV如何模板匹配(59) 下一篇 :OpenCV检测凸包(61) 目标 在本教程中&#xff0c;您将学习如何&#xff1a; 使用 OpenCV 函数 cv::findContours使用 OpenCV 函数 cv::d rawContours …...

java 泛型题目讲解

泛型的知识点 泛型仅存在于编译时期&#xff0c;编译期间JAVA将会使用Object类型代替泛型类型&#xff0c;在运行时期不存在泛型&#xff1b;且所有泛型实例共享一个泛型类 public class Main{public static void main(String[] args){ArrayList<String> list1new Arra…...

pptx 文件版面分析-- python-pptx(python 文档解析提取)

安装 pip install python-pptx -i https://pypi.tuna.tsinghua.edu.cn/simple --ignore-installedpptx 解析代码实现 from pptx import Presentation file_name "rag_pptx/test1.pptx" # 打开.pptx文件 ppt Presentation(file_name) for slide in ppt.slides:#pr…...

http的basic 认证方式

写在前面 本文看下http的basic auth认证方式。 1&#xff1a;什么是basic auth认证 basic auth是一种http协议规范中的一种认证方式&#xff0c;即一种证明你就是你的方式。更进一步的它是一种规范&#xff0c;这种规范是这样子&#xff0c;如果是服务端使用了basic auth认证…...

【信息系统项目管理师练习题】信息系统治理

IT治理的核心是关注以下哪项内容? a) 人员培训和发展计划 b) IT定位和信息化建设与数字化转型的责权利划分 c) 业务流程的绩效管理 d) IT基础设施的优化利用 答案: b) IT定位和信息化建设与数字化转型的责权利划分 IT治理体系框架的组成部分包括以下哪些? a) IT战略目标、IT治…...

RabbitMQ之顺序消费

什么是顺序消费 例如&#xff1a;业务上产生者发送三条消息&#xff0c; 分别是对同一条数据的增加、修改、删除操作&#xff0c; 如果没有保证顺序消费&#xff0c;执行顺序可能变成删除、修改、增加&#xff0c;这就乱了。 如何保证顺序性 一般我们讨论如何保证消息的顺序性&…...

轻松上手的LangChain学习说明书

一、Langchain是什么&#xff1f; 如今各类AI模型层出不穷&#xff0c;百花齐放&#xff0c;大佬们开发的速度永远遥遥领先于学习者的学习速度。。为了解放生产力&#xff0c;不让应用层开发人员受限于各语言模型的生产部署中…LangChain横空出世界。 Langchain可以说是现阶段…...

【论文笔记】Training language models to follow instructions with human feedback A部分

Training language models to follow instructions with human feedback A 部分 回顾一下第一代 GPT-1 &#xff1a; 设计思路是 “海量无标记文本进行无监督预训练少量有标签文本有监督微调” 范式&#xff1b;模型架构是基于 Transformer 的叠加解码器&#xff08;掩码自注意…...

嵌入式交叉编译:x265

下载 multicoreware / x265_git / Downloads — Bitbucket 解压编译 BUILD_DIR${HOME}/build_libs CROSS_NAMEaarch64-mix210-linuxcd build/aarch64-linuxmake cleancmake \-G "Unix Makefiles" \-DCMAKE_C_COMPILER${CROSS_NAME}-gcc \-DCMAKE_CXX_COMPILER${CR…...

一、Redis五种常用数据类型

Redis优势&#xff1a; 1、性能高—基于内存实现数据的存储 2、丰富的数据类型 5种常用&#xff0c;3种高级 3、原子—redis的所有单个操作都是原子性&#xff0c;即要么成功&#xff0c;要么失败。其多个操作也支持采用事务的方式实现原子性。 Redis特点&#xff1a; 1、支持…...

C语言动态内存管理malloc、calloc、realloc、free函数、内存泄漏、动态内存开辟的位置等的介绍

文章目录 前言一、为什么存在动态内存管理二、动态内存函数的介绍1. malloc函数2. 内存泄漏3. 动态内存开辟位置4. free函数5. calloc 函数6. realloc 函数7. realloc 传空指针 总结 前言 C语言动态内存管理malloc、calloc、realloc、free函数、内存泄漏、动态内存开辟的位置等…...

最近惊爆谷歌裁员

Python团队还没解散完&#xff0c;谷歌又对Flutter、Dart动手了。 什么原因呢&#xff0c;猜测啊。 谷歌裁员Python的具体原因可能是因为公司在进行技术栈的调整和优化。Python作为一种脚本语言&#xff0c;在某些情况下可能无法提供足够的性能或者扩展性&#xff0c;尤其是在…...

音频可视化:原生音频API为前端带来的全新可能!

音频API是一组提供给网页开发者的接口&#xff0c;允许他们直接在浏览器中处理音频内容。这些API使得在不依赖任何外部插件的情况下操作和控制音频成为可能。 Web Audio API 可以进行音频的播放、处理、合成以及分析等操作。借助于这些工具&#xff0c;开发者可以实现自定义的音…...

【中等】保研/考研408机试-动态规划1(01背包、完全背包、多重背包)

背包问题基本上都是模板题&#xff0c;重点&#xff1a;弄熟多重背包模板 dp[j]max(dp[j-v[i]]w[i],dp[j]) //核心思路代码&#xff08;一维数组版&#xff09; dp[i][j]max(dp[i-1][j], dp[i-1][j-v[i]]w[i])//二维数字版 一、 0-1背包 一般输入两个变量&#xff1a;体积&…...

[DEMO]给两个字符串取交集的词语

要求&#xff1a;2个英文字符串中&#xff0c;取相同的大于等于4个字母的词组 比如&#xff1a; 字符串1&#xff1a;" xingMeiLingabcdef WorldHello", 字符串2&#xff1a;"mnjqlup WorldLingLing xingMeiLingHello" 获取交接&#xff1a; [xingMeiLing…...

leetcode53-Maximum Subarray

题目 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的一个连续部分。 示例 1&#xff1a; 输入&#xff1a;nums [-2,1,-3,4,-1,2,1,-5,4] 输出&#xf…...

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之七 简单进行人脸检测并添加面具特效实现

Python 基于 OpenCV 视觉图像处理实战 之 OpenCV 简单人脸检测/识别实战案例 之七 简单进行人脸检测并添加面具特效实现 目录...

【go项目01_学习记录06】

学习记录 1 使用中间件1.1 测试一下1.2 push代码 2 URI 中的斜杆2.1 StrictSlash2.2 兼容 POST 请求 1 使用中间件 代码中存在重复率很高的代码 w.Header().Set("Content-Type", "text/html; charsetutf-8")统一对响应做处理的&#xff0c;我们可以使用中…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...