问题描述
错误:mutate()
输入type
出现问题。
x f
必须是一个因子(或字符向量)。
i输入type
为fct_relevel(type,c("hit","bad-hit [evalue > 0.01]","non-hit"))
。
我很确定代码之前可以使用其他数据集,但是现在它会产生这些错误...
#脚本到达我所在的位置(您可能需要安装生物弦)
BiocManager::install("Biostrings")
library(tidyverse)
library(data.table)
a <-
"qseqid sseqid pident length mismatch gapopen qstart qend sstart send ppos evalue bitscore
KQJ81400 NC_012870.2 100.000 10 0 0 1354 1383 49691442 49691471 100.00 0.33 25.3
KQJ81513 NC_012871.2 100.000 11 0 0 1288 1256 77518889 77518857 100.00 0.00 30.4"
blasts <- read.table(text=a,header = TRUE)
BrachCDS <- Biostrings::readDNAStringSet('ftp://ftp.ensemblgenomes.org/pub/plants/release-47/fasta/brachypodium_distachyon/cds/Brachypodium_distachyon.Brachypodium_distachyon_v3.0.cds.all.fa.gz') %>% as.data.frame() %>% rownames_to_column(var='gene') %>%
rename(seq=x) %>% as_tibble()
c <-
">KQJ81400 cds chromosome:Brachypodium_distachyon_v3.0:5:440113:447844:-1 gene:BRADI_5g00478v3 gene_biotype:protein_coding
>KQJ81513 cds chromosome:Brachypodium_distachyon_v3.0:5:1105857:1107846:-1 gene:BRADI_5g01198v3 description:hypothetical protein"
B1000 <-fread(c,header = F,fill= T,select =c(1,2))
blasts <- blasts %>% arrange(qseqid,-pident,evalue,-bitscore) %>%
distinct (qseqid,.keep_all = T) %>%
mutate(evalue=round(evalue,digits = 2)) %>%
rename(subject_length=length)
(我实际上有我自己的CDS文件,该文件为多行Fasta格式,仅带有qseqid,所以我认为这不是问题所在)
B1000_SEQ <- BrachCDS %>% filter(gene %in% B1000$V1) %>%
mutate(length=nchar(seq)) %>%
left_join(blasts,by=c('gene'='qseqid')) %>%
mutate(type=ifelse(is.na(evalue),'non-hit',ifelse(evalue <= 0.01,'hit','bad-hit [evalue > 0.01]')),type=fct_relevel(type,c('hit','bad-hit [evalue > 0.01]','non-hit')))
“ f”是什么意思? “ f”甚至在哪里,为什么它不是一个因素?那“类型”又是怎么回事? 任何对正在发生的事情或如何解决它的帮助将不胜感激!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)