GMSB文章九:微生物的相關關系組間波動

歡迎大家關注全網生信學習者系列:

  • WX公zhong號:生信學習者
  • Xiao hong書:生信學習者
  • 知hu:生信學習者
  • CDSN:生信學習者2

介紹

計算配對微生物在組間的相關關系波動情況進而評估不同分組的微生物狀態。secom_linear 函數可以評估不同分組(例如,健康組與疾病組)中微生物分類群之間的線性相關性,幫助研究者理解不同分類群如何相互作用以及它們在不同狀態下的相互關系。通過分析不同分組間微生物相關性的波動情況,secom_linear 函數能夠揭示微生物群落結構的動態變化,這對于理解微生物群落對環境變化的響應至關重要。

在不同分組之間,微生物分類群的相互關系表現出顯著的波動性。這種波動性反映了微生物群落結構在不同環境或條件下的動態變化,是評估微生物群落穩定性和功能多樣性的關鍵指標。通過定量分析這些波動,研究者可以深入理解微生物群落如何響應外部擾動,以及它們在不同生態位中的作用和相互依賴性。

加載R包

library(readr)
library(openxlsx)
library(tidyverse) 
library(igraph)
library(ggraph)
library(tidygraph)
library(ggpubr)
library(microbiome)
library(ANCOMBC)

導入數據

大家通過以下鏈接下載數據:

  • 百度網盤鏈接:https://pan.baidu.com/s/1fz5tWy4mpJ7nd6C260abtg
  • 提取碼: 請關注WX公zhong號_生信學習者_后臺發送 復現gmsb 獲取提取碼
otu_table <- read_tsv("./data/GMSB-data/otu-table.tsv", show_col_types = FALSE)tax <- read_tsv("./data/GMSB-data/taxonomy.tsv", show_col_types = FALSE)meta_data <- read_csv("./data/GMSB-data/df_v1.csv", show_col_types = FALSE)

數據預處理

  • 提取差異物種豐度表
  • 合并分組變量和差異物種豐度表

Primary group: 按照頻率分組

  • G1: # receptive anal intercourse = 0

  • G2: # receptive anal intercourse = 1

  • G3: # receptive anal intercourse = 2 - 5

  • G4: # receptive anal intercourse = 6 +

# OTU table
otu_id <- otu_table$`#OTU ID`
otu_table <- data.frame(otu_table[, -1], check.names = FALSE, row.names = otu_id)# Taxonomy table
otu_id <- tax$`Feature ID`
tax <- data.frame(tax[, - c(1, 3)], row.names = otu_id)
tax <- tax %>% separate(col = Taxon, into = c("Kingdom", "Phylum", "Class", "Order", "Family", "Genus", "Species"),sep = ";") %>%rowwise() %>%dplyr::mutate_all(function(x) strsplit(x, "__")[[1]][2]) %>%mutate(Species = ifelse(!is.na(Species) & !is.na(Genus),paste(ifelse(strsplit(Genus, "")[[1]][1] == "[",strsplit(Genus, "")[[1]][2],strsplit(Genus, "")[[1]][1]), Species, sep = "."),NA)) %>%ungroup()
tax <- as.matrix(tax)
rownames(tax) <- otu_id
tax[tax == ""] <- NA# Meta data
meta_data$status <- factor(meta_data$status, levels = c("nc", "sc"))
meta_data$time2aids <- factor(meta_data$time2aids,levels = c("never", "> 10 yrs","5 - 10 yrs", "< 5 yrs"))# Phyloseq object
OTU <- otu_table(otu_table, taxa_are_rows = TRUE)
META <- sample_data(meta_data)
sample_names(META) <- meta_data$sampleid
TAX <- tax_table(tax)
otu_data <- phyloseq(OTU, TAX, META)
species_data <- aggregate_taxa(otu_data, "Species")tse <- mia::makeTreeSummarizedExperimentFromPhyloseq(otu_data)
tse <- tse[, tse$group1 != "missing"]
tse1 <- tse[, tse$group1 == "g1"]
tse2 <- tse[, tse$group1 == "g2"]
tse3 <- tse[, tse$group1 == "g3"]
tse4 <- tse[, tse$group1 == "g4"]tse4key_species <- c("A.muciniphila", "B.caccae", "B.fragilis", "B.uniformis","Bacteroides spp.", "Butyricimonas spp.", "Dehalobacterium spp.", "Methanobrevibacter spp.", "Odoribacter spp.")
class: TreeSummarizedExperiment 
dim: 6111 35 
metadata(0):
assays(1): counts
rownames(6111): 000e1601e0051888d502cd6a535ecdda 0011d81f43ec49d21f2ab956ab12de2f ...fff3a05f150a52a2b6c238d2926a660d fffc6ea80dc6bb8cafacbab2d3b157b3
rowData names(7): Kingdom Phylum ... Genus Species
colnames(35): F-195 F-133 ... F-368 F-377
colData names(45): sampleid subjid ... hbv hcv
reducedDimNames(0):
mainExpName: NULL
altExpNames(0):
rowLinks: NULL
rowTree: NULL
colLinks: NULL
colTree: NULL

函數

  • get_upper_tri:獲取上三角矩陣結果

  • data_preprocess:獲取相關性畫圖矩陣

get_upper_tri <- function(cormat){cormat[lower.tri(cormat)] <- NAdiag(cormat) <- NAreturn(cormat)
}data_preprocess <- function(res, type = "linear", level = "Species", tax) {if (type == "linear") {df_corr <- res$corr_fl} else {df_corr <- res$dcorr_fl}if (level == "Species") {tax_name <- colnames(df_corr)tax_name <- sapply(tax_name, function(x) {name <- ifelse(grepl("Genus:", x), paste(strsplit(x, ":")[[1]][2], "spp."),ifelse(grepl("Species:", x), strsplit(x, ":")[[1]][2], x))return(name)})colnames(df_corr) <- tax_namerownames(df_corr) <- tax_namedf_corr <- df_corr[tax, tax]} else {tax_name <- colnames(df_corr)tax_name <- sapply(tax_name, function(x) strsplit(x, ":")[[1]][2])colnames(df_corr) <- tax_namerownames(df_corr) <- tax_namedf_corr <- df_corr[tax, tax]}tax_name <- sort(colnames(df_corr))df_corr <- df_corr[tax_name, tax_name]df_clean <- data.frame(get_upper_tri(df_corr)) %>%rownames_to_column("var1") %>%pivot_longer(cols = -var1, names_to = "var2", values_to = "value") # Correct for namesdf_name <- data.frame(var1 = unique(df_clean$var1),var2 = unique(df_clean$var2))for (i in seq_len(nrow(df_name))) {df_clean$var2[df_clean$var2 == df_name$var2[i]] = df_name$var1[i]}df_clean <- df_clean %>%filter(!is.na(value)) %>%mutate(value = round(value, 2))return(df_clean)
}

Linear correlations

secom_linear 函數是 ANCOMBC 包中的一個函數,用于在微生物組數據中進行線性相關性的稀疏估計。該函數支持三種相關性系數的計算:皮爾遜(Pearson)、斯皮爾曼(Spearman)和肯德爾(Kendall’s tau)相關系數。以下是 secom_linear 函數的主要參數和它們的作用:

  • data: 包含微生物組數據的列表。
  • assay_name: 指定數據集中的哪個檢測類型(如“counts”)。
  • tax_level: 指定使用的分類水平,例如“Phylum”(門)。
  • pseudo: 偽計數,用于穩定稀疏矩陣的計算。
  • prv_cut: 用于過濾掉低豐度的物種的閾值。
  • lib_cut: 用于過濾掉低測序深度的樣本的閾值。
  • corr_cut: 用于過濾掉低相關性的閾值。
  • wins_quant: 用于確定窗口大小的分位數。
  • method: 指定計算哪種相關性系數,可以是“pearson”、“spearman”。
  • soft: 是否使用軟閾值。
  • thresh_len: 硬閾值的長度。
  • n_cv: 交叉驗證的迭代次數。
  • thresh_hard: 硬閾值,用于確定最終的相關性矩陣。
  • max_p: 最大 p 值,用于多重測試校正。
  • n_cl: 聚類的數量。

函數會返回兩個主要的結果對象:corr_thcorr_fl,分別代表閾值相關性矩陣和完整相關性矩陣。這些矩陣提供了不同物種或分類水平之間的線性相關性估計。

Run SECOM

secom_linear 函數1)首先通過設置不同的閾值來過濾數據,2)然后使用指定的方法計算相關性系數,3)并通過交叉驗證等技術來確定最終的相關性矩陣。這個過程涉及到數據的預處理、相關性計算和結果的后處理,以確保相關性估計的準確性和稀疏性。

set.seed(123)res_linear1 <- ANCOMBC::secom_linear(data = list(tse1), assay_name = "counts",tax_level = "Species", pseudo = 0, prv_cut = 0.1, lib_cut = 1000, corr_cut = 0.5,wins_quant = c(0.05, 0.95), method = "pearson",soft = FALSE, thresh_len = 20, n_cv = 10,thresh_hard = 0.3, max_p = 0.005, n_cl = 2)names(res_linear1)res_linear2 <- ANCOMBC::secom_linear(data = list(tse2), assay_name = "counts",tax_level = "Species", pseudo = 0,prv_cut = 0.1, lib_cut = 1000, corr_cut = 0.5,wins_quant = c(0.05, 0.95), method = "pearson", soft = FALSE, thresh_len = 20, n_cv = 10, thresh_hard = 0.3, max_p = 0.005, n_cl = 2)res_linear3 <- ANCOMBC::secom_linear(data = list(tse3), assay_name = "counts",tax_level = "Species", pseudo = 0, prv_cut = 0.1, lib_cut = 1000, corr_cut = 0.5,wins_quant = c(0.05, 0.95), method = "pearson",soft = FALSE, thresh_len = 20, n_cv = 10, thresh_hard = 0.3, max_p = 0.005, n_cl = 2)res_linear4 <- ANCOMBC::secom_linear(data = list(tse4), assay_name = "counts",tax_level = "Species", pseudo = 0, prv_cut = 0.1, lib_cut = 1000, corr_cut = 0.5,wins_quant = c(0.05, 0.95), method = "pearson",soft = FALSE, thresh_len = 20, n_cv = 10, thresh_hard = 0.3, max_p = 0.005, n_cl = 2)species1 <- rownames(res_linear1$corr_fl)
species1 <- species1[grepl("Species:", species1)|grepl("Genus:", species1)]
species2 <- rownames(res_linear2$corr_fl)
species2 <- species2[grepl("Species:", species2)|grepl("Genus:", species2)]
species3 <- rownames(res_linear3$corr_fl)
species3 <- species3[grepl("Species:", species3)|grepl("Genus:", species3)]
species4 <- rownames(res_linear4$corr_fl)
species4 <- species4[grepl("Species:", species4)|grepl("Genus:", species4)]
common_species <- Reduce(intersect, list(species1, species2, species3, species4))
common_species <- sapply(common_species, function(x) ifelse(grepl("Genus:", x), paste(strsplit(x, ":")[[1]][2], "spp."),strsplit(x, ":")[[1]][2]))
[1] "s_diff_hat"  "y_hat"       "cv_error"    "thresh_grid" "thresh_opt"  "mat_cooccur" "corr"        "corr_p"     [9] "corr_th"     "corr_fl"  

結果:四個分組的線性相關的共有物種,查看微生物兩兩之間的相關系數

Visualization

可視化同一組微生物兩兩之間的相關系數在不同組的變化狀態

df_corr1 <- data_preprocess(res_linear1, type = "linear", level = "Species", tax = key_species) %>%dplyr::mutate(group = "G1")
df_corr2 <- data_preprocess(res_linear2, type = "linear", level = "Species", tax = key_species) %>%dplyr::mutate(group = "G2")
df_corr3 <- data_preprocess(res_linear3, type = "linear", level = "Species", tax = key_species) %>%dplyr::mutate(group = "G3")
df_corr4 <- data_preprocess(res_linear4, type = "linear", level = "Species", tax = key_species) %>%dplyr::mutate(group = "G4")df_corr <- do.call('rbind', list(df_corr1, df_corr2, df_corr3, df_corr4)) %>%unite("pair", var1:var2, sep = " vs. ")value_check <- df_corr %>%dplyr::group_by(pair) %>%dplyr::summarise(empty_idx = ifelse(all(value == 0), TRUE, FALSE))non_empty_pair <- value_check %>%filter(empty_idx == FALSE) %>%.$pair
df_fig <- df_corr %>%dplyr::filter(pair %in% non_empty_pair)fig_species_linear <- df_fig %>%ggline(x = "group", y = "value",color = "steelblue", facet.by = "pair",xlab = "Correlation coefficient", ylab = "", title = "Pearson Correlation") +scale_y_continuous(breaks = seq(0, 0.8, 0.2), limits = c(0, 0.9)) +geom_text(aes(label = round(value, 2)), vjust = -0.5) +theme(plot.title = element_text(hjust = 0.5))fig_species_linear

在這里插入圖片描述

結果:同一微生物對兩兩之間的相關關系在不同分組不同,這可能表明不同狀態下,微生物之間的相關關系不一樣或意味著不同的微生物模式。

Nonlinear correlations

secom_linear 函數是 ANCOMBC 包中的一個函數,用于在微生物組數據中進行線性相關性的稀疏估計。該函數支持三種相關性系數的計算:皮爾遜(Pearson)、斯皮爾曼(Spearman)和肯德爾(Kendall’s tau)相關系數。以下是 secom_linear 函數的主要參數和它們的作用:

  • data: 包含微生物組數據的列表。
  • assay_name: 指定數據集中的哪個檢測類型(如“counts”)。
  • tax_level: 指定使用的分類水平,例如“Phylum”(門)。
  • pseudo: 偽計數,用于穩定稀疏矩陣的計算。
  • prv_cut: 用于過濾掉低豐度的物種的閾值。
  • lib_cut: 用于過濾掉低測序深度的樣本的閾值。
  • corr_cut: 用于過濾掉低相關性的閾值。
  • wins_quant: 用于確定窗口大小的分位數。
  • method: 指定計算哪種相關性系數,可以是“pearson”、“spearman”。
  • soft: 是否使用軟閾值。
  • thresh_len: 硬閾值的長度。
  • n_cv: 交叉驗證的迭代次數。
  • thresh_hard: 硬閾值,用于確定最終的相關性矩陣。
  • max_p: 最大 p 值,用于多重測試校正。
  • n_cl: 聚類的數量。

函數會返回兩個主要的結果對象:corr_thcorr_fl,分別代表閾值相關性矩陣和完整相關性矩陣。這些矩陣提供了不同物種或分類水平之間的線性相關性估計。

Run SECOM

secom_linear 函數1)首先通過設置不同的閾值來過濾數據,2)然后使用指定的方法計算相關性系數,3)并通過交叉驗證等技術來確定最終的相關性矩陣。這個過程涉及到數據的預處理、相關性計算和結果的后處理,以確保相關性估計的準確性和稀疏性。

set.seed(123)res_dist1 <- ANCOMBC::secom_dist(data = list(tse1), assay_name = "counts",tax_level = "Species", pseudo = 0, prv_cut = 0.1, lib_cut = 1000, corr_cut = 0.5,wins_quant = c(0.05, 0.95),R = 1000, thresh_hard = 0.3, max_p = 0.005, n_cl = 2)res_dist2 <- ANCOMBC::secom_dist(data = list(tse2), assay_name = "counts",tax_level = "Species", pseudo = 0,prv_cut = 0.1, lib_cut = 1000, corr_cut = 0.5,wins_quant = c(0.05, 0.95),R = 1000, thresh_hard = 0.3, max_p = 0.005, n_cl = 2)res_dist3 <- ANCOMBC::secom_dist(data = list(tse3), assay_name = "counts",tax_level = "Species", pseudo = 0, prv_cut = 0.1, lib_cut = 1000, corr_cut = 0.5,wins_quant = c(0.05, 0.95),R = 1000, thresh_hard = 0.3, max_p = 0.005, n_cl = 2)res_dist4 <- ANCOMBC::secom_dist(data = list(tse4), assay_name = "counts",tax_level = "Species", pseudo = 0,prv_cut = 0.1, lib_cut = 1000, corr_cut = 0.5,wins_quant = c(0.05, 0.95),R = 1000, thresh_hard = 0.3, max_p = 0.005, n_cl = 2)species1 <- rownames(res_dist1$corr_fl)
species1 <- species1[grepl("Species:", species1)|grepl("Genus:", species1)]
species2 <- rownames(res_dist2$corr_fl)
species2 <- species2[grepl("Species:", species2)|grepl("Genus:", species2)]
species3 <- rownames(res_dist3$corr_fl)
species3 <- species3[grepl("Species:", species3)|grepl("Genus:", species3)]
species4 <- rownames(res_dist4$corr_fl)
species4 <- species4[grepl("Species:", species4)|grepl("Genus:", species4)]
common_species <- Reduce(intersect, list(species1, species2, species3, species4))
common_species <- sapply(common_species, function(x) ifelse(grepl("Genus:", x), paste(strsplit(x, ":")[[1]][2], "spp."),strsplit(x, ":")[[1]][2]))

結果:四個分組的線性相關的共有物種,查看微生物兩兩之間的相關系數

Visualization

可視化同一組微生物兩兩之間的相關系數在不同組的變化狀態

df_corr1 <- data_preprocess(res_dist1, type = "dist", level = "Species", tax = key_species) %>%dplyr::mutate(group = "G1")
df_corr2 <- data_preprocess(res_dist2, type = "dist", level = "Species", tax = key_species) %>%dplyr::mutate(group = "G2")
df_corr3 <- data_preprocess(res_dist3, type = "dist", level = "Species", tax = key_species) %>%dplyr::mutate(group = "G3")
df_corr4 <- data_preprocess(res_dist4, type = "dist", level = "Species", tax = key_species) %>%dplyr::mutate(group = "G4")df_corr <- do.call('rbind', list(df_corr1, df_corr2, df_corr3, df_corr4)) %>%unite("pair", var1:var2, sep = " vs. ")value_check <- df_corr %>%dplyr::group_by(pair) %>%dplyr::summarise(empty_idx = ifelse(all(value == 0), TRUE, FALSE))non_empty_pair <- value_check %>%filter(empty_idx == FALSE) %>%.$pair
df_fig <- df_corr %>%dplyr::filter(pair %in% non_empty_pair)fig_species_dist <- df_fig %>%ggline(x = "group", y = "value",color = "steelblue", facet.by = "pair",xlab = "", ylab = "", title = "Distance Correlation") +scale_y_continuous(breaks = seq(0, 0.8, 0.2), limits = c(0, 0.9)) +geom_text(aes(label = round(value, 2)), vjust = -0.5) +theme(plot.title = element_text(hjust = 0.5))fig_species_dist


結果:同一微生物對兩兩之間的相關關系在不同分組不同,這可能表明不同狀態下,微生物之間的相關關系不一樣或意味著不同的微生物模式。

  • B.caccae vs. Bacteroides spp.的距離相關系數在G2組是0.68,而在G4組則是0,相比G4組,其他三個組是較為輕微的癥狀。同樣的發現也在Bacteroides spp. vs. Butyricimonas spp.Bacteroides spp. vs. Odoribacter spp.中出現。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/37352.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/37352.shtml
英文地址,請注明出處:http://en.pswp.cn/web/37352.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

線性表與順序存儲結構(下)

前言 接上文&#xff08;線性表與順序存儲結構&#xff08;上&#xff09;&#xff09;。 這些順序存儲結構的方法在順序表上下卷中已經提到過&#xff0c;但是有些許不同&#xff0c;可以為理解順序表提供更豐富的視角。&#xff08;不過最主要的區別在于順序表上下卷中的順…

機器人關節 viscous friction與結構阻尼

Viscous Friction&#xff08;粘性摩擦&#xff09; 定義&#xff1a;Viscous friction&#xff0c;也被稱為粘性摩擦或粘滯摩擦&#xff0c;是機器人關節在運動過程中由于接觸面之間的相互作用而產生的摩擦力。這種摩擦力與關節的運動速度有關&#xff0c;通常表現為速度越大&…

HarmonyOS開發實戰:分布式文件系統-hmdfs

分布式文件系統提供跨設備的文件訪問能力&#xff0c;適用于如下場景&#xff1a; 兩臺設備組網&#xff0c;A 設備可以無感讀取和修改 B 設備的文件。 邊緣服務器可以自動同步組網中多個嵌入式設備中的文件數據。 hmdfs 在分布式軟總線動態組網的基礎上&#xff0c;為網絡上…

Ubuntu添加系統字體

&#xff08;2024.6.30&#xff09; 系統字體保存路徑在/usr/share/fonts下&#xff0c;如果此目錄下缺少字體&#xff0c;則使用其他可視化api&#xff08;如Python的pygame庫&#xff09;的默認配置時可能會出現亂碼問題。 往Ubuntu中添加字體的方法 方法一&#xff1a;手…

Ant Design Vue:如何提升你的前端開發效率?

目錄 1. Ant Design Vue 簡介 1.1 特性概覽 1.2 安裝與配置 2. 常用組件及使用示例 2.1 Button 按鈕 2.2 Form 表單 2.3 Table 表格 2.4 Modal 對話框 3. 常見問題及解決方案 3.1 組件無法渲染 問題描述 解決方案 3.2 表單驗證失效 問題描述 解決方案 3.3 表格…

Python | 計算位渦平流項

寫在前面 最近忙著復習、考試…都沒怎么空敲代碼&#xff0c;還得再準備一周考試。。。等考完試再慢慢更新了&#xff0c;今天先來淺更一個簡單但是使用的python code 在做動力機制分析時&#xff0c;我們常常需要借助收支方程來診斷不同過程的貢獻&#xff0c;其中最常見的一…

51單片機-點亮LED燈

目錄 新建項目選擇型號添加新文件到該項目設置字體和utf-8編碼二極管如何區分正負極原理&#xff1a;CPU通過寄存器來控制硬件電路 用P2寄存器的值控制第一個燈亮進制轉換編譯查看P2寄存器的地址生成HEX文件把代碼下載到單片機中 新建項目 選擇型號 stc是中國生產的、這個里面…

token登錄比密碼登錄有什么優勢嗎

token登錄比密碼登錄有什么優勢嗎 使用令牌&#xff08;Token&#xff09;登錄相比于密碼登錄具有一些優勢&#xff0c;包括&#xff1a; 安全性&#xff1a;令牌通常采用加密技術&#xff0c;使得它們更難以被盜取或猜測。相比之下&#xff0c;密碼存在被猜測、破解或被暴力攻…

解決瀏覽器兼容性問題的方法

解決瀏覽器兼容性問題的方法 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天我們來探討如何解決網頁開發中常見的瀏覽器兼容性問題。隨著互聯網技術的發展&…

java中輸入輸出流的繼承關系

在 Java 中,輸入輸出流的繼承關系主要圍繞兩個抽象基類展開:字節流基類 InputStream 和 OutputStream,以及字符流基類 Reader 和 Writer。這些類形成了 Java I/O 系統的基礎,提供了豐富的子類以適應不同的輸入輸出需求。 字節流 字節流用于處理原始的二進制數據。 Input…

利用Linked SQL Server提權

點擊星標&#xff0c;即時接收最新推文 本文選自《內網安全攻防&#xff1a;紅隊之路》 掃描二維碼五折購書 利用Linked SQL Server提權 Linked SQL server是一個SQL Server數據庫中的對象&#xff0c;它可以連接到另一個SQL Server或非SQL Server數據源&#xff08;如Oracle&a…

初學者輕松搞定19個經典的Python程序以及代碼演示

Python的經典程序展示了Python語言基本特性和功能的簡單示例,這些程序在學習和理解Python編程語言的過程中起著至關重要的作用. 一些常見的經典Python程序及其在學習Python時的功能&#xff1a; 1.Hello, World! print("Hello, World!")解釋:這是Python的基本輸出…

primeflex overflow樣式類相關的用法和案例

文檔地址&#xff1a;https://primeflex.org/overflow 案例1 <script setup> import axios from "axios"; import {ref} from "vue";const message ref("frontend variable") axios.get(http://127.0.0.1:8001/).then(function (respon…

【Flink】Flink SQL

一、Flink 架構 Flink 架構 | Apache Flink 二、設置TaskManager、Slot和Parallelism 在Apache Flink中&#xff0c;設置TaskManager、Slot和Parallelism是配置Flink集群性能和資源利用的關鍵步驟。以下是關于如何設置這些參數的詳細指南&#xff1a; 1. TaskManager 設置 …

【漏洞復現】致遠互聯FE協作辦公平臺——SQL注入

聲明&#xff1a;本文檔或演示材料僅供教育和教學目的使用&#xff0c;任何個人或組織使用本文檔中的信息進行非法活動&#xff0c;均與本文檔的作者或發布者無關。 文章目錄 漏洞描述漏洞復現測試工具 漏洞描述 致遠互聯FE協作辦公平臺是一個專注于協同管理軟件領域的數智化運…

關于內存和外存文件不同字符集下占用空間大小問題

關于內存和外存不同字符集下文件占用空間大小問題 存儲&#xff08;外存&#xff09;的文件中的字符&#xff1a; ASCII&#xff1a;每個字符占用1個字節&#xff0c;用來存儲英文字符和常用標點符號。ISO-8859-1&#xff1a;每個字符占用1個字節&#xff0c;向下兼容ASCII。G…

DS18B20單總線數字溫度傳感器國產替代MY18E20 MY1820 MY18B20Z MY18B20L(一)

前言 DS18B20是全球第一個單總線數字溫度傳感器&#xff0c;推出時間已經超過30年&#xff0c;最早由美國達拉斯半導體公司推出&#xff0c;2001年1月&#xff0c;美信以25億美元收購達拉斯半導體&#xff08;Dallas Semiconductor&#xff09;&#xff0c;而美信在2021年8月被…

DM達夢數據庫存儲過程

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;歡迎各位來到我的博客&#xff0c;很高興能夠在這里和您見面&#xff01;希望您在這里不僅可以有所收獲&#xff0c;同時也能感受到一份輕松歡樂的氛圍&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

RDMA通信2:RDMA基本元素和組成 通信過程元素關系解析 視頻教程

哈哈哈&#xff0c;今天我們把下面這張圖理解了&#xff0c;我們的任務就完成了&#xff01; 視頻教程在這&#xff1a;1.2 RDMA基本元素和組成 通信過程元素關系解析_嗶哩嗶哩_bilibili 一、WQ和WQE 工作隊列元素(work queue element,WQE)&#xff1a;是軟件下發給硬件的任務…

Apache Ranger 2.4.0 集成Hive 3.x(Kerbos)

一、解壓tar包 tar zxvf ranger-2.4.0-hive-plugin.tar.gz 二、修改install.propertis POLICY_MGR_URLhttp://localhost:6080REPOSITORY_NAMEhive_repoCOMPONENT_INSTALL_DIR_NAME/BigData/run/hiveCUSTOM_USERhadoop 三、進行enable [roottv3-hadoop-01 ranger-2.4.0-hive…