1介绍

用户想在这里提供背景信息ChIP-Seq项目的设计。

1.1背景和目标

这份报告描述了几个ChIP-Seq实验的分析研究DNA结合转录因子…的模式生物…。

1.2实验设计

通常,用户想在这里指定门店的所有相关信息的分析研究。这包括FASTQ文件的详细描述,实验设计,参考基因组、基因注释,等等。

2样品和环境设置

2.1环境设置和输入数据

systemPipeRdata包是一个辅助包生成一个完全填充的systemPipeR工作流环境与一个命令在当前工作目录中。所有的指令生成工作流中提供systemPipeRdata装饰图案在这里

systemPipeRdata: genWorkenvir(工作流=“chipseq mydirname =“chipseq”) setwd (“chipseq”)

后生成的工作流环境建设和加载genWorkenvirsystemPipeRdata所有数据输入存储在一个数据/目录和所有分析结果将被写入到一个单独的结果/目录,systemPipeChIPseq.Rmd脚本和目标文件预计将位于父目录。R会议预计将从这个父目录运行。额外的参数文件存储参数/

所选择的数据集使用的这份报告SRP010938包含18 paired-end (PE)读集Arabidposis芥(霍华德et al . 2013年)。在测试过程中尽量减少处理时间,每个FASTQ文件子集到90000 - 100000年随机抽样PE读取地图的每个染色体的前100000个核苷酸答:芥基因组。相应的参考基因组序列(FASTA)和人造石铺地面相应注释文件截断。这样整个测试样本数据集小于200 mb的存储空间。一套体育阅读已经为这个测试数据集选择的灵活性,因为它可用于测试两种类型的分析程序要求SE(单头)读取或PE读取。

使用真实的数据,用户希望组织自己的数据同样和所有测试数据代替自己的数据。重新运行一个建立工作流的新数据,初始目标文件连同相应的FASTQ文件通常是唯一的输入用户需要提供。

欲知详情,请参阅文档在这里。更多的信息目标文件从systemPipeR可以找到在这里

2.1.1实验提供的定义目标文件

目标文件定义所有FASTQ文件和样品对比分析的工作流程。

targetspath < -系统。文件("extdata", "targetsPE_chip.txt", package = "systemPipeR") targets <- read.delim(targetspath, comment.char = "#") targets[1:4, -c(5, 6)]
# # FileName1 FileName2 # # 1。/数据/ SRR446027_1.fastq。广州。/数据/ SRR446027_2.fastq。广州# # 2。/数据/ SRR446028_1.fastq。广州。/数据/ SRR446028_2.fastq。广州# # 3。/数据/ SRR446029_1.fastq。广州。/数据/ SRR446029_2.fastq。广州# # 4。/数据/ SRR446030_1.fastq。广州。/数据/ SRR446030_2.fastq。广州日期SampleReference # # # # SampleName因素1 M1A M1 23 - 3月- 2012 # # 2数M1B M1 23 - 3月- 2012 # 23 # 3 A1A A1 - mar - 2012 M1A # 23 # 4 aib A1 - mar - 2012数M1B

使用自定义数据,用户需要生成一个目标文件包含自己的FASTQ文件的路径。

3工作流环境

systemPipeR工作流可以设计并建造与一个命令从开始到结束,从R减价进口文件或以交互模式逐步从R控制台。

本教程将演示如何构建一个交互式的工作流模式,添加每一个步骤。工作流是由连接通过每一步appendStep方法。每一个SYSargsList实例包含指令所需处理的一组输入文件与特定的命令行或R软件和相应的输出文件路径由一个特定的工具/步骤。

创建一个工作流中systemPipeR,我们可以通过定义一个空容器和检查的目录结构:

库(systemPipeR)萨尔< - SPRproject()萨尔

3.1需要包和资源

systemPipeR包需要加载(H后方和Girke 2016)

appendStep (sal) < - LineWise(代码={库(systemPipeR)}, step_name =“load_SPR”)

3.2读预处理

3.2.1之上FASTQ质量报告

以下seeFastqseeFastqPlot函数生成和绘制一系列有用的质量统计一组FASTQ文件,包括每循环质量盒子情节,基地比例,基本的质量趋势,相对k-mer多样性、长度、和发生的分布读取,读取数量高于质量达标和平均分布。结果写入一个png文件命名fastqReport.png

这是pre-trimming fastq报告。另一个post-trimming fastq报告步骤是不包含在默认。建议运行此步骤首先决定是否削减是必要的。

请注意,初始目标文件被用在这里。在这种情况下,它被添加到使用的第一步updateColumn功能,之后,我们使用了getColumn函数来提取一个名为向量。

appendStep (sal) < - LineWise(代码= {< - read.delim目标(“targetsPE_chip.txt”,发表评论。char = " # ") updateColumn (sal,一步=“load_SPR”,位置=“targetsWF”) < -目标fq_files < - getColumn (sal,“load_SPR”、“targetsWF”,列= 1)fqlist < - seeFastq (fastq = fq_files batchsize = 10000, klength = 8) png(“。/结果/ fastqReport。png”,高度= 162,宽度= 288 *长度(fqlist)) seeFastqPlot (fqlist) dev.off ()}, step_name = " fastq_report”,依赖= " load_SPR”)
图1:FASTQ质量报告18样本


3.2.2预处理与preprocessReads函数

这个函数preprocessReads允许应用预定义或自定义读取所有FASTQ文件中引用一个预处理功能SYSargsList容器,如质量过滤或适配器削减的例程。在内部,preprocessReads使用FastqStreamer函数的ShortRead包通过大型FASTQ文件流以节约内存的方式。下面的例子执行适配器削减的trimLRPatterns函数的Biostrings包中。

在这里,我们附加这一步的SYSargsList以前创建的对象。所有的参数的定义preprocessReads-pe.yml文件。

appendStep (sal) < - SYSargsList (step_name =“预处理”,目标= " targetsPE_chip。txt”, dir = TRUE, wf_file = " preprocessReads / preprocessReads-pe。cwl”, input_file = " preprocessReads / preprocessReads-pe。yml”, dir_path =系统。文件("extdata/cwl", package = "systemPipeR"), inputvars = c(FileName1 = "_FASTQ_PATH1_", FileName2 = "_FASTQ_PATH2_", SampleName = "_SampleName_"), dependency = c("fastq_report"))

预处理步骤后,输出文件文件可以用于生成新的目标文件包含削减FASTQ文件的路径。新目标的信息可以用于下一步的工作流实例,如。运行捷比对与修剪FASTQ文件。的appendStep功能是自动处理步骤之间的连通性。请检查的下一步更多的细节。

下面的例子展示了如何能够设计一个自定义的阅读“preprocessReads”使用公用事业所提供的功能ShortRead包,然后在批处理模式运行它“preprocessReads”函数。在这里,可以替换使用的函数预处理步骤和修改萨尔对象。因为它是一个自定义函数,必须保存在R对象,并在内部preprocessReads.doc.R加载自定义函数。如果R对象保存在一个不同的名称(在这里“参数/ customFCT.RData”),请替换相应的preprocessReads.doc.R

请注意这一步不是添加到工作流,这里只是为了演示。

首先,我们定义了工作流定制函数:

appendStep (sal) < - LineWise(代码= {filterFct < -函数(fq截止= 20,Nexceptions = 0) {qcount < - rowSums((质量(fq),“矩阵”)< =截止,na。rm = TRUE) #保留读取phr分数> =截止# N例外fq [qcount < = Nexceptions]}保存(= ls(),列表文件= "参数/ customFCT.RData ")}, step_name =“custom_preprocessing_function”,依赖=“预处理”)

之后,我们可以编辑输入参数:

yamlinput (sal,“预处理”)$ Fct yamlinput (sal,“预处理”、“Fct”) < -”“filterFct (fq截止= 20,Nexceptions = 0)”“yamlinput (sal,“预处理”)$ Fct # #检查新函数cmdlist (sal,“预处理”,目标= 1)# #检查命令行中是否更新成功

3.3比对

3.3.1读映射Bowtie2

捷读取这个项目将符合Bowtie2与参考基因组序列(Langmead和扎尔茨贝格2012)。的参数设置Bowtie2指数中定义bowtie2-index.cwlbowtie2-index.yml文件。

构建指数:

appendStep (sal) < - SYSargsList (step_name =“bowtie2_index dir = FALSE,目标= NULL, wf_file = " bowtie2 / bowtie2-index。cwl”, input_file = " bowtie2 / bowtie2-index。yml”, dir_path =系统。文件("extdata/cwl", package = "systemPipeR"), inputvars = NULL, dependency = c("preprocessing"))

调整器的参数设置中定义workflow_bowtie2-pe.cwlworkflow_bowtie2-pe.yml文件。下面显示了如何构造相应的SYSargsList对象。

在ChIP-Seq实验中通常是更适当的消除读取映射到多个位置。要做到这一点,用户想要删除参数设置50 - k不确定的在配置文件中。

appendStep (sal) < - SYSargsList (step_name =“bowtie2_alignment dir = TRUE,目标= " targetsPE_chip。txt”, wf_file = " workflow-bowtie2 / workflow_bowtie2-pe。cwl”, input_file = " workflow-bowtie2 / workflow_bowtie2-pe。yml”, dir_path =系统。文件("extdata/cwl", package = "systemPipeR"), inputvars = c(FileName1 = "_FASTQ_PATH1_", FileName2 = "_FASTQ_PATH2_", SampleName = "_SampleName_"), dependency = c("bowtie2_index"))

为每个样本,检查命令行请使用以下:

cmdlist (sal,一步=“bowtie2_alignment”,目标= 1)

3.3.2阅读和校准数据

以下概述读入每个样本的数量和多少人一致的参考。

appendStep (sal) < - LineWise(代码= {fqpaths < - getColumn (sal,一步=“bowtie2_alignment”、“targetsWF”,列=“FileName1”) bampaths < - getColumn (sal,一步=“bowtie2_alignment”、“外部档案”,列=“samtools_sort_bam”) read_statsDF < - alignStats (args = bampaths fqpaths = fqpaths pairEnd = TRUE)写。表(结果/ alignStats read_statsDF。”xls”row.names = FALSE,引用= FALSE, 9 = " \ t”)}, step_name = " align_stats”,依赖= " bowtie2_alignment”)

3.4实用程序的覆盖率数据

以下介绍几个实用程序用于ChIP-Seq数据。他们不是实际工作流程的一部分。这些实用程序可以探索工作流执行一次。

3.4.1Rle对象存储覆盖率信息

bampaths < - getColumn (sal,一步=“bowtie2_alignment”、“外部档案”,列=“samtools_sort_bam”)将< - readGAlignments (bampaths [1]) x < -覆盖(对齐)浸

3.4.2调整对齐的读取

调整(调整(如(对齐,“农庄”),宽度= 200))

3.4.3天真的峰打电话

岛屿< -片(x,低= 15)群岛([1])

3.4.4小区覆盖区域定义的

库(ggbio) myloc < - c (“Chr1”, 1日1 e + 05) ga < - readGAlignments (bampaths [1], use.names = TRUE, param = ScanBamParam(=农庄(myloc [1], IRanges (as.numeric (myloc [2]), as.numeric (myloc [3]))))) autoplot (ga, aes(颜色=链,填补=链),面=链~ seqnames,统计=“覆盖”)

图2:情节覆盖1号染色体区域。


3.5峰打电话与MACS2

3.5.1峰打电话之前合并BAM复制的文件

合并BAM文件的技术和/或生物复制可以提高峰值的敏感性要求通过增加阅读的深度报道。的mergeBamByFactor函数合并BAM文件基于指定的分组信息因素,这里的因素导入目标文件的列。它还返回一个更新目标对象包含路径合并后的BAM文件以及任何unmerged文件没有复制。更新后的目标对象可以用来更新SYSargsList对象。

可以跳过这一步如果不需要合并的BAM文件。

appendStep (sal) < - LineWise(代码= {bampaths < - getColumn (sal,一步=“bowtie2_alignment”、“外部档案”,列=“samtools_sort_bam”) merge_bams < mergeBamByFactor (args = bampaths targetsDF = targetsWF (sal) [[“bowtie2_alignment”]], out_dir =文件。路径(“结果”、“merge_bam”),覆盖= TRUE) updateColumn (sal,一步=“merge_bams”,位置=“targetsWF”) < - merge_bams}, step_name =“merge_bams”,依赖=“bowtie2_alignment”)

3.5.2峰打电话没有输入/参考样品

MACS2可以执行呼吁ChIP-Seq峰值数据有或没有输入样本(Zhang et al . 2008年)。以下执行峰打电话没有在所有样本中指定相应的输入目标对象。请注意,由于小样本数据的大小,MACS2需要运行的nomodel设置。对真实数据集,用户想要删除这个参数在相应的* .param文件(年代)。

猫(“运行预处理call_peaks_macs_noref \ n”) #以前Linewise步骤不是运行在工作流构建时间,#但是我们需要这个sysArgs步骤的输出作为输入。我们# #使用一些预处理代码来预测输出路径更新merge_bams的产量目标,然后#他们下一步在工作流构建阶段。mergebam_out_dir =文件。路径(“结果”、“merge_bam”) #确保这是相同的输出目录中使用merge_bams targets_merge_bam < - targetsWF (sal)美元bowtie2_alignment targets_merge_bam < - targets_merge_bam [,——(colnames (targets_merge_bam) % % c (“FileName1”、“FileName2”,“文件名”)))targets_merge_bam < - targets_merge_bam[!复制(targets_merge_bam因素美元),]targets_merge_bam < - cbind文件(文件名=。路径(mergebam_out_dir paste0 (targets_merge_bam因素,美元“_merged.bam”)), targets_merge_bam) updateColumn (sal,一步=“merge_bams”,位置=“targetsWF”) < - targets_merge_bam #写出来作为备份,因此您不需要再次使用上面预处理代码writeTargets (sal,一步=“merge_bams”,文件= " targets_merge_bams。txt”,覆盖= TRUE) # # # pre-end appendStep (sal) < - SYSargsList (step_name =“call_peaks_macs_noref”,目标= " targets_merge_bams。txt”, #或使用“merge_bams”从上一步直接抓住wf_file = " MACS2 / macs2-noinput。cwl”, input_file = " MACS2 / macs2-noinput。yml”, dir_path =系统。文件("extdata/cwl", package = "systemPipeR"), inputvars = c( FileName = "_FASTQ_PATH1_", SampleName = "_SampleName_" ), dependency = c("merge_bams") )

3.5.3峰打电话与输入/参考样本

与输入样本执行峰打电话,他们可以最方便地指定SampleReference列的初始目标文件。的writeTargetsRef使用这些信息来创建一个函数目标文件输入相应的中间运行MACS2样本。

猫(“运行预处理call_peaks_macs_withref \ n”) #为下一步生成参考目标文件,#使用‘writeTargetsRef’,这个文件需要出席#工作流构建时间使用以下预处理代码#这样做:writeTargetsRef (infile = " targets_merge_bams。txt”,输出文件= " targets_bam_ref。txt”,沉默= FALSE,覆盖= TRUE) # # # pre-end appendStep (sal) < - SYSargsList (step_name =“call_peaks_macs_withref”,目标= " targets_bam_ref。txt”, wf_file = " MACS2 / macs2-input。cwl”, input_file = " MACS2 / macs2-input。yml”, dir_path =系统。文件("extdata/cwl", package = "systemPipeR"), inputvars = c(FileName1 = "_FASTQ_PATH1_", FileName2 = "_FASTQ_PATH2_", SampleName = "_SampleName_"), dependency = c("merge_bams"))

高峰从MACS2调用结果写为每个样本到单独的文件中结果/ call_peaks_macs_withref目录中。它们对应的文件命名MACS2使用的扩展。

3.5.4确定共识的山峰

下面的例子显示了如何可以识别共识山峰之一两套峰共享一个绝对最小重叠和/或最低相对重叠使用subsetByOverlapsolRanges函数,分别。注意,后者是一个自定义函数低于进口采购。

appendStep (sal) < - LineWise(代码= {peaks_files < - getColumn (sal,一步=“call_peaks_macs_noref”、“外部档案”,列=“peaks_xls”) peak_M1A < - peaks_files (“M1A”) peak_M1A <——(read.delim (peak_M1A、评论=“#”)[1:3],“农庄”)peak_A1A < - peaks_files (“A1A”) peak_A1A <——(read.delim (peak_A1A、评论=“#”)[1:3],“农庄”)(myol1 < - subsetByOverlaps (peak_M1A、peak_A1A minoverlap = 1)) #返回任何重叠myol2 <——olRanges(查询= peak_M1A、主题= peak_A1A输出= gr) #返回任何重叠OL长度信息myol2[值(myol2) [“OLpercQ”][1] > = 50) #只返回查询的峰值最小重叠的# 50%},step_name =“consensus_peaks”,依赖=“call_peaks_macs_noref”)

3.6注释的山峰与基因组上下文

3.6.1注释与ChIPseeker

下面的注释与基因组上下文信息使用标识的山峰ChIPseeker(Yu,小王,他2015)

appendStep (sal) < - LineWise(代码={库(ChIPseeker)库(GenomicFeatures) peaks_files < - getColumn (sal,一步=“call_peaks_macs_noref”、“外部档案”,列=“peaks_xls”) txdb < - suppressWarnings =“数据/ tair10 (makeTxDbFromGFF(文件。人造石铺地面”,格式= "人造石铺地面,数据源= " TAIR”,生物= "拟南芥”))(我在seq (= peaks_files)) {peakAnno < - annotatePeak (peaks_files[我],TxDb = TxDb verbose = FALSE) df < - as.data.frame peakAnno outpaths < paste0 ("。/结果/ _ChIPseeker_annotated.xls“名称(peaks_files),)名称(outpaths) < -名称(peaks_files)写。表(df, outpaths[我],引用= FALSE, row.names = FALSE, 9 = " \ t ")} updateColumn (sal,一步=“annotation_ChIPseeker”,位置=“输出文件”)<——data.frame (outpaths)}, step_name =“annotation_ChIPseeker”,依赖=“call_peaks_macs_noref”)

每个峰的峰值写注释结果设置在单独的文件中结果/目录中。

总结所提供的情节ChIPseeker包中。这里仅适用于一个样本用于演示目的。

appendStep (sal) < - LineWise(代码= {peaks_files < - getColumn (sal,一步=“call_peaks_macs_noref”、“外部档案”,列=“peaks_xls”) < - readPeakFile峰值(peaks_files [1]) png(“结果/ peakscoverage.png”) covplot(峰,weightCol =“X.log10.pvalue。”) dev.off () png(“结果/ peaksHeatmap.png”) peakHeatmap (peaks_files [1], TxDb = TxDb上游= 1000,下游= 1000,颜色=“红色”)dev.off () png(“结果/ peaksProfile.png”) plotAvgProf2 (peaks_files [1], TxDb = TxDb上游= 1000,下游= 1000,xlab =“基因组区域(5 ' - > 3 ')”ylab =“读计数频率”,conf = 0.05) dev.off ()}, step_name =“ChIPseeker_plots”,依赖=“annotation_ChIPseeker”)

操作注释与ChIPpeakAnno

在上一步,但使用一样ChIPpeakAnno(朱等人。2010)注释的峰值。

appendStep (sal) < - LineWise(代码={库(ChIPpeakAnno)库(GenomicFeatures) peaks_files < - getColumn (sal,一步=“call_peaks_macs_noref”、“外部档案”,列=“peaks_xls”) txdb < - suppressWarnings =“数据/ tair10 (makeTxDbFromGFF(文件。人造石铺地面”,格式= "人造石铺地面,数据源= " TAIR”,生物= "拟南芥”))通用电气< -基因(txdb列= c (“tx_name”、“gene_id”,“tx_type”)),(我在seq (= peaks_files)) {peaksGR <——(read.delim (peaks_files[我],评论=“#”),“农庄”)annotatedPeak < - annotatePeakInBatch (peaksGR AnnotationData =基因(txdb)) df < - data.frame (as.data.frame (annotatedPeak) as.data.frame(值(ge[值(annotatedPeak)特性,美元])))df tx_name <——美元。字符(拉普兰人(df tx_name美元,函数(x)粘贴(unlist (x) 9月= "崩溃= ",")))df tx_type <——美元。字符(拉普兰人(df tx_type美元,函数(x)粘贴(unlist (x) 9月= "崩溃= ",")))outpaths < paste0 (”。/结果/ _ChIPpeakAnno_annotated.xls“名称(peaks_files),)名称(outpaths) < -名称(peaks_files)写。表(df, outpaths[我],引用= FALSE, row.names = FALSE, 9 = " \ t ")}}, step_name =“annotation_ChIPpeakAnno”,依赖=“call_peaks_macs_noref run_step =“可选的”)

每个峰的峰值写注释结果设置在单独的文件中结果/目录中。

3.7数读取重叠峰

countRangeset迭代函数是一个方便的包装器来执行读计数在几集,这里峰值范围集。在内部,读计数与执行summarizeOverlaps函数的GenomicAlignments包中。结果计数表直接保存到文件,一个用于每一个高峰。

appendStep (sal) < - LineWise(代码={图书馆(GenomicRanges) bam_files < getColumn (sal,一步=“bowtie2_alignment”、“外部档案”,列=“samtools_sort_bam”)参数< - getColumn (sal,一步=“call_peaks_macs_noref”、“外部档案”,列=“peaks_xls”)输出文件< paste0 (”。/结果/ _countDF.xls“名称(args),) bfl < - BamFileList (bam_files yieldSize = 50000,指数=字符())countDFnames < countRangeset (bfl、参数、输出文件模式=“联盟”,忽视。链= TRUE) updateColumn (sal,一步=“count_peak_ranges”,位置=“输出文件”)<——data.frame (countDFnames)}, step_name =“count_peak_ranges”,依赖=“call_peaks_macs_noref”)

3.8微分约束分析

runDiff微分绑定函数执行分析以批处理模式数计数表使用刨边机DESeq2(罗宾逊,麦卡锡,史密斯2010;爱,Huber和安德斯2014)。在内部,它调用函数run_edgeRrun_DESeq2。它还返回过滤结果,从下游情节filterDEGs函数使用下面提供的褶皱变化和罗斯福被切断dbrfilter论点。

appendStep (sal) < - LineWise(代码= {countDF_files < - getColumn (sal,一步=“count_peak_ranges”、“外部档案”)输出文件< paste0 (”。/结果/ _peaks_edgeR.xls“名称(countDF_files),)名称(输出文件)< -名称(countDF_files) cmp < - readComp(文件= stepsWF (sal) [[“bowtie2_alignment”]],格式=“矩阵”)dbrlist <——runDiff (args = countDF_files,输出文件=输出文件,diffFct = run_edgeR目标= targetsWF (sal) [[“bowtie2_alignment”]], cmp = cmp([1]),独立= TRUE, dbrfilter = c(折= 2,罗斯福= 1)},step_name =“diff_bind_analysis”,依赖=“count_peak_ranges”)

3.9去术语富集分析

下面的执行期限最高富集分析每个注释。

appendStep (sal) < - LineWise(代码= {annofiles < - getColumn (sal,一步=“annotation_ChIPseeker”、“外部档案”)gene_ids < -酸式焦磷酸钠(annofiles、功能(x)独特(as.character (read.delim (x) [" geneId "])),简化= FALSE)负载(“数据/去/ catdb.RData”) BatchResult < - GOCluster_Report(演唱会catdb = catdb曲目= gene_ids方法=“所有”,id_type =“基因”,CLSZ = 2,截止= 0.9,gocats = c(“曼氏金融”、“英国石油公司”,“CC”), recordSpecGO = NULL)写。表(结果/ GOBatchAll BatchResult。”xls”,引用= FALSE, row.names = FALSE, 9 = " \ t”)}, step_name = " go_enrich”,依赖= " annotation_ChIPseeker”,)

3.10主题分析

3.10.1解析基因组DNA序列的峰值区域

浓缩DNA结合图案或分析新创发现小说主题需要确定峰值区域的DNA序列。解析相应的参考基因组序列,getSeq函数的Biostrings可以使用包。下面的例子解析每个峰的序列设置单独的FASTA文件并保存结果,每个峰值设定一个。此外,FASTA文件中的序列排名(排序)通过增加一些主题发现工具,按预期假定值等BCRANK

appendStep (sal) < - LineWise(代码={库(Biostrings)库(seqLogo)图书馆(BCRANK) rangefiles < getColumn (sal,一步=“call_peaks_macs_noref”、“输出文件”),(我在seq (= rangefiles)) {df < - read.delim (rangefiles[我],评论= " # ")峰值<——(df,“农庄”)名称(山峰)< - paste0 (as.character (seqnames(峰值),“_”,开始(峰值),“-”,结束(山峰))峰值< -峰(山峰)X.log10.pvalue美元[秩序(值。,降低= TRUE)] pseq < - getSeq (FaFile(“。/数据/ tair10.fasta”),山峰)的名字(pseq) <——名字(山峰)writeXStringSet (pseq, paste0 (rangefiles[我],“.fasta”))}}, step_name =“parse_peak_sequences”,依赖=“call_peaks_macs_noref”)

3.10.2主题发现与BCRANK

Bioconductor包BCRANK是其中的一种工具新创发现DNA结合主题ChIP-Seq峰地区的实验。给定的例子适用这种方法第一高峰样本集和情节序列排名最高的国家标志图案。

appendStep (sal) < - LineWise(代码={库(Biostrings)库(seqLogo)图书馆(BCRANK) rangefiles < getColumn (sal,一步=“call_peaks_macs_noref”、“外部档案”)set.seed (0) BCRANKout < - BCRANK (paste0 (rangefiles [1],“.fasta”),重启= 25日使用。P1 = TRUE,使用。P2 = TRUE) toptable (BCRANKout) topMotif < - toptable (BCRANKout, 1) weightMatrix < - pwm (topMotif正常化= FALSE) weightMatrixNormalized < - pwm (topMotif正常化= TRUE) png(“结果/ seqlogo.png”) seqLogo (weightMatrixNormalized) dev.off ()}, step_name =“bcrank_enrich”,依赖=“call_peaks_macs_noref”)