玉米中的元基因调控网络突出了功能上相关的调控相互作用。\functions.R

1. 加载必要的R包

require(devtools)
load_all("~/git/rmaize")
require(ape)
require(ggtree)
require(ggforce)
require(Rtsne)
  • load_all("~/git/rmaize"):加载本地路径中的rmaize包,通常是你自己或团队开发的一个包,这里假设是一个与玉米相关的分析包。

2. 定义工作路径

dirp = '~/projects/rnaseq'
dird = glue('{dirp}/data')
#dirc = '/scratch.global/zhoux379/rnaseq'
#t_cfg = read_gspread_master(lib='rnaseq')
说明:
  • dirp = '~/projects/rnaseq':定义RNA-Seq项目的根目录路径,指向本地的rnaseq项目文件夹。
  • dird = glue('{dirp}/data'):使用glue包来动态拼接路径,dird代表数据存储目录。
  • #dirc = '/scratch.global/zhoux379/rnaseq':注释掉的行,可能是备用路径。
  • #t_cfg = read_gspread_master(lib='rnaseq'):注释掉的行,可能是从Google Sheets读取配置信息,配置RNA-Seq分析所需的文件和参数。

这一部分的目的是设定一些路径,以便后续操作中能轻松访问数据和相关文件。


3. 定义read_rnaseq函数

read_rnaseq <- function(yid) {res = rnaseq_cpm(yid)th = res$th; tm = res$tmth = th %>% replace_na(list(Tissue='', Genotype='B73', Treatment='')) %>%mutate(Tissue=as.character(Tissue)) %>%mutate(Genotype=as.character(Genotype)) %>%mutate(Treatment=as.character(Treatment))...
}

th 数据进行缺失值替换和数据转换

  • replace_na:这是 tidyr 包中的函数,用于替换缺失值。这里对 th 数据框的三个列进行了缺失值替换:

    • Tissue 列的缺失值被替换为 ''(空字符串)。
    • Genotype 列的缺失值被替换为 'B73'(这是一个常见的玉米品种名,可能是默认的基因型)。
    • Treatment 列的缺失值被替换为 ''(空字符串)。
  • mutate:这是 dplyr 包中的函数,用于改变数据框中的列或创建新的列。这里使用 mutate 函数将 TissueGenotypeTreatment 列的类型转换为字符型(as.character)。这些列可能原本是因子型或其他类型,转换为字符型后,方便后续的处理和分析。

总结:
  • 功能:该函数的核心目的是处理RNA-Seq数据中的 th 数据框,将缺失值进行合理替换,并确保某些列的格式一致(字符型)。这通常是数据预处理的一部分,为后续分析做准备。
  • 输入:函数的输入 yid 可能是一个标识符,用于指定特定的RNA-Seq数据或实验条件。
  • 输出:修改后的 th 数据框(包含了样本的组织、基因型和处理方式等信息)。

4. 定义read_multiqc_trimmomatic函数

read_multiqc_trimmomatic <- function(fi, paired = T) {ti = read_tsv(fi)types = c("surviving", "forward_only_surviving", "reverse_only_surviving", "dropped")if (paired == F) {nd = ti %>% mutate(nd = input_reads - surviving - dropped) %>%group_by(1) %>% summarise(nd = sum(nd)) %>% pull(nd)stopifnot(nd == 0)to = ti %>% mutate(SampleID = Sample, total = input_reads, surviving_f=0, surviving_r=0)} else if(paired == T | paired == 'both') {ti2 = ti %>% separate(Sample, c("SampleID",'suf'), sep="_", fill='right', extra='merge') %>% select(-suf) %>%mutate(surviving_f = forward_only_surviving,surviving_r = reverse_only_surviving)if(paired == 'both') ti2 = ti2 %>% replace_na(list('input_reads'=0, 'input_read_pairs'=0,'surviving_f'=0, 'surviving_r'=0)) %>%mutate(input_read_pairs = ifelse(input_read_pairs == 0, input_reads, input_read_pairs))nd = ti2 %>% mutate(nd = input_read_pairs - surviving - surviving_f - surviving_r - dropped) %>%group_by(1) %>% summarise(nd = sum(nd)) %>% pull(nd)stopifnot(nd == 0)to = ti2 %>% mutate(total = input_read_pairs)} else {stop(sprintf("unsupported option: %s", paired))}to %>%select(SampleID, total, surviving, surviving_f, surviving_r, dropped)
}
说明:

这个函数用于读取和处理MultiQC报告中的Trimmomatic数据。Trimmomatic是一个常用的高通量测序数据的质量控制工具。该函数的输入是fi(MultiQC报告文件路径)和paired(一个布尔值,指示是否是成对数据)。

  1. 读取数据

    • ti = read_tsv(fi):使用read_tsv函数读取以制表符分隔的文件,返回一个数据框ti
  2. 根据是否成对读取数据

    • 如果paired == F(即单端数据),会计算丢失的读取数(nd),并将surviving_fsurviving_r置为0。
    • 如果paired == T(即成对数据),则使用separate(Sample, ...)分割样本列,分别提取前向和反向的存活读取数。
  3. 处理丢失读取数(nd)

    • 根据读取的数据计算nd,即总读取数减去存活读取数和丢弃读取数。如果nd不为0,则会停止并抛出错误。
    • 如果paired == 'both',则还会处理input_read_pairssurviving_fsurviving_r
  4. 输出

    • 最终函数返回一个数据框to,包含样本ID、总读取数、存活读取数、前向存活读取数、反向存活读取数和丢弃读取数。

该函数主要用于从质量控制文件中读取、处理和整理RNA-Seq数据的质量控制信息,特别是针对配对(或单端)数据的读数情况进行处理。它提供了对不同类型数据的灵活处理,并输出了包含样本、读数总数、存活读数等信息的简明数据框。


5. 定义read_multiqc_star函数

read_multiqc_star <- function(fi, paired = T) {ti = read_tsv(fi)if(paired == F) {ti2 = ti %>% mutate(SampleID = Sample) %>% select(-Sample)} else {ti2 = ti %>% separate(Sample, c("SampleID",'suf'), sep="_", fill='right', extra='merge') %>% select(-suf) }ti2 = ti2 %>%transmute(SampleID = SampleID, total = total_reads,uniquely_mapped = uniquely_mapped,multimapped = multimapped + multimapped_toomany,unmapped = unmapped_mismatches + unmapped_tooshort + unmapped_other,nd = total - uniquely_mapped - multimapped - unmapped) stopifnot(sum(ti2$nd) < 1000)ti2 = ti2 %>% group_by(SampleID) %>%summarise(uniquely_mapped = sum(uniquely_mapped),multimapped = sum(multimapped),unmapped = sum(unmapped))types = c("uniquely_mapped", "multimapped", "unmapped")to = ti2 %>% select(SampleID, uniquely_mapped, multimapped, unmapped)to
}
说明:

该函数处理MultiQC报告中的STAR比对数据。STAR是一个用于RNA-Seq数据的快速比对工具。函数处理STAR比对的输出数据并返回相关的统计信息。

  1. 读取数据

    • ti = read_tsv(fi):读取MultiQC报告中的STAR比对统计数据。
  2. 处理成对和单端数据

    • 如果paired == F,则处理单端数据。
    • 如果paired == T,则分离Sample列(假设是成对的样本名)。
  3. 计算不同的比对情况

    • transmute(SampleID = SampleID, total = total_reads, ...):计算总读取数、唯一比对数、多重比对数、未比对数等。
    • nd = total - uniquely_mapped - multimapped - unmapped:计算丢失的读取数(nd)。
  4. 数据汇总

    • 使用group_by(SampleID)按样本ID分组,汇总每个样本的比对统计信息。
    • 最后返回一个包含每个样本唯一比对数、多重比对数和未比对数的数据框。

这个函数的主要目的是处理STAR比对工具的输出,并汇总每个样本的比对统计信息。


6. 定义read_multiqc_bwa函数

read_multiqc_bwa <- function(fi, paired = T) {ti = read_tsv(fi)if(paired == F) {ti2 = ti %>% mutate(SampleID = Sample) %>% select(-Sample)} else {ti2 = ti %>% separate(Sample, c("SampleID",'suf'), sep="_", fill='right', extra='merge') %>% select(-suf) }ti2 = ti2 %>%transmute(SampleID = SampleID, total = total_reads,uniquely_mapped = uniquely_mapped,multimapped = multimapped + multimapped_toomany,unmapped = unmapped_other,nd = total - uniquely_mapped - multimapped - unmapped) stopifnot(sum(ti2$nd) < 1000)ti2 = ti2 %>% group_by(SampleID) %>%summarise(uniquely_mapped = sum(uniquely_mapped),multimapped = sum(multimapped),unmapped = sum(unmapped))types = c("uniquely_mapped", "multimapped", "unmapped")to = ti2 %>% select(SampleID, uniquely_mapped, multimapped, unmapped)to
}
说明:

read_multiqc_bwa函数与read_multiqc_star函数相似,处理的是BWA(Burrows-Wheeler Aligner)比对的输出数据。BWA是另一个常用的比对工具,尤其适用于DNA-Seq数据。这个函数的主要任务是读取BWA的比对统计信息,并提取关键的比对数据。

  1. 读取数据

    • ti = read_tsv(fi):读取MultiQC报告中的BWA比对统计数据。
  2. 处理成对和单端数据

    • 如果paired == F,则直接处理单端数据。
    • 如果paired == T,则按样本ID分割,提取样本信息。
  3. 计算不同的比对情况

    • transmute(SampleID = SampleID, total = total_reads, ...):计算总读取数、唯一比对数、多重比对数、未比对数等。
    • nd = total - uniquely_mapped - multimapped - unmapped:计算丢失的读取数(nd)。
  4. 数据汇总

    • 使用group_by(SampleID)按样本ID分组,汇总每个样本的比对统计信息。
    • 最终返回一个包含每个样本唯一比对数、多重比对数和未比对数的数据框。

7. 定义read_multiqc_fastqc函数

read_multiqc_fastqc <- function(fi) {ti = read_tsv(fi)ti2 = ti %>%mutate(SampleID = Sample) %>%select(-Sample)types = c("pass", "fail")to = ti2 %>% select(SampleID, total = total_sequences,passed = passed, failed = failed)to
}
说明:

read_multiqc_fastqc函数用于读取并处理FastQC质量控制工具生成的报告。FastQC是一个非常常用的工具,用于检查高通量测序数据的质量,如GC含量、序列长度分布等。此函数主要提取与数据质量相关的统计信息。

  1. 读取数据

    • ti = read_tsv(fi):读取MultiQC报告中的FastQC数据。
  2. 处理数据

    • 直接将样本ID从Sample列提取,并将其命名为SampleID
  3. 输出

    • 返回一个包含样本ID、总序列数(total_sequences)、通过质量控制的序列数(passed)和未通过质量控制的序列数(failed)的数据框。

8. 定义get_input_reads_multiqc函数

get_input_reads_multiqc <- function(multiqc_fi) {ti = read_multiqc_trimmomatic(multiqc_fi)to = ti %>% transmute(SampleID = SampleID, total = total,surviving = surviving) to
}
说明:

get_input_reads_multiqc函数用于从MultiQC报告中提取输入的读取数。它通过调用之前定义的read_multiqc_trimmomatic函数,提取Trimmomatic处理后的统计信息,并返回相关的数据框。

  1. 调用read_multiqc_trimmomatic

    • ti = read_multiqc_trimmomatic(multiqc_fi):调用之前定义的read_multiqc_trimmomatic函数来读取并处理MultiQC报告中的Trimmomatic统计数据。
  2. 输出

    • 返回一个包含样本ID、总读取数和存活读取数的数据框。

9. 定义get_align_summary_multiqc函数

get_align_summary_multiqc <- function(multiqc_fi, aligner = "bwa") {if (aligner == "bwa") {ti = read_multiqc_bwa(multiqc_fi)} else if (aligner == "star") {ti = read_multiqc_star(multiqc_fi)} else {stop("unsupported aligner")}ti
}
说明:

get_align_summary_multiqc函数用于根据不同的比对工具(BWASTAR)提取比对的汇总信息。

  1. 判断比对工具

    • if (aligner == "bwa"):根据传入的aligner参数,选择使用read_multiqc_bwaBWA)或read_multiqc_starSTAR)函数。
  2. 输出

    • 返回根据所选比对工具处理后的比对统计信息。

总结:

  • 这些函数的核心作用是从MultiQC报告中提取各类质量控制和比对数据,包括TrimmomaticSTARBWAFastQC等工具的输出结果。
  • 通过这些函数,用户可以方便地获得不同工具生成的统计信息,并对比各个样本的处理质量,确保后续分析的数据质量可靠。

如果你有任何问题,或者希望更深入地了解某个部分,随时告诉我!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/497740.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot对静态资源的映射规则

目录 什么是SpringBoot静态资源映射&#xff1f; 如何实现SpringBoot静态资源映射&#xff1f; 1. webjars&#xff1a;以jar包的方式引入静态资源 示例&#xff1a; 2. /** 访问当前项目的任何资源 示例一&#xff1a; 示例二&#xff1a; 3. 静态首页&#xff08;欢…

【EtherCATBasics】- KRTS C++示例精讲(2)

EtherCATBasics示例讲解 目录 EtherCATBasics示例讲解结构说明代码讲解 项目打开请查看【BaseFunction精讲】。 结构说明 EtherCATBasics&#xff1a;应用层程序&#xff0c;主要用于人机交互、数据显示、内核层数据交互等&#xff1b; EtherCATBasics.h &#xff1a; 数据定义…

【论文阅读】Reducing Activation Recomputation in Large Transformer Models

创新点&#xff1a; 针对Transformer结构&#xff0c;通过序列并行和选择性重计算激活值&#xff0c;在节省显存空间占用的情况下&#xff0c;不带来明显通信开销&#xff0c;同时减少重计算成本。 总的来说&#xff0c;就是在原有的张量并行的基础上&#xff0c;对LayerNorm和…

Linux arm 编译安装glibc-2.29

重要的话说三遍&#xff1a; &#xff01;&#xff01;&#xff01;&#xff01;&#xff01;不要轻易自己去安装glibc&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; &#xff01;&#xff01;&#xff01;&#xff01;&#xff01;不要轻易自己去安装glibc&a…

STM32完全学习——FLASH上FATFS文件管理系统

一、需要移植的接口 我们通过看官网的手册&#xff0c;可以看到我们只要完成下面函数的实现&#xff0c;就可以完成移植。我们这里只移植前5个函数&#xff0c;获取时间的函数我们不在这里移植。 二、移植接口函数 DSTATUS disk_status (BYTE pdrv /* Physical drive nmuber…

Docker使用——国内Docker的安装办法

文章目录 参考资料前言Mac安装办法Homebrew 安装1. 直接下报错2. 安装homebrew&#xff0c; 用国内镜像3. 安装Docker4. 启动docker服务5. 测试是否安装成功 参考资料 鸣谢大佬文章。 macOS系统中&#xff1a;Docker的安装&#xff1a;https://blog.csdn.net/sulia1234567890…

Java-38 深入浅出 Spring - AOP切面增强 核心概念 相关术语 Proxy配置

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 大数据篇正在更新&#xff01;https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了&#xff1a; MyBatis&#xff…

【CSS in Depth 2 精译_096】16.4:CSS 中的三维变换 + 16.5:本章小结

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第五部分 添加动效 ✔️【第 16 章 变换】 ✔️ 16.1 旋转、平移、缩放与倾斜 16.1.1 变换原点的更改16.1.2 多重变换的设置16.1.3 单个变换属性的设置 16.2 变换在动效中的应用 16.2.1 放大图标&am…

iOS 苹果开发者账号: 查看和添加设备UUID 及设备数量

参考链接&#xff1a;苹果开发者账号下添加新设备UUID - 简书 如果要添加新设备到 Profiles 证书里&#xff1a; 1.登录开发者中心 Sign In - Apple 2.找到证书设置&#xff1a; Certificate&#xff0c;Identifiers&Profiles > Profiles > 选择对应证书 edit &g…

【HENU】河南大学计院2024 计算机网络 期末复习知识点

和光同尘_我的个人主页 一直游到海水变蓝。 计网复习 第一章互联网组成类别交换方式分组交换的要点&#xff1a;分组交换的优点&#xff1a; 网络性能指标体系结构网络协议五层协议 第二章&#xff1a;物理层物理层的主要任务&#xff08;四大特性&#xff09;通信的三种方式…

Kafka中的Topic和Partition有什么关系?

大家好&#xff0c;我是锋哥。今天分享关于【Kafka中的Topic和Partition有什么关系&#xff1f;】面试题。希望对大家有帮助&#xff1b; Kafka中的Topic和Partition有什么关系&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Apache Kafka 中&#…

一文读懂变分自编码(VAE)

一文读懂变分自编码(VAE) 概述 变分自编码器&#xff08;Variational Autoencoder, VAE&#xff09;是一种生成模型&#xff0c;用于学习数据的潜在表示并生成与原始数据分布相似的新数据。它是一种概率模型&#xff0c;通过结合深度学习和变分推断的思想&#xff0c;解决了传…

第十七周:Fast R-CNN论文阅读

Fast R-CNN论文阅读 摘要Abstract文章简介1. 引言2. Fast R-CNN框架2.1 RoI位置信息映射2.2 RoI pooling2.3 分类器与边界框回归器2.4 以VGG16为backbone的Fast RCNN的网络结构 3. 训练细节3.1 采样3.2 多任务损失 4. 优缺点分析总结 摘要 这篇博客介绍了Fast R-CNN&#xff0…

ThinkPHP 8开发环境安装

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《ThinkPHP 8高效构建Web应用 夏磊 编程与应用开发丛书 清华大学出版社》【摘要 书评 试读】- 京东图书 1. 安装PHP8 Windows系统用户可以前往https://windows.php.net/downloads/releases/archives/下载PHP 8.0版本&am…

VM虚拟机配置ubuntu网络

目录 桥接模式 NAT模式 桥接模式 特点&#xff1a;ubuntu的IP地址与主机IP的ip地址不同 第一部分&#xff1a;VM虚拟机给ubuntu的网络适配器&#xff0c;调为桥接模式 第二部分&#xff1a;保证所桥接的网络可以上网 第三部分&#xff1a;ubuntu使用DHCP&#xff08;默认&…

日本IT行业|分享实用的开发语言及框架

在日本IT行业中&#xff0c;开发语言与框架的选择非常多样化&#xff0c;但也有一些特定的技术和框架更为流行。以下是对日本IT行业在用的开发语言与框架的详细分享&#xff1a; 开发语言 Java&#xff1a;Java在日本是一门非常稳定且受欢迎的编程语言&#xff0c;很多日本公…

【畅购商城】校验用户名、手机号以及前置技术Redis和阿里大鱼短信验证码

搭建环境 后端web服务&#xff1a;changgou4-service-web修改pom.xml文档 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&…

[创业之路-222]:波士顿矩阵与GE矩阵在业务组合选中作用、优缺点比较

目录 一、波士顿矩阵 1、基本原理 2、各象限产品的定义及战略对策 3、应用 4、优点与局限性 二、技术成熟度模型与产品生命周期模型的配对 1、技术成熟度模型 2、产品生命周期模型 3、技术成熟度模型与产品生命周期模型的配对 三、产品生命周期与产品类型的对应关系 …

第三方接口设计注意要点

实际工作中&#xff0c;我们会遇到与三方系统对接的情形&#xff0c;比如对接短信服务、支付服务、地图服务、以及一些外部业务系统的调用和回调等等&#xff0c;不论是我们调用第三方接口还是我们为其他系统提供接口服务&#xff0c;调用过程中会遇到一些大大小小的问题和吐槽…

折腾日记:如何让吃灰笔记本发挥余热——搭建一个相册服务

背景 之前写过&#xff0c;我在家里用了一台旧的工作站笔记本做了服务器&#xff0c;连上一个绿联的5位硬盘盒实现简单的网盘功能&#xff0c;然而&#xff0c;还是觉的不太理想&#xff0c;比如使用filebrowser虽然可以备份文件和图片&#xff0c;当使用手机使用网页&#xf…