如何解决AnnotationForge函数makeOrgPackage中的“重复行”错误
我正在使用AnnotationForge包,特别是函数makeOrgPackage创建一个有机体包。我一直在关注这个插图:https://www.bioconductor.org/packages/release/bioc/vignettes/AnnotationForge/inst/doc/MakingNewOrganismPackages.html
当我调用函数时:
makeOrgPackage(gene_info=PA14Sym,chromosome=PA14Chr,go=PA14Go,version="0.1",maintainer="myname <email@university.edu>",author="myname <email@university.edu>",outputDir = ".",tax_id="208963",genus="Pseudomonas",species="aeruginosa",goTable="go")
我收到此错误:
Error in FUN(X[[i]],...) : data.frames in '...' cannot contain duplicated rows
“ ...”是指包含注释数据的数据帧集。我确保这些数据框的结构与小插图中的示例完全相同。在“ gene_info”和“ chromosome” dfs中,我删除了所有重复的行。
“ go” df在“ GID”(基因ID)列中具有重复的值,但是所有GO值都是唯一的,并且我检查了是否存在重复的行。例如:
GID GO EVIDENCE
1 PA14_00010 GO:0005524 ISM
2 PA14_00010 GO:0006270 ISM
3 PA14_00010 GO:0006275 ISM
4 PA14_00010 GO:0043565 ISM
5 PA14_00010 GO:0003677 ISM
6 PA14_00010 GO:0003688 ISM
7 PA14_00020 GO:0003677 ISM
8 PA14_00020 GO:0006260 ISM
小插图提供的样本雀科数据也是如此;重复的GID,但唯一的GO号。令人沮丧的是,当我为小插图中的示例数据运行makeOrgPackage函数时,没有任何错误。我在这里想念什么?
完整脚本:
# Load in GO annotated PA14 file,downloaded from Psuedomonas.com
PA14file <- read.csv("../data/GO_annotations/GO_PA14.csv")
colnames(PA14file)
> colnames(PA14file)
[1] "LocusTag" "GeneName" "ProductDescription"
[4] "StrainName" "Accession" "GOTerm"
[7] "Namespace" "GOEvidenceCode" "EvidenceOntologyECOCode"
[10] "EvidenceOntologyTerm" "SimilarToBindsTo" "PMID"
[13] "chrom"
# PA14 only has 1 chromosome,so create a new column and populate it with 1s.
PA14file$chrom <- '1'
# Create gene_info df,remove duplicate rows
PA14Sym <- PA14file[,c("LocusTag","GeneName","ProductDescription")]
PA14Sym <- PA14Sym[PA14Sym[,"GeneName"]!="-",]
PA14Sym <- PA14Sym[PA14Sym[,"ProductDescription"]!="-",]
colnames(PA14Sym) <- c("GID","SYMBOL","GENENAME")
PA14Sym <- PA14Sym[!duplicated(PA14Sym),]
# Create chromosome df,remove duplicate rows
PA14Chr <- PA14file[,"chrom")]
PA14Chr <- PA14Chr[PA14Chr[,"chrom"]!="-",]
colnames(PA14Chr) <- c("GID","CHROMOSOME")
PA14Chr %>% distinct(GID,.keep_all = TRUE)
PA14Chr <- PA14Chr[!duplicated(PA14Chr),]
# Create go df
PA14Go <- PA14file[,"Accession","GOEvidenceCode")]
PA14Go <- PA14Go[PA14Go[,"GOEvidenceCode"]!="",]
colnames(PA14Go) <- c("GID","GO","EVIDENCE")
# Call the function
makeOrgPackage(gene_info=PA14Sym,goTable="go")
解决方法
我今天也遇到了这个问题,刚刚在dplyr中改用distinct()后,这个函数就可以正常工作了。(我的和你的一样)
尝试在创建的每个部分的尾部添加一段 %>% dplyr::distinct()
或在所有操作后使用 dplyr::distinct()
删除变量中的重复项。
就你而言:
library(dplyr)
PA14Sym <- dplyr::distinct(PA14Sym)
PA14Chr <- dplyr::distinct(PA14Chr)
PA14Go <- dplyr::distinct(PA14Go)
希望这些能帮到你。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。