論文
微生物叢の異なる存在量の方法は、38のデータセット間で異なる結果を生成します
データリンク
https://figshare.com/articles/dataset/16S_rRNA_Microbiome_Datasets/14531724
コードリンク
https://github.com/nearinj/Comparison_of_DA_microbiome_methods
この人のgithubホームページには、他の論文のデータとコードがあります
https://github.com/jnmacdonald/differential-abundance-analysisこのリンクには、ディファレンシャルアバンダンス分析というタイトルのコードがたくさんあります。
過去2日間、差量分析のためにotu存在量データを使用してメタゲノムを観察していましたが、この論文を見つけて要約を読みました。異なる存在量分析方法で得られた結果の類似点と相違点を比較しているようです。DESeq2を使用した示差アバンダンス分析については、ここでコードを繰り返します
ここで使用するデータセットは
豊富なデータ
ArcticFireSoils_genus_table.tsv
パケットデータ
ArcticFireSoils_meta.tsv
ここに質問があります:論文によって提供された2つの豊富なテーブルデータがあり、もう1つはまれな接尾辞が付いています。当面の間、2つの違いはわかりません。
1つ目は、データセットを読み取ることです
ASV_table <- read.table("metagenomics/dat01/ArcticFireSoils_genus_table.tsv",
sep="\t",
skip=1,
header=T,
row.names = 1,
comment.char = "",
quote="", check.names = F)
groupings <- read.table("metagenomics/dat01/ArcticFireSoils_meta.tsv",
sep="\t",
row.names = 1,
header=T,
comment.char = "",
quote="",
check.names = F)
dim(ASV_table)
dim(groupings)
groupings$Fire<-factor(groupings$Fire)
ここでは、グループ化を表す係数を割り当てる必要があります。そうしないと、後のdeseq2のステップで警告メッセージが表示されます。
アバンダンスデータのサンプル名とグループ化されたデータのサンプル名が同じ順序であるかどうかを確認します
identical(colnames(ASV_table), rownames(groupings))
一貫性のないfalseを返す
2つのサンプル名の共通部分を取ります
rows_to_keep <- intersect(colnames(ASV_table), rownames(groupings))
交差点を取得した結果に基づいてサンプルを再選択します
groupings <- groupings[rows_to_keep,,drop=F]
ASV_table <- ASV_table[,rows_to_keep]
質問:ここの括弧内のドロップパラメータの機能は何ですか?
2つのデータセットのサンプル名の順序をもう一度判断します
identical(colnames(ASV_table), rownames(groupings))
今回はTRUEを返します
グループ化ファイルの列名を変更します
colnames(groupings)[1] <- "Groupings"
示差存在量分析
library(DESeq2)
dds <- DESeq2::DESeqDataSetFromMatrix(countData = ASV_table,
colData=groupings,
design = ~ Groupings)
dds_res <- DESeq2::DESeq(dds, sfType = "poscounts")
res <- results(dds_res,
tidy=T,
format="DataFrame",
contrast = c("Groupings","Fire","Control"))
head(res)
火山地図コード
DEG<-res
logFC_cutoff<-2
DEG$change<-as.factor(ifelse(DEG$pvalue<0.05&abs(DEG$log2FoldChange)>logFC_cutoff,
ifelse(DEG$log2FoldChange>logFC_cutoff,"UP","DOWN"),
"NOT"))
this_title <- paste0('Cutoff for logFC is ',round(logFC_cutoff,3),
'\nThe number of up gene is ',nrow(DEG[DEG$change =='UP',]) ,
'\nThe number of down gene is ',nrow(DEG[DEG$change =='DOWN',]))
DEG<-na.omit(DEG)
library(ggplot2)
ggplot(data=DEG,aes(x=log2FoldChange,
y=-log10(pvalue),
color=change))+
geom_point(alpha=0.8,size=3)+
labs(x="log2 fold change")+ ylab("-log10 pvalue")+
ggtitle(this_title)+theme_bw(base_size = 20)+
theme(plot.title = element_text(size=15,hjust=0.5),)+
scale_color_manual(values=c('#a121f0','#bebebe','#ffad21')) -> p1
p1+xlim(NA,10)+ylim(NA,30) -> p2
library(patchwork)
p1+p2
今日のツイートのサンプルデータとコードは、昨日の広告ツイートのコメント領域で取得できます。青いテキストをクリックして、昨日の広告ツイートに移動します。
私の公開番号に注意を払うためにみんなを歓迎します
XiaoMingのデータ分析ノート
Xiaomingのデータ分析ノートブックの公開アカウントは主に次のことを共有しています。1。データ分析とデータ視覚化のためのR言語とpythonの簡単な例;2。トランスクリプトミクス、ゲノミクス、人口遺伝学の文献に関連する園芸植物に関するメモを読む;3.バイオインフォマティクス入門研究資料を学ぶあなた自身の研究ノート!