【发布时间】:2018-12-02 20:02:30
【问题描述】:
我在 Rmarkdown 中编写了几百行代码。我希望这个脚本通过包装器从用户那里获取输出文件的输入路径和名称。我对这种编码很陌生,我的问题是我怎样才能有一个包装器来接受这两个输入并将其解析为我的 .Rmd 文件。
例如,这里是我的 .Rmd 文件的前几行。
---
title: "QC Report"
author: "Angelo"
output:
html_document:
css: style.css
toc: true
fontsize: 15pt
---
For the current QC report we first refer to the 10x QC reports for initial sequence and mapping quality metrics.
#1. Loading of libraries
```{r include = T}
suppressPackageStartupMessages(library(scater))
suppressPackageStartupMessages(library(mvoutlier))
suppressPackageStartupMessages(library(Rtsne))
suppressPackageStartupMessages(library(limma))
suppressPackageStartupMessages(library(ggplot2))
suppressPackageStartupMessages(library(repr))
suppressPackageStartupMessages(library(cowplot))
suppressPackageStartupMessages(library(knitr))
suppressPackageStartupMessages(library(rmarkdown))
options(stringsAsFactors = FALSE)
```
#2. Loading expression data
\newline
```{r include = T}
loadSCE <- function(path){
sce <- read10XResults(path)
#sce <- normalize(sce) # Data normalization based on scran
mitochondrialGenes <- as.character(rowData(sce)[startsWith(rowData(sce)$symbol, "mt-"),]$id)
isSpike(sce, "MT") <- rownames(sce) %in% mitochondrialGenes
sce <- calculateQCMetrics(sce,
feature_controls = list(
MT = isSpike(sce, "MT")
))
}
```
```{r include = T}
paths <- list.dirs(path = "/home/mydir/SampleData/", recursive = FALSE)
for (i in 1:length(paths))
assign(paste0("sce_",i), loadSCE(paths[i]))
sce=0
for (i in 1:length(paths))
sce[i]<-print(noquote(paste0("sce_",i)))
```
```{r include = T}
t_list <- mget(ls(pattern="sce_\\d+"))
for(i in seq_along(t_list))
{
metadata(t_list[[i]])["name"] <- paste0("iMates-",i)
}
```
本质上我想要的是这样的:
wrapper.sh -path /home/mydir/ -outfile output.html
or
Raw.Rmd -p /home/mydir/ -outfile output.html
请帮帮我。
谢谢
【问题讨论】: