Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >​单细胞专题 | 7.单细胞下游分析——常规分析流程案例一

​单细胞专题 | 7.单细胞下游分析——常规分析流程案例一

作者头像
DoubleHelix
发布于 2022-12-16 10:53:31
发布于 2022-12-16 10:53:31
5.8K00
代码可运行
举报
文章被收录于专栏:生物信息云生物信息云
运行总次数:0
代码可运行

单细胞专题 | 1.单细胞测序(10×genomics技术)的原理 单细胞专题 | 2.如何开始单细胞RNASeq数据分析 单细胞专题 | 3.单细胞转录组的上游分析-从BCL到FASTQ 单细胞专题 | 4.单细胞转录组的上游分析-从SRA到FASTQ 单细胞专题 | 5.单细胞转录组的上游分析-从FASTQ到count矩阵 单细胞专题 | 6.单细胞下游分析——不同类型的数据读入


1.数据信息

在分离CD45阴性和CD45阳性细胞后,收集CD45阴性细胞用于后续的scRNAseq测序。

https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE130001

文献:Wang L, Sebra RP, Sfakianos JP, Allette K et al. A reference profile-free deconvolution method to infer cancer cell-intrinsic subtypes and tumor-type-specific stromal profiles. Genome Med 2020 Feb 28;12(1):24. PMID: 32111252

2.数据下载

下载解压数据:

3.数据预处理

这里的数据是10X标准输出的3个文件,这三个文件指的是:barcodes.tsv, features.tsv, matrix.mtx。这个情况就比较好处理了,barcodes.tsv就是 cell id,features.tsv就是 gene id,matrix.mtx就是计数 counts 矩阵。但我们需要整理一下文件。因为文件名多了一些信息,需要为每个样本单独建立一个文件夹,然后将该样本3个文件对应的重命名一下就可以了。就如下面是一个样本重命名后的。

当然,可以用代码解决,需要注意文件路径。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
###============1、准备原始分析数据
fs = list.files('./GSE130001_RAW/','^GSM')
library(stringr)
samples = str_split(fs,'_',simplify = T)[,1]
# x <- "GSM3729178"
lapply(unique(samples),function(x){
  y = fs[grepl(x,fs)]
  folder = paste0("GSE130001_RAW/", x)
  dir.create(folder,recursive = T)#为每个样本创建子文件夹
 
  #重命名文件,并移动到相应的子文件夹里,注意对应顺序
  file.rename(paste0("GSE130001_RAW/",y[1]),file.path(folder,"barcodes.tsv.gz"))
  file.rename(paste0("GSE130001_RAW/",y[2]),file.path(folder,"features.tsv.gz"))
  file.rename(paste0("GSE130001_RAW/",y[3]),file.path(folder,"matrix.mtx.gz"))
})

4.读入数据创建Seurat对象

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(Seurat)
# 循环读取两个文件夹下面的10x的的3个文件
samples=list.files("GSE130001_RAW/")
samples

sceList = lapply(samples,function(pro){
  folder=file.path("GSE130001_RAW/",pro)
  CreateSeuratObject(counts = Read10X(folder),
                     project = pro )
})
###合并多个样本
sce.big <- merge(sceList[[1]],
                 y = c(sceList[[2]]),
                 add.cell.ids = samples,
                 project = "GSE130001")
sce.big

MedBioInfoCloud: sce.big
An object of class Seurat
32738 features across 4133 samples within 1 assay
Active assay: RNA (32738 features, 0 variable features)

5.数据质控

质控的目的是去除掉低质量的数据,包括破损或死亡的细胞、没捕获到细胞的empty droplet和捕获到2个以上细胞的doublets。一般低质量的细胞或者empty droplet通常含有很少的基因,而doublets容易测到更多的基因。另一方面,低质量或者死亡细胞会测到更多的线粒体基因表达的RNA。

过滤指标1:最少表达基因数的细胞&最少表达细胞数的基因

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#过滤指标1:最少表达基因数的细胞&最少表达细胞数的基因
VlnPlot(sce.all, features = c("nFeature_RNA", "nCount_RNA"), ncol = 2)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
selected_cell <- WhichCells(sce.all, expression = nFeature_RNA > 300)
selected_features <- rownames(sce.all)[Matrix::rowSums(sce.all@assays$RNA@counts > 0 ) > 3]

sce.all.filt <- subset(sce.all,
                       features = selected_features,
                       cells = selected_cell)
dim(sce.all)
dim(sce.all.filt)

过滤后的基因和细胞数量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
MedBioInfoCloud: dim(sce.all)
[1] 32738  4133
MedBioInfoCloud: dim(sce.all.filt)
[1] 18755  4132

可以看到,主要是过滤了基因,其次才是细胞.

过滤指标2:线粒体/核糖体基因比例

首先查看一下相关基因,注意小鼠和人的基因大小写区别:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#线粒体基因
# rownames(sce.all.filt)[grepl('^MT-',rownames(sce.all.filt),ignore.case = T)]
rownames(sce.all.filt)[grepl('^Mt-',rownames(sce.all.filt),ignore.case = T)]

#核糖体蛋白基因
# rownames(sce.all.filt)[grepl('^Rp[sl]',rownames(sce.all.filt),ignore.case = T)]
rownames(sce.all.filt)[grepl('^RP[SL]',rownames(sce.all.filt),ignore.case = T)]

计算上述两类基因在所有细胞中的比例:

使用PercentageFeatureSet函数评估每个细胞中的线粒体表达比例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#计算上述两种基因在所有细胞中的比例
sce.all.filt[["percent.mt"]] <- PercentageFeatureSet(sce.all.filt, pattern = "^MT-")

上面的方法是修改 sce.all.filt[["percent.mt"]] ,下面我们演示 AddMetaData 函数,同样是可以增加线粒体基因含量信息到我们的seurat对象。

计算核糖体蛋白基因的比例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#计算上述两种基因在所有细胞中的比例
sce.all.filt[["percent.mt"]] <- PercentageFeatureSet(sce.all.filt, pattern = "^MT-")
rb.genes <- rownames(sce.all.filt)[grep("^RP[SL]",rownames(sce.all.filt))]
##提取表达矩阵
C <- GetAssayData(object = sce.all.filt, slot = "counts")
###计算核糖体蛋白基因的比例
percent.ribo <- Matrix::colSums(C[rb.genes,])/Matrix::colSums(C)*100
###计算的结果添加到Seurat对象中
sce.all.filt <- AddMetaData(sce.all.filt, percent.ribo, col.name = "percent.ribo")

可视化:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
VlnPlot(sce.all.filt, features = c("percent.mt","percent.ribo"), ncol = 2)

过滤:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sce.all.filt1 <- subset(sce.all.filt,
                   subset = percent.mt < 20)

有些研究可能需要过滤红细胞基因,下面是匹配红细胞基因,可以按照上面基因核糖体基因比例方式计算。这里不计算了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
HB.genes <- c("HBA1","HBA2","HBB","HBD","HBE1","HBG1","HBG2","HBM","HBQ1","HBZ") #
HB.genes <- CaseMatch(HB.genes, rownames(sce.all.filt1))

官网教程这里要求基因数 200-2500,线粒体百分比为小于 5%,但实际情况还是要根据自己的数据来处理,先画图看异常值分布再调整数值。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
plot1 <- FeatureScatter(sce.all.filt1, feature1 = "nCount_RNA", feature2 = "percent.mt")
plot2 <- FeatureScatter(sce.all.filt1, feature1 = "nCount_RNA", feature2 = "nFeature_RNA")
plot1 + plot2

6.数据标准化

基因的表达矩阵需要经过标准化后才能进行后续的分析。使用NormalizeData函数进行标准化,normalization.method:标准化方法,可选项,

•logNormalize:log(每个细胞的特征counts/细胞count总数*scale.factor)

•CLR:中心化对数标准化

•RC:相对计数,计算公式同logNormalize,不取log,计算CPM表达量,设置scale.factor=1e6

可选择LogNormalize:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
###================数据标准化

sce = sce.all.filt1
#counts归一化
sce <- NormalizeData(sce, normalization.method =  "LogNormalize",
                     scale.factor = 10000)

7.查找高变基因

指一些基因在细胞中表达的浮动比较大,这些往往是我们后续分群的时候需要关注的。FindVariableFeatures 函数有 3 种选择高表达变异基因的方法,可以通过 selection.method参数来选择,它们分别是:vst(默认值), mean.var.plot (mvp) 和 dispersion (disp)。nfeatures 参数的默认值是 2000,可以改变。如果 selection.method 参数选择的是 mvp,就不需要人为规定高表达变异基因的数目,算法会自动选择合适的数目。建议使用完 FindVariableFeatures 函数后,用 VariableFeaturePlot 对这些高表达变异基因再做个可视化,看看使用默认值 2000 会不会有问题。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#前2000个高变feature RNA
sce <- FindVariableFeatures(sce,
                            selection.method = "vst", nfeatures = 2000)
sce_mvp <- FindVariableFeatures(object = sce,
                                selection.method = "mvp", nfeatures = 2000)
P1 <- VariableFeaturePlot(object = sce)
P2 <- VariableFeaturePlot(object = sce_mvp)
P1/P2

可以看到上面默认vst和mvp方法找到的高变基因数量差别还挺大的,这里我们用vst默认的结果继续吧。

可以使用LabelPoints函数显示部分基因名称:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
top10 <- head(VariableFeatures(sce), 10)
top10_mvp <- head(VariableFeatures(sce_mvp), 10)
P3 <- LabelPoints(plot = P1, points = top10, repel = TRUE)
P4 <- LabelPoints(plot = P2, points = top10_mvp, repel = TRUE)
P3+P4

8.基因归一化

对所有的基因都做了scale,但是需要知道的是,其实后续的分析都是基于高变基因的,因此,使用默认参数就可以了。

# 这里设置对所有的基因都做了scale,但是需要知道的是,其实后续的分析都是基于高变基因的,因此,使用默认参数就可以了,而且提升效率 all.genes <- rownames(x = sce) sce <- ScaleData(object = sce, features = all.genes) # 对所有基因做归一化处理

此外需要注意的是,ScaleData 可以用在去除细胞周期影响,利用 ScaleData 函数的 vars.to.regress 参数来消除细胞周期带来的变异。这里可以用到两种方法,一种方法是同时S.score 和 G2M.score,另一种方法是 regress out 两个score 的差。非必要步骤

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
s.genes <- Seurat::cc.genes.updated.2019$s.genes
g2m.genes <- Seurat::cc.genes.updated.2019$g2m.genes
# CellCycleScoring将Seurat对象中每个细胞的分组信息设置为其所处的细胞周期阶段
sce_Scale <- CellCycleScoring(sce,
                              s.features = s.genes,
                              g2m.features = g2m.genes, set.ident = TRUE)
# 观察细胞周期基因的表达情况
RidgePlot(sce_Scale, features = c("PCNA", "TOP2A", "MCM6", "MKI67"), ncol = 2)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 方法一
sce_Scale <- ScaleData(sce_Scale, vars.to.regress = c("S.Score", "G2M.Score"),
          features = rownames(sce_Scale))
# 方法二
sce_Scale$CC.Difference <- sce_Scale$S.Score - sce_Scale$G2M.Score
ScaleData(sce_Scale, vars.to.regress = "CC.Difference",
          features = rownames(sce_Scale))

第一种方法完全去除了细胞周期的影响,而第二种方法则消除了 S 和 G2M 期的差别,为什么要这么做呢?因为对于某些样本来说,有的细胞类型处于休眠期,有的细胞类型处于增殖期,如果把所有细胞周期的影响都去除掉,会影响这两类细胞的鉴定。这时候,我们只要去除增殖期内部细胞周期的差异,保留增殖期和休眠期的差别就可以了。是否需要排除细胞周期的影响,看自己的研究是否需要。

9.降维聚类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sce <- RunPCA(object = sce, pc.genes = VariableFeatures(sce))
P5 <- DimPlot(object = sce , reduction = "pca")
P6 <- VizDimLoadings(sce, dims = 1:2, reduction = "pca")
P5 + P6

#看看前18个主成分 DimHeatmap(sce, dims = 1:18, cells = 100, balanced = TRUE)

我们可以看到PC16之后的热图没有明显的色块,更像一个零散的马赛克,PC1-16可以解释的差异就比较好。还有其他的一些判断方法。也可以用ElbowPlot来估计,PC16后基于平稳。JackStrawPlot图虚线以上的为可用维度,也可以调整 dims 参数,画出所有 pca 查看,这个方法耗时比较久。

主成分个数大一点对结果影响不大,但少了影响很大。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#判断最终选取的主成分数,这里我判断16P7 <- ElbowPlot(sce)
# 鉴定数据集的可用维度,虚线以上的为可用维度
sce <- JackStraw(object = sce, num.replicate = 100)
sce <- ScoreJackStraw(object = sce, dims = 1:20)
P8 <- JackStrawPlot(object = sce, dims = 1:18)
P7 + P8

10.细胞聚类

在Seurat包中,对于单细胞数据先过滤,再标准化,再PCA降维,再聚类的过程,其中聚类就是先用KNN算法得到细胞的K个最近邻节点,(在图论聚类的过程中,KNN并不做分类器的功能,而是仅用于寻找每个细胞距离最近的k个细胞。此外,为了提高运算速度,降低背景噪音,主成分分析(PCA)会优先于KNN进行),然后再用SNN算法对共享最近邻节点进一步加强细胞间的关系,(SNN是一种基于共享最近邻的聚类算法,它通过使用数据点间共享最近邻的个数作为相似度来处理密度不同的聚类问题,从而可以在含有噪音并且高维的数据集中发现各不相同的空间聚类。)

最后用Louvain算法对小簇进行模块划分,最终得到细胞亚群,并用tSNE/UMAP图进行可视化,使得细胞分群一目了然,这里的 dims 为上一步计算所用的维度数,而 resolution 参数控制聚类的数目,针对3K的细胞数目,最好的范围是0.4-1.2,默认是0.8。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 细胞聚类
sce <- FindNeighbors(sce, dims = 1:16)
sce <- FindClusters(sce, resolution = 0.9)

#tSNE可视化
set.seed(123)
sce <- RunTSNE(object = sce, dims = 1:16, do.fast = TRUE)
DimPlot(sce,reduction = "tsne",label=T)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 在两个样本里12个cluster的分布情况
table(sce@meta.data$seurat_clusters,sce@meta.data$orig.ident)
DimPlot(sce,reduction = "tsne",label=T,split.by ='orig.ident')

可以提取数据用ggplot2进行可视化:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#再尝试用ggplot2可视化上图
library(ggplot2)
phe <- data.frame(cell=rownames(sce@meta.data),
               cluster =sce@meta.data$seurat_clusters)
tsne_pos <- Embeddings(sce,'tsne')
dat <- cbind(tsne_pos,phe)
head(dat)
P9 <- ggplot(dat,aes(x=tSNE_1,y=tSNE_2,color=cluster))+
  geom_point(size=0.95)+
  stat_ellipse(data=dat,aes(x=tSNE_1,y=tSNE_2,fill=cluster,color = cluster),
                 geom = "polygon",alpha=0.2,level=0.9,type="t",
                 linetype =2,show.legend = F) + coord_fixed() +
  theme(panel.grid =element_blank()) +   ## 删去网格
  theme(panel.border = element_blank(),panel.background = element_blank()) +   ## 删去外层边框
  theme(axis.line = element_line(size=1, colour = "black"))+
  guides(colour = guide_legend(override.aes = list(size=5)))
P9

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#寻找每个cluster的高变代表基因,并选取前5个,进行可视化
table(sce@meta.data$seurat_clusters)
p <- list()
for( i in unique(sce@meta.data$seurat_clusters) ){
  markers_df <- FindMarkers(object = sce, ident.1 = i, min.pct = 0.25)
  print(x = head(markers_df))
  markers_genes =  rownames(head(x = markers_df, n = 4))
  p1 <- VlnPlot(object = sce, features =markers_genes,log =T,ncol = 2)
  p[[i]][[1]] <- p1
  p2 <- FeaturePlot(object = sce, features=markers_genes,ncol = 2)
  p[[i]][[2]] <- p2
}

p[[1]][[2]]
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
p[[2]][[1]]
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#查阅所有的marker基因,可用于人工注释cell type
sce.markers <- FindAllMarkers(object = sce, only.pos = TRUE, min.pct = 0.25,
                              thresh.use = 0.25)
DT::datatable(sce.markers)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#热图可视化每个cluster的marker基因表达差异
library(dplyr)
top5 <- sce.markers %>% group_by(cluster) %>% top_n(5, avg_log2FC)
DoHeatmap(sce,top5$gene,size=3)

11.保存数据

保存数据用于后续进一步分析。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
##保存数据
dir.create("data")
save(sce,sce.markers,file = 'data/sce.output.merge.GSE130001.Rdata')
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MedBioInfoCloud 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
OTG边听边充加方案,type-c传输数据跟充电
早在2022年10月24日央视新闻报道,欧洲议会以压倒性优势通过一项法案。法案规定,从2024年底开始,所有便携智能设备新机都必须使用USB Type-C的充电接口,Type-C接口将在欧盟成为手机、平板电脑和耳机等电子设备的强制要求,用户不再需要每次购买新手机或类似设备时都购买不同的充电器,所有设备都可以使用同一个充电器进行充电。
legendary_163
2023/07/15
5620
OTG边听边充加方案,type-c传输数据跟充电
欧盟将统一使用的USB Type-C接口,引脚信号及PCB布线是什么样的?
据外媒报道,欧盟机构已经就统一充电器接口的提案达成一项政治协议,自2024年起,所有在欧盟销售的手机、平板电脑、数码相机以及无线耳机等电子设备生产商应将充电接口统一为Type-C,生产商在销售这些设备时不必配售充电设备。据统计,该做法将为消费者每年节约2.5亿欧元的开销,并减少1.1万吨电子垃圾。
AI 电堂
2022/12/08
1.1K0
欧盟将统一使用的USB Type-C接口,引脚信号及PCB布线是什么样的?
TypeC 基础知识
SUB1 和 SUB2 (Side band use),在一些特殊的传输模式下才会使用。
233333
2021/08/24
2.1K0
USB Type-C PD CC逻辑芯片中的角色定义
DFP(Downstream Facing Port): 下行端口,可以理解为Host,DFP提供VBUS,也可以提供数据。典型的DFP设备是电源适配器,因为它永远都只是提供电源。
Legendary_008
2023/07/07
1.4K0
USB Type-C PD CC逻辑芯片中的角色定义
type-c是pd_type c pd 什么意思
自1998年以来,USB发布至今,USB已经走过20个年头有余了。在这20年间,USB-IF组织发布N种接口状态,包括A口、B口、MINI-A、MINI-B、Micro-A、Micro-B等等接口形态,由于各家产品的喜好不同,不同产品使用不同类型的插座,因此悲剧来了,我们也要常备N中不明用途的接口转接线材。
全栈程序员站长
2022/11/10
8730
type-c是pd_type c pd 什么意思
Type C接口浅析01
USB相关的协议规范都可以从此网站https://www.usb.org/documents下载到
徐师兄
2022/08/29
4.4K1
Type C接口浅析01
手机电脑 USB-C接口视频信号传输的投影仪方案
随着USB Type-C(简称USB-C)成为大一统的接口,USB PD快充快速普及。很多电子设备输入端口转为USB-C接口,比如无线充底座、智能音箱、电子烟、筋膜枪、按摩仪、便携榨汁机、游戏机、无人机等等。最近小编发现便携式投影仪也采用了USB-C接口,支持PD快速充电。今天我们来聊聊便携式投影仪这个产品。
Legendary_008
2023/07/07
6150
手机电脑 USB-C接口视频信号传输的投影仪方案
一线投屏反向供电,乐得瑞Type-C显示器提供高效拓展方案
互联网的发展让移动办公已然成为工作的主流发展方向之一,越来越多的上班族也开始将便携、轻薄的移动设备作为主要办公“阵地”。近年来,Type-C接口以更快的数据传输速度、更完整的接口协议、轻薄体积小、可正反盲插等优势,走入人们的视野。
Legendary_008
2024/03/30
2790
一线投屏反向供电,乐得瑞Type-C显示器提供高效拓展方案
显示类接口芯片:Type-C接口台式显示器方案
LDR6020P 是带有 3 组 6 路 DRP USB-C通道(不需要另外像其他家方案需通过外围去切换CC通道) 及 PD 通信协议处理模块和 USB2.0 Device 功能的 16 位 RISC MCU,内置 8K×16 位 MTP 程序存储器(可烧录 1000 次),512 字节的数据存储器(SRAM)。
legendary_163
2023/12/11
3660
显示类接口芯片:Type-C接口台式显示器方案
小家电产品如何升级用Type-C接口快充
过去几年,我们看到了USB Type-C口的普及趋势与速度,尤其在电动工具、智能家居领域,比如电动窗帘、智能台灯、电动导轨、手持电动工具等方面,已经由传统的充电方式升级成为了通过USB-C口完成的快充。通过使用USB-C口,电池充电的速度大大提高。例如,一些电动工具可以在15分钟内完成一半以上的充电。 而在PD3.1标准推出后,快充功率上限达到240W。这一变化使USB Type-C可以为更多的设备提供足够的充电功率,包括一些需要更高功率充电的大型电子设备、物联网设备、通信和安防设备、汽车和医疗设备等。比如,240W (48 V 5A)的大功率甚至可以满足两轮电动车的充电需求图 ,未来的发展趋势,提前布局产品,如何将电子设备的传统接口升级成为USB Type-C接口甚至升级为支持240 W快充的接口,成了新的命题。
Legendary_008
2023/07/01
1.5K0
USB技术浅析
《带你遨游USB世界》中,我们已经初步介绍了USB的整体架构,本文将从以下几个方面继续介绍USB的内容。
233333
2020/07/21
3.1K0
USB技术浅析
国产显示器接口芯片:Type-C接口显示器方案
另外LDR6020P支持 USB ,IIC,CC升级功能,可广泛应用于台式显示器,便携显示器等。
Legendary_008
2023/12/02
5450
国产显示器接口芯片:Type-C接口显示器方案
TYPE-C接口和PD有何区别?
和PD有何不同?Type-C是一个全新的正反插USB规范,能够支持USB3.1(Gen1和Gen2) 、 Display Port和USB PD等一系列新标准,最高速率可达10Gbps,Type-C端口默认最高可支持5V3A。
Legendary_008
2023/07/07
2K0
一文带你搞清楚USB、type-C、雷电三接口之间的区别与联系
最近某些新电脑的发布,看到带了全功能的type-c接口,一直搞不懂什么type-c还有什么全功能,半功能?和雷电3又有什么区别,雷电3又有什么全速,半速。由于搞不清,所以网上看了很多资料,这里总结一下以备后续查阅
全栈程序员站长
2022/07/04
45.4K2
一文带你搞清楚USB、type-C、雷电三接口之间的区别与联系
小封装QFN3*3 PD(sink,诱电)受电端取电协议芯片方案
快充 VS 慢充 普通充电,使用USB Type-A Standard接口转USB Type-B Micro接口的连接线给手机充电。
Legendary_008
2023/07/20
5070
小封装QFN3*3  PD(sink,诱电)受电端取电协议芯片方案
一文带你了解 Typec 接口切换开关
现在手机、电脑中大多是 typec 接口,该接口可以充电、 OTG 功能(typec数字耳机)、typec 模拟耳机等,可你知道是谁在切换不同功能的线路吗?是切换 IC,比如:FSA4480、ET7480 等。
Jasonangel
2022/04/08
3K0
一文带你了解 Typec 接口切换开关
iPhone 15 被迫用上 Type-C 接口
来源:科技每日推送 当地时间6月7日,欧盟就单一移动充电端口达成协议,2024年秋季Type-C将成为欧盟所有手机、平板、相机的通用充电接口。 不出意外的话,iPhone 15将被迫用上C口了。 欧盟统一使用 Type-C接口 欧洲议会内部市场和消费者保护委员会,在推特上公布了这一协议,包括: 1、手机、平板电脑、电子阅读器、数码相机和更多移动设备,统一采用 USB-C 接口; 2、统一快速充电技术; 3、充电器销售与设备销售分开。 另外,据路透社报道,到2024 年秋天,USB Type-C 将成为欧
程序猿DD
2022/06/10
5030
iPhone 15 被迫用上 Type-C 接口
USB总线-USB协议简介(一)
USB是通用串行总线(Universal Serial Bus)的缩写。在USB总线出现之前,计算机与键盘、鼠标、扫描仪、打印机都使用专用的接口连接,不同设备的接口不能互用,扩展性很差,每次插拔设备都要关闭计算机,不支持热插拔,且通信速率很低。为了解决上述问题,USB总线诞生了。USB总线就好像一条管道,管道里流过的东西只要符合USB协议,至于具体流的是什么东西,USB总线并不关心,可以是自来水,可以是污水,可以是天然气,也可以是石油。对应具体的设备上,只要是支持USB协议的设备,都可以连接计算机,如USB键盘、USB鼠标、USB摄像头、USB音箱等。USB的出现简化了计算机与外围设备的连接,增强了扩展性,支持热插拔,且通信速度很快。
233333
2022/12/05
7K0
USB总线-USB协议简介(一)
了解USB接口的类型与特点
在当今数字时代,无论是连接电脑、手机、平板还是其他各种外设,USB接口都发挥着重要作用,但USB接口类型和外观多样,导致出现很多错误叫法,像什么“华为口”、“安卓口”等,实际上每一款USB接口及其变体都有名称,每种类型也都具有其独特的特点和用途。
M.Talen
2024/05/22
1.1K0
了解USB接口的类型与特点
现在设备普遍切换成TYPE-C适配器后,一拖三数据线接口变革探析
随着科技的飞速发展,电子设备的接口标准也在不断地更新换代。近年来,TYPE-C接口凭借其高速传输、正反可插等显著优势,逐渐成为了众多电子设备的主流接口。从智能手机到平板电脑,从笔记本电脑到移动电源,TYPE-C接口的应用范围越来越广。在这一背景下,一拖三数据线作为常用的数据传输和充电工具,其接口端的设计也必然会发生相应的变化。本文将深入探讨在设备普遍切换成TYPE-C适配器后,一拖三数据线接口端的发展趋势,以及这一变化对消费者和市场的影响。
legendary_163
2024/10/26
2020
现在设备普遍切换成TYPE-C适配器后,一拖三数据线接口变革探析
推荐阅读
相关推荐
OTG边听边充加方案,type-c传输数据跟充电
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验