当{R} Markdown到HTML文件中hand2 <- c("Q","Q","6","6","Q")
时,我收到一个奇怪的错误。我认为这与knitting
包裹dplyr
中的某种不兼容性有关。
更新:我使用knitr
命令替换了cbind
块,正如下面有人建议不要将dplyr::bind_cols
与cbind
一起使用。但是,我现在得到一个不同的,同样难以理解的错误:
dplyr
我从这次改变中得到的错误(再次,仅在编织时):
library(dplyr)
counts.all <- bind_cols(count.tables[["SF10281"]], count.tables[["SF10282"]])
Error in eval(expr, envir, enclos) : not compatible with STRSXP
Calls: <Anonymous> ... withVisible -> eval -> eval -> bind_cols -> cbind_all -> .Call
而不是cbind
的上一个错误:
单独运行块工作正常,我能够dplyr::bind_cols
好,直到我添加最后一个块(使用knit
中的select
)。
这是我得到的错误:
dplyr
这是整个Rmd文件:
将基因计数表读入单个数据帧列表(每个样本一个数据帧):
Quitting from lines 75-77 (Analysis_SF10281_SF10282_Sep29_2015.Rmd)
Error in UseMethod("select_") :
no applicable method for 'select_' applied to an object of class "NULL"
Calls: <Anonymous> ... withVisible -> eval -> eval -> <Anonymous> -> select_
删除基因元数据列:
```{r}
count.files <- list.files(pattern = "^SF[0-9]+_counts.txt$")
count.tables <- lapply(count.files, read.table, header=T, row.names=1)
names(count.tables) <- gsub("\\_counts.txt", "", count.files)
```
将单元格(列)重命名为短版本:
```{r}
count.tables <- lapply(count.tables, `[`, -(1:5))
```
将对象保存到文件以供日后使用:
```{r}
count.tables <- lapply(count.tables, function(x) {names(x) <- gsub("X.diazlab.aaron.tophat_out.SF[0-9]+.Sample_(SF[0-9]+).[0-9]+.([A-Z][0-9]+).accepted_hits.bam", "\\1-\\2", names(x)); x})
```
使用所有4个样本(384个单元格)创建单个数据框,并写入文本文件:
{r}
saveRDS(count.tables, file="gliomaRawCounts_10281_10282_10345_10360.rds")
读取元数据。 不要将cell ID列指定为row.names,以与dplyr兼容。
```{r}
counts.all <- cbind(count.tables[["SF10281"]], count.tables[["SF10282"]], count.tables[["SF10345"]], count.tables[["SF10360"]])
write.table(counts.all, file="gliomaRawCounts_10281_10282_10345_10360.txt", sep="\t", quote=F, col.names=NA)
```
根据实时/死/多次呼叫过滤单元格。 排除空的,仅红色的和多细胞的孔:
```{r}
meta <- read.delim("QC_metrics_SCell_SF10281_SF10282_SF10345_SF10360.txt", check.names = F, stringsAsFactors = F)
```
根据1,000个基因阈值过滤细胞:
```{r, results='hide', message=FALSE, warning=FALSE}
library(dplyr)
meta.select <- filter(meta, grepl("^1g", `Live-dead_call`))
```
子集计数表仅包括通过QC的单元格。
(Includes 12 'FAIL' cells)
```{r}
meta.select <- filter(meta.select, Genes_tagged > 1000)
```