公开数据库汇总及下载(1)-TCGA

news2024/11/13 12:43:50

文章目录

  • 1. 常用数据库
  • 2. TCGA数据下载
    • 2.1 TCGA介绍
    • 2.2 数据类型详解
    • 2.3 TCGA数据等级
    • 2.4 TCGA网页筛选页面介绍
    • 2.5 各文件每个字段的含义
    • 2.6 biospecimen IDs介绍(样本ID)
    • 2.7 下载代码
  • 参考文件

  本文的内容介绍、代码下载主要参考了网上多个文件汇总而成,本文仅作汇总,学习请翻阅原文。

1. 常用数据库

  近几年在生物医药圈一直有脱钩的传闻,随着24年美国大选临近,对于trump上台后的预期政策担忧也愈演愈烈。在自己吓自己的前提下,对各类数据库进行了整理,并逐步进行下载。

2. TCGA数据下载

  TCGA(The Cancer Genome Atlas)数据库是一个由美国国家癌症研究所(NCI)和国家人类基因组研究所(NHGRI)合作建立的大规模癌症基因组学数据库。该数据库中收集了来自多个癌症类型的临床数据、基因组数据和表达数据。

2.1 TCGA介绍

  2005.12.13日,美国国家癌症研究所(NCI)和国家人类基因组研究所(NHGRI)联合启动肿瘤基因组图谱(TCGA)项目。
  TCGA是一项以基因组为基础的大科学研究计划,以人类基因组计划的成果为基础,研究癌症中基因组的变化。与HGP专注于疾病的遗传因素不同,TCGA更关心人类出生后细胞中的基因变化。
在这里插入图片描述
  33种癌症类型的关键基因组变化的多维图谱。超过2PB的基因组数据公开。超过1万名病人提供配对的癌症和对照组织。7种数据类型。

在这里插入图片描述

  组织结构完善,由8种组成,形成数据闭环。

在这里插入图片描述

  由TSS收集样本,交由BCR进行数据整理,由GSC、GCC进行测序、数据鉴定,CGHub、GDAC进行把关,在DCC进行数据最后的整合,最后由NCI、NHGRI项目组发布。

在这里插入图片描述

  对样本的纳入有严格的标准,患者是原发性种类,有配对样本。肿瘤组织需冷冻保存、且大小适宜。肿瘤细胞含量在80%以上。

2.2 数据类型详解

在这里插入图片描述

  临床数据:TCGA数据库中包含了多种癌症类型的患者的临床信息,如年龄、性别、病理分期、生存期等。这些数据有助于研究人员了解癌症的发展和预后。

indexed clinical: 使用 XML 文件创建的精炼临床数据
XML: 原始临床数据
    处理 XML 格式的临床数据分为两步:
        使用 GDCquery 和 GDCDownload 来查询和下载 Biospecimen 或 Clinical XML 文件
        使用 GDCprepare_clinic 来解析文件
BCR Biotab: 解析 XML 文件之后的 tsv 文件

  基因组数据:TCGA数据库中的基因组数据包括了DNA测序和突变数据。这些数据可以帮助研究人员分析癌症基因组的变化,寻找与癌症发展相关的基因变异。

  表达数据:TCGA数据库中的表达数据主要是通过RNA测序获得的。这些数据可以反映癌症细胞内基因的表达水平,帮助研究人员发现与癌症发展和治疗相关的基因。

  甲基化数据:TCGA数据库中的甲基化数据可以帮助研究人员了解癌症细胞中DNA甲基化的模式和变化。甲基化是一种常见的基因组调控方式,与癌症的发生和发展密切相关。

  蛋白质组数据:TCGA数据库中的蛋白质组数据包括了癌症细胞中蛋白质的表达水平和翻译后修饰的信息。这些数据对于研究癌症细胞的功能和信号通路具有重要意义。

2.3 TCGA数据等级

在这里插入图片描述

  受控数据主要是采集样本的患者隐私,测序原始数据(BAM/FASTQ),SNP6、EXON芯片的1、2级数据,生信分析的VCF、MAF等中间结果。

在这里插入图片描述

  从上表可知,1、2级数据为病人原始结果,涉及医学伦理学问题,一般处于受控状态。3、4级数据是加工处理后的数据,由TCGA整合发表。,3级部分开放,4级数据完全开放。 仅有少量的数据是open状态

  详细可阅读说明文档GDC_Introduction

2.4 TCGA网页筛选页面介绍

在这里插入图片描述

2.5 各文件每个字段的含义

  可看官网的说明文档。
  各表格的字段含义

2.6 biospecimen IDs介绍(样本ID)

在这里插入图片描述

  TCGA_barcode号介绍

在这里插入图片描述

  目前UUID成为主要标识符,下载数据时以UUID代指一个样本。

2.7 下载代码

# 0. 起始 -------------------------------------------------------------------
library(TCGAbiolinks)
projects <- TCGAbiolinks::getGDCprojects()$project_id
projects <- projects[grepl('^TCGA', projects, perl=TRUE)]

# 1. Clinical -------------------------------------------------------------

## 1.1 clinical ------------------------------------------------------------

### XML -------------------------------------------------------------------------
# 使用 GDCquery 和 GDCDownload 来查询和下载 Biospecimen 或 Clinical XML 文件
# 使用 GDCprepare_clinic 来解析文件

### 下载所有临床数据, 并将结果汇总在一个文件中 ########

### TCGA-READ、TCGA-LGG、仅下载,未合并,因为有重复,需针对性处理

library(TCGAbiolinks)
library(data.table)
library(dplyr)
library(regexPipes)

# 获取所有索引信息
clinical <- TCGAbiolinks:::getGDCprojects()$project_id %>% 
  regexPipes::grep("TCGA", value = TRUE) %>% 
  sort %>% 
  plyr::alply(1, GDCquery_clinic, .progress = "text") %>% 
  rbindlist(fill = TRUE)
readr::write_csv(clinical, file = "all_clin_indexed.csv")

# 解析 XML 文件并信息获取对应的信息
getclinical <- function(proj) {
  message(proj)
  result <- NULL
  attempt <- 1
  max_attempts <- 5  # 设置最大尝试次数
  
  while(attempt <= max_attempts) {
    result <- tryCatch({
      query <- GDCquery(project = proj, data.category = "Clinical", data.format = "bcr xml")
      GDCdownload(query)
      clinical <- GDCprepare_clinic(query, clinical.info = "patient")
      
      clinical_data <- list(clinical)
      for(i in c("admin", "radiation", "follow_up", "drug", "new_tumor_event")){
        message(i)
        aux <- GDCprepare_clinic(query, clinical.info = i)
        if(is.null(aux) || nrow(aux) == 0) next
        
        # 处理重复的列名
        replicated <- which(grep("bcr_patient_barcode", colnames(aux), value = TRUE, invert = TRUE) %in% colnames(clinical))
        colnames(aux)[replicated] <- paste0(colnames(aux)[replicated], ".", i)
        
        if(!is.null(aux)) clinical <- merge(clinical, aux, by = "bcr_patient_barcode", all = TRUE)
      }
      
      # 保存临床数据到csv文件
      readr::write_csv(clinical, path = paste0("TCGA_alldata/", proj, "_clinical_from_XML.csv"))
      return(clinical)
    }, error = function(e) {
      message(paste0("Error clinical: ", proj, " Attempt: ", attempt))
      attempt <<- attempt + 1  # 增加尝试次数
      NULL
    })
    
    # 如果成功获取数据,则跳出循环
    if (!is.null(result)) break
  }
  
  # 如果多次尝试后仍然失败,返回NULL并发出警告
  if (is.null(result)) {
    warning(paste0("Failed to get clinical data for project: ", proj, " after ", max_attempts, " attempts."))
  }
  
  return(result)
}

# 患者信息
# 如果内存溢出,可分批次下载, 或单独下载某个数据集
clinical <- TCGAbiolinks:::getGDCprojects()$project_id %>% 
  regexPipes::grep("TCGA", value = T) %>%
  sort %>% 
  plyr::alply(1, getclinical, .progress = "text") %>%  
  rbindlist(fill = TRUE) %>% 
  setDF %>% 
  subset(!duplicated(clinical))

readr::write_csv(clinical, path = "TCGA_alldata/all_clin_XML.csv")


## 1.2  supplement ---------------------------------------------------------
### 1.2.1 clinical-supplement-bcr biotab, 解析 XML 文件之后的 tsv 文件-------------------------------------------------------------------------

sapply(projects, function(project){
  cat("Processing project:", project, "\n")
  
  query <- GDCquery(
    project = project, 
    data.category = "Clinical",
    data.type = "Clinical Supplement",
    data.format = "BCR Biotab",
    access = "open"
  )
  GDCdownload(query, method = "api", files.per.chunk = 100)
  
  prepared_data <- GDCprepare(query, save = TRUE, save.filename = file.path(paste0(project, "_clinical_supplement_bcr_biotab.Rdata")))  
  
})


### 1.2.2 Biospecimen 获取采样信息 -----------------------------------------------------------------------
sapply(projects, function(project){
  cat("Processing project:", project, "\n")
  
  query <- GDCquery(
    project = project, 
    data.category = "Biospecimen",
    data.type = "Biospecimen Supplement",
    data.format = "BCR Biotab",
    access = "open"
  )
  GDCdownload(query, method = "api", files.per.chunk = 100)
  
  prepared_data <- GDCprepare(query, save = TRUE, save.filename = file.path(paste0(project, "_biospecimen_supplement_bcr_biotab.Rdata")))  
  
})


### 1.2.3 Indexed 使用 XML 文件创建的精炼临床数据 -------------------------------------------------------------------------
clinical <- GDCquery_clinic(project = "TCGA-BRCA", type = "clinical")
clinical <- GDCquery_clinic(project = "TARGET-RT", type = "clinical")


### 1.2.4 诊断切片(SVS 格式)-------------------------------------------------------------------------
# 单个数据集50-60G,暂不下载
sapply(projects, function(project){
  cat("Processing project:", project, "\n")
  
  query <- GDCquery(
    project = project, 
    data.category = "Biospecimen",
    data.type = 'Slide Image',
    experimental.strategy = "Diagnostic Slide",  # 实验策略有两种,Tissue Slide和Diagnostic Slide(患者的)
    # barcode = c("TCGA-RU-A8FL", "TCGA-AA-3972")
    access = "open"
  )
  GDCdownload(query, method = "api", files.per.chunk = 100)
  
  prepared_data <- GDCprepare(query, save = TRUE, save.filename = file.path(paste0(project, "_biospecimen_slide_images.Rdata")))  
  
})


# 2. RNA -------------------------------------------------------------------------

## 2.1 mRNA-------------------------------------------------------------------------

sapply(projects, function(project){
  # 查询
  query <-  GDCquery(
    project = project,
    data.category = "Transcriptome Profiling",
    data.type = "Gene Expression Quantification",
    workflow.type = "STAR - Counts"
  )
  
  # 下载
  GDCdownload(query, method = "api", files.per.chunk = 100)
  
  # 整理
  GDCprepare(query, save = T, save.filename = file.path(paste0(project, "_mRNA.Rdata")))
  
}
)


## 2.2 microRNA-------------------------------------------------------------------------

sapply(projects, function(project){
  query <- GDCquery(project = project,
                    data.category = "Transcriptome Profiling",
                    data.type = "miRNA Expression Quantification"
  )
  
  GDCdownload(query)
  
  GDCprepare(query, save = T, save.filename = file.path(paste0(project, "_miRNA.Rdata")))
  
})



## 2.3 isoform -------------------------------------------------------------------------

sapply(projects, function(project){
  query.isoform <- GDCquery(
    project = project, 
    experimental.strategy = "miRNA-Seq",
    data.category = "Transcriptome Profiling", 
    data.type = "Isoform Expression Quantification"
  )
  
  GDCdownload(query.isoform, method = "api", files.per.chunk = 100)
  GDCprepare(query.isoform, save = T, save.filename = file.path(paste0(project, "_mirna-isoform.Rdata")))
  
})


# 3.SNP-------------------------------------------------------------------------

# Can't combine `..17$Tumor_Seq_Allele2` <character> and `..18$Tumor_Seq_Allele2` <logical>. 部分数据库的样本字段不一致,导致合并出错概率高, 先按癌种-样本下载好

sapply(projects, function(project){
  query <- GDCquery(
    project = project, 
    data.category = "Simple Nucleotide Variation",
    data.type = "Masked Somatic Mutation",
    access = "open"
  )
  
  GDCdownload(query, method = "api", files.per.chunk = 100)
  
  # GDCprepare(query, save = T,save.filename = file.path(project_dir,  paste0(project, "_SNP.Rdata")))
  
})


# 4.Protein-------------------------------------------------------------------------

# "TCGA-LAML-fail"  "TCGA-THCA-fail", 这两个数据集没有蛋白结果

sapply(projects, function(project){

  query <- GDCquery(
    project = project,
    data.category = "Proteome Profiling",
    data.type = "Protein Expression Quantification"
  )
  
  GDCdownload(query, method = "api", files.per.chunk = 100)
  
  GDCprepare(query, save = T, save.filename = file.path(paste0(project, "_protein.Rdata")))
  
})


# 5.methy-------------------------------------------------------------------------

# Beta值数据 分3个平台, Illumina Human Methylation 27、 Illumina Human Methylation 450、 Illumina Methylation Epic
# 每个癌种下,不一定含有全部3种平台的数据
# 本次先下载Illumina Human Methylation 27的
# IDAT是原始的荧光信号强度数据,而Beta值是这些原始数据的标准化表示, 本次下载优先BEta值


## 5.1 Illumina Human Methylation 27---------------------------------------------------------------------

### Methylation Beta Value --------------------------------------------------------------------

# "TCGA-BRCA" "TCGA-SARC—fail,数据集无此结果" "TCGA-ACC-fail"  "TCGA-UCEC" "TCGA-KIRC" "TCGA-LAML" "TCGA-SKCM-fail" "TCGA-PAAD-fail" "TCGA-TGCT-fail" "TCGA-CESC-fail" "TCGA-ESCA-fail" "TCGA-THCA-fail" "TCGA-LIHC-fail" "TCGA-PRAD-fail" "TCGA-READ"
# "TCGA-OV"   "TCGA-UVM-fail"  "TCGA-BLCA-fail" "TCGA-CHOL-fail" "TCGA-GBM"  "TCGA-UCS-fail"  "TCGA-PCPG-fail" "TCGA-MESO-fail" "TCGA-DLBC-fail" "TCGA-COAD" "TCGA-STAD" "TCGA-KIRP" "TCGA-THYM-fail" "TCGA-KICH-fail" "TCGA-LGG-fail" 
# "TCGA-LUSC" "TCGA-LUAD" "TCGA-HNSC-fail"

projects <- c("TCGA-BRCA", "TCGA-UCEC", "TCGA-KIRC", "TCGA-LAML", "TCGA-READ", "TCGA-OV", "TCGA-GBM", "TCGA-COAD", "TCGA-STAD", "TCGA-KIRP", "TCGA-LUSC", "TCGA-LUAD")

projects <- c( "TCGA-LUAD")
sapply(projects, function(project){
  
  coad_methy <- GDCquery(
    project = project, 
    data.category = "DNA Methylation", 
    data.type = "Methylation Beta Value",
    platform = "Illumina Human Methylation 27"
  )
  
  GDCdownload(coad_methy, method = "api", files.per.chunk = 100)
  GDCprepare(coad_methy,save = T, save.filename= file.path(paste0(project, "_METHY_beta_27.Rdata")))
  
})

### Masked Intensities --------------------------------------------------------------------

# "TCGA-BRCA" "TCGA-SARC—fail" "TCGA-ACC-fail"  "TCGA-UCEC" "TCGA-KIRC" "TCGA-LAML" "TCGA-SKCM-fail" "TCGA-PAAD-fail" "TCGA-TGCT-fail" "TCGA-CESC-fail" "TCGA-ESCA-fail" "TCGA-THCA-fail" "TCGA-LIHC-fail" "TCGA-PRAD-fail" "TCGA-READ"
# "TCGA-OV"   "TCGA-UVM-fail"  "TCGA-BLCA-fail" "TCGA-CHOL-fail" "TCGA-GBM"  "TCGA-UCS-fail"  "TCGA-PCPG-fail" "TCGA-MESO-fail" "TCGA-DLBC-fail" "TCGA-COAD" "TCGA-STAD" "TCGA-KIRP" "TCGA-THYM-fail" "TCGA-KICH-fail" "TCGA-LGG-fail" 
# "TCGA-LUSC" "TCGA-LUAD" "TCGA-HNSC-fail"

projects <- c("TCGA-BRCA", "TCGA-UCEC", "TCGA-KIRC", "TCGA-LAML", "TCGA-READ", "TCGA-OV", "TCGA-GBM", "TCGA-COAD", "TCGA-STAD", "TCGA-KIRP", "TCGA-LUSC", "TCGA-LUAD")

sapply(projects, function(project){
  
  coad_methy <- GDCquery(
    project = project, 
    data.category = "DNA Methylation", 
    data.type = "Masked Intensities",
    platform = "Illumina Human Methylation 27" 
  )
  
  GDCdownload(coad_methy, method = "api", files.per.chunk = 50)
})


## 5.2 Illumina Human Methylation 450 -----------------------------------------------------------------

### Methylation Beta Value --------------------------------------------------------------------

sapply(projects, function(project){
  
  coad_methy <- GDCquery(
    project = project, 
    data.category = "DNA Methylation", 
    data.type = "Methylation Beta Value",
    platform = "Illumina Human Methylation 450" # Illumina Human Methylation 450
  )
  
  GDCdownload(coad_methy, method = "api", files.per.chunk = 30)
})

### Masked Intensities --------------------------------------------------------------------
sapply(projects, function(project){
  
  coad_methy <- GDCquery(
    project = project, 
    data.category = "DNA Methylation", 
    data.type = "Masked Intensities",
    platform = "Illumina Human Methylation 450" # Illumina Human Methylation 450
  )
  
  GDCdownload(coad_methy, method = "api", files.per.chunk = 30)
})


# 6. CNV----------------------------------------------------------------------

## 6.1 Masked Copy Number Segment-------------------------------------------------------------------------

sapply(projects, function(project){
  
  query <- GDCquery(
    project = project,
    data.category = "Copy Number Variation",
    data.type = "Masked Copy Number Segment",              
    access = "open"
  )
  
  GDCdownload(query, method = "api", files.per.chunk = 100)
  GDCprepare(query, save = T,save.filename = file.path(paste0(project, "_CNV.Rdata")))  
  
})


## 6.2 Copy Number Segment -------------------------------------------------------------------

sapply(projects, function(project){
  
  query <- GDCquery(
    project = project,
    data.category = "Copy Number Variation",
    data.type = "Copy Number Segment",              
    access = "open"
  )
  
  GDCdownload(query, method = "api", files.per.chunk = 300)
})


## 6.3 Allele-specific Copy Number Segment ------------------------------------------------------------------

# There are more than one file for the same case. Please verify query results. You can use the command View(getResults(query)) in rstudio

sapply(projects, function(project){
  
  query <- GDCquery(
    project = project,
    data.category = "Copy Number Variation",
    data.type = "Allele-specific Copy Number Segment",              
    access = "open"
  )
  
  GDCdownload(query, method = "api", files.per.chunk = 300)
})


## 6.4 Gene Level Copy Number -------------------------------------------------------------------------
# Warning: There are more than one file for the same case. Please verify query results. You can use the command View(getResults(query)) in rstudio

projects <- c("TCGA-STAD", "TCGA-KIRP", "TCGA-THYM", "TCGA-KICH", "TCGA-LGG", "TCGA-LUSC", "TCGA-LUAD", "TCGA-HNSC")

sapply(projects, function(project){
  
  query <- GDCquery(
    project = project,
    data.category = "Copy Number Variation",
    data.type = "Gene Level Copy Number",              
    access = "open"
  )
  
  GDCdownload(query, method = "api", files.per.chunk = 30)
})

参考文件

(1)全网最全!2021最新常用肿瘤生信数据库收藏级汇总!(1)
(2)全网最全!2021最新常用肿瘤生信数据库收藏级汇总!(2)
(3)收藏:常用医学公共数据库(含临床数据库,生信数据库和机器学习数据库)
(4)6大药敏性分析数据库大汇总,助力肿瘤相关生信分析!/SCI论文/科研/研究生/生信分析热
(5)新版TCGA数据库学习:批量下载新版TCGA数据
(6)TCGA 数据下载 —— TCGAbiolinks 简单使用
(7)4年新版TCGA GDC data portal 2.0界面介绍及数据下载教程
(8)TCGA 数据下载 —— TCGAbiolinks 数据分析
(9)【TCGA数据库介绍及应用】
(10)【TCGA数据库数据分析】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2051914.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习基础—Dropout正则化(随机失活正则化)

1.Dropout正则化 Dropout正则化&#xff1a;网络中每一个神经元节点都有一定概率保留或消除&#xff0c;从而下较小规模的网络。 假设上图网络存在过拟合&#xff0c;Dropout正则化的做法就是遍历每一个节点&#xff0c;对该节点以一定的概率保留或删除&#xff0c;从而简化网络…

C语言 | Leetcode C语言题解之第347题前K个高频元素

题目&#xff1a; 题解&#xff1a; struct hash_table {int key;int val;// 查看 https://troydhanson.github.io/uthash/ 了解更多UT_hash_handle hh; };typedef struct hash_table* hash_ptr;struct pair {int first;int second; };void swap(struct pair* a, struct pair*…

【C++】udp通信协议详解和示例

前言 UDP&#xff08;‌User Datagram Protocol&#xff0c;‌用户数据报协议&#xff09;‌是一种无连接的、‌不可靠的、‌面向数据报的传输层协议。‌它广泛应用于需要高实时性且对数据传输可靠性要求不高的场景&#xff0c;‌如实时音视频传输、‌在线游戏等。‌本文将详细…

Python做统计图之美

Python数据分析可视化 案例效果图 import pandas as pd import matplotlib.pyplot as plt import matplotlib# 数据 data {"房型": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],"住宅类型": ["普通宅", "普通宅", "普通宅", &q…

JUC6-共享模型之不可变

目录 日期转换的问题 问题提出 思路&#xff1a;同步锁 思路&#xff1a;不可变 不可变设计 final的使用 保护性拷贝 享元模式 概述 体现 包装类 String串池 BigDecimal BigInteger DIY 原理&#xff1a;final 无状态 日期转换的问题 问题提出 下面的代码在运…

python井字棋游戏设计与实现

python实现井字棋游戏 游戏规则&#xff0c;有三个井字棋盘&#xff0c;看谁连成的直线棋盘多谁就获胜 棋盘的展现形式为 棋盘号ABC和位置数字1-9 输入A1 代表在A棋盘1号位数下棋 效果图如下 部分源码如下&#xff1a; 卫星工纵浩 白龙码程序设计&#xff0c;点 代码获取 …

Stability AI发布了单目视频转4D模型的新AI模型:Stable Video 4D

开放生成式人工智能初创公司Stability AI在3月发布了Stable Video 3D&#xff0c;是一款可以根据图像中的物体生成出可旋转的3D模型视频工具。Stability AI在7月24日发布了新一代的Stable Video 4D&#xff0c;增添了赋予3D模移动作的功能。 Stable Video 4D能在约40秒内生成8…

DBAPI如何用SQL将多表关联查询出树状结构数据(嵌套JSON格式)

场景描述 假设数据库中有3张表如下&#xff1a; 客户信息表 订单表 订单详情表 一个客户有多个订单&#xff0c;一个订单包含多个产品信息&#xff0c;客户-订单-产品就构成了3级的树状结构&#xff0c;如何查询出如下树状结构数据呢&#xff1f; [{"customer_age"…

矩阵--旋转图像

给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像&#xff0c;这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 &#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&a…

嵌入式Day33---Linux软件编程---网络编程

目录 一、TCP包头 1.1.源端口 1.2.目的端口 1.3.序号 1.4.确认号 1.5.数据偏移 1.6.保留 1.7.指令信号 1.SYN 2.ACK 3.FIN 4.RST 5.PSH 6.URG 1.8.窗口 1.9.校验和 1.10.紧急指针 二、TCP的过程 2.1三次握手 2.2.传输数据 ​编辑 2.3.四次挥手 ​编辑 …

SpringBoot依赖之Spring Data Redis 一 List 类型

概念 Spring Data Redis (AccessDriver) 依赖名称: Spring Data Redis (AccessDriver)功能描述: Advanced and thread-safe Java Redis client for synchronous, asynchronous, and reactive usage. Supports Cluster, Sentinel, Pipelining, Auto-Reconnect, Codecs and muc…

[Qt][QSS][下]详细讲解

目录 1.样式属性0.前言1.盒模型(Box Model) 2.常用控件样式属性1.按钮2.复选框3.单选框4.输入框5.列表6.菜单栏7.注意 1.样式属性 0.前言 QSS中的样式属性⾮常多&#xff0c;不需要都记住&#xff0c;核⼼原则是⽤到了就去查 ⼤部分的属性和CSS是⾮常相似的 QSS中有些属性&am…

Linux CentOS手动安装Node.js(图文教程)

本章教程主要介绍如何在centos7上安装指定版本的Node.js 一、下载nodejs 前往Node.js官网&#xff0c;根据自己需要安装的版本进行下载。 官网下载地址&#xff1a;https://nodejs.org/zh-cn/download/prebuilt-binaries 本文&#xff0c;以v14.21.3版本介绍整个安装过程。 二、…

<STC32G12K128入门第十步>USB HID键盘

前言 最近公司的一款低功耗的遥控器涉及到使用USB HID的功能,就是需要将BLE蓝牙读取的IC卡的数据在通过USB接口上传到电脑的记事本上面。 一、USB HID是啥? USB HID类是USB设备的一个标准设备类,包括的设备非常多。HID类设备定义它属于人机交互操作的设备,用于控制计算机…

IDEA 导入 RocketMQ 源码

目录 前言一、RocketMQ 架构二、环境准备三、下载源码四、编译源码4.1 导入源码4.2 目录结构4.3 运行程序1. 启动 Namesrv2. 启动 Broker3. 启动 Producer4. 启动 Consumer 五、监控平台的搭建5.1 下载 console 源码5.2 IDEA 启动 前言 最近项目中有个功能需要在本地调试下 Ro…

SAM2论文核心速览

官方博客&#xff1a; https://ai.meta.com/blog/segment-anything-2/ 官方论文&#xff1a;​​​​​​https://ai.meta.com/research/publications/sam-2-segment-anything-in-images-and-videos/ 一、研究背景 研究问题&#xff1a;这篇文章要解决的问题是如何在图像和视频…

公式编辑器 -vue-formula-editor

前言 公式编辑旨在帮助用户使用可视化的前提&#xff0c;能便捷的使用平台&#xff0c;例如低代码平台使用广泛 vue-formula-editor vue-formula-editor是一款开源的Vue公式计算组件&#xff0c;可以帮助开发者快速集成公式编辑 在线体验 demo & 源码 安装 npm i vue-form…

CentOS 上安装 Java 17

要在 CentOS 上安装 Java 17&#xff0c;您可以使用多种方法。这里我将向您展示如何通过下载 Oracle 提供的 Java 开发工具包 (JDK) 或使用其他开源 JDK 版本&#xff08;如 Adoptium 或 OpenJDK&#xff09;来完成安装。 方法一&#xff1a;使用 Oracle JDK 17 下载 JDK 17&a…

HTB-BoardLight靶机笔记

BoardLight靶机笔记 概述 HTB的靶机BoardLight 靶机地址&#xff1a;https://app.hackthebox.com/machines/BoardLight 一、nmap扫描 1&#xff09;端口扫描 -sT tcp全连接扫描 --min-rate 以最低速率10000扫描 -p- 扫描全端口 sudo nmap -sT --min-rate 10000 -p- -o p…

【论文写作】怎么写一篇学术论文

文章目录 &#xff08;一&#xff09;非匀速地写论文&#xff08;二&#xff09;弄清期刊的投稿要求以及使用论文模板&#xff08;三&#xff09;论文各个部分撰写的顺序&#xff08;四&#xff09;图表比你想象中的要重要许多&#xff08;五&#xff09;结果和讨论&#xff08…