Qiime2 ASV特征名简化修改

  问题描述:使用Qiime2生成的feature table(特征表),注释文件以及代表性序列中的ASV名称往往是很长的一段数字(如:“84b577b185f76483981b055fc7c878cb”),在后续的分析中可能会与某些软件不兼容。我们可以用如下代码将这些ASV的特征名称修改为ASV1、ASV2、ASV3……这样的形式。
  修改特征表(feature table)和分类表(taxonomy table)处理基本的表格即可,这里的关键问题是:如何读取序列文件,并修改序列名称,R包seqinr可以实现这一问题。具体R代码如下:

#change OTU ID in the feature table
feature.table2 <- read.delim("yourfeature-table.txt")
oldID <- feature.table2$OTU.ID
newID <- paste("ASV",1:length(feature.table2$OTU.ID),sep = "")
feature.table2$OTU.ID <- newID
View(feature.table2)
write.table(feature.table2,
            "your-feature-table2.txt",
            quote = FALSE,
            row.names = FALSE,
            col.names = TRUE,
            sep = "\t")

#Change feature ID in taxonomy table
tax <- read.delim("your-taxonomy.tsv")
names(newID) = oldID
newFeatureID <- newID[tax$Feature.ID]
tax$Feature.ID <- newFeatureID
View(tax)
write.table(tax,
            "your-taxonomy2.tsv",
            quote = FALSE,
            row.names = FALSE,
            col.names = TRUE,
            sep = "\t")

#Change the sequence ID in fasta file
library(seqinr)
seq <- read.fasta(file = "your-dna-sequences.fasta",
                  as.string = TRUE,
                  seqtype = "DNA",
                  forceDNAtolower = FALSE)
oldSeqID <- names(seq)
newSeqID <- newID[oldSeqID]
#names(seq) <- newSeqID
#seq[1:5]
write.fasta(sequences = seq,names = newSeqID,file.out="your-dna-sequences2.fasta")

效果如下:
feature-table修改前:
Qiime2 ASV特征名简化修改_第1张图片
feature-table修改后:
Qiime2 ASV特征名简化修改_第2张图片
注释文件修改前:
Qiime2 ASV特征名简化修改_第3张图片
注释文件修改后:
Qiime2 ASV特征名简化修改_第4张图片
代表性序列修改前:
Qiime2 ASV特征名简化修改_第5张图片
代表性序列修改后:
Qiime2 ASV特征名简化修改_第6张图片
值得一提的是,我们还可以用“seqinr”包对序列的格式(每行的字符数)进行修改,以适应某些特殊软件的需要,效果如下:

代表性序列格式修改前:
在这里插入图片描述
代表性序列格式修改后:
Qiime2 ASV特征名简化修改_第7张图片
代码如下:

library(seqinr)
seq <- read.fasta(file = "your-dna-sequences.fasta",
                  as.string = FALSE,
                  seqtype = "DNA",
                  forceDNAtolower = FALSE)
oldSeqID <- names(seq)
newSeqID <- newID[oldSeqID]
#names(seq) <- newSeqID
#seq[1:5]
write.fasta(sequences = seq,
            names = names(seq),
            file.out="C:/Users/hutianlong/Desktop/your-dna-sequences2.fasta",
            nbchar = 50)

序列格式修改因人而异,文章中难以尽述,有相关需求的朋友可以CSDN私信我哈。

你可能感兴趣的:(遇到问题,解决问题,r语言,微生物生态学)