首页 > 其他分享 >R:计算相对丰度最简单的R代码

R:计算相对丰度最简单的R代码

时间:2023-12-26 09:58:19浏览次数:17  
标签:abundance FALSE 代码 relative 丰度 简单 txt data

rm (list = ls ()) #清除所有变量
setwd("C:\\Users\\Administrator\\Desktop\\新建文件夹\\PCoA") #设置工作目录

# 加载必要的库
library(dplyr)

# 读取数据,假设您的文件名是 data.txt
# 请根据您的文件实际路径调整这里的文件名
data <- read.table("otu_table.txt", header = TRUE, sep = "\t", quote = "")

# 计算相对丰度
# 跳过第一列(物种名称),只对数值列进行计算
relative_abundance <- data %>%
  mutate(across(-clade_name, ~ round(.x / sum(.x), 10)))

# 输出结果到新的TXT文件
write.table(relative_abundance, "relative_abundance.txt", sep = "\t", row.names = FALSE, quote = FALSE)

以下是详细解释:

  1. rm(list = ls())

    • 这行代码用于清除R环境中的所有变量。ls()函数列出当前环境中的所有变量,而rm()函数则删除这些变量。这通常在开始新的分析前做,以确保工作环境是干净的。
  2. setwd("C:\\Users\\Administrator\\Desktop\\新建文件夹\\PCoA")

    • 这行代码设置了R的工作目录。setwd()函数用于改变当前的工作目录,这里将工作目录设为了一个特定的路径。这意味着R会在这个目录下查找文件,并将所有输出文件保存到这个位置。
  3. library(dplyr)

    • 这行代码加载了dplyr包。dplyr是一个用于数据操作的R包,提供了许多有用的函数来处理数据框(data frames)。
  4. data <- read.table("otu_table.txt", header = TRUE, sep = "\t", quote = "")

    • 这行代码读取名为otu_table.txt的文件,将其作为一个数据框存储在变量data中。
    • header = TRUE表示文件的第一行包含列名。
    • sep = "\t"指定列之间的分隔符是制表符(tab),这是TXT文件中常见的格式。
    • quote = ""告诉函数不要将任何字符视为引号。
  5. 相对丰度的计算:

    • 这部分代码首先使用mutateacross函数来修改数据框中的每一列(除了clade_name列)。
    • ~ round(.x / sum(.x), 10)是一个匿名函数,它将每个值除以其所在列的总和,然后将结果四舍五入到10位小数。这里.x代表当前列的每个值。
    • 这个过程计算了每个物种在每个样本中的相对丰度。
  6. write.table(relative_abundance, "relative_abundance.txt", sep = "\t", row.names = FALSE, quote = FALSE)

    • 这行代码将处理后的数据(相对丰度)写入一个新的TXT文件relative_abundance.txt
    • sep = "\t"指定使用制表符作为列之间的分隔符。
    • row.names = FALSE表示在输出文件中不包含行名。
    • quote = FALSE确保输出的文本不包含引号。

标签:abundance,FALSE,代码,relative,丰度,简单,txt,data
From: https://www.cnblogs.com/wzbzk/p/17927440.html

相关文章

  • 相对丰度与绝对丰度
    绝对丰度和相对丰度是生态学和生物统计学中常用的两个概念,它们用于描述物种在特定环境中的分布和数量。绝对丰度(AbsoluteAbundance):绝对丰度是指在特定区域或样本中某个物种的实际数量。它通常用个体数来衡量,比如在一个湖泊中特定鱼类的个体总数。绝对丰度提供了物种在给定......
  • 源代码下的关系
    get请求获取多个数据defget(self,request):user_gs=models.User.objects.all()user_set=UserSerializer(instance=user_gs,many=True)returnResponse(user_set.data)viewsAPIViewpost请求添加数据get请求获取单个数据defpost(self,request):user_set=UserSerializer(......
  • R语言估计多元标记的潜过程混合效应模型(lcmm)分析心理测试的认知过程|附代码数据
    全文链接:http://tecdat.cn/?p=24172 最近我们被客户要求撰写关于潜过程混合效应模型(lcmm)的研究报告,包括一些图形和统计输出。每个动态现象都可以用一个潜过程(Λ(t))来表征,这个潜过程在连续的时间t中演化。有时,这个潜过程是通过几个标志来衡量的,因此潜过程是它们的共同因素。多......
  • Go常见限流算法代码
    计数器法:https://gitee.com/lymgoforIT/golang-trick/tree/master/08-count-limit-rate令牌桶算法:https://gitee.com/lymgoforIT/golang-trick/tree/master/09-token-bucket-limiter漏桶算法:https://gitee.com/lymgoforIT/golang-trick/tree/master/10-leaky-bucket-limiter计数......
  • 代码随想录算法训练营第二天 | 239. 滑动窗口最大值,347.前 K 个高频元素
    一、239.滑动窗口最大值题目链接:LeetCode239.滑动窗口最大值学习前:思路:无学习后:自定义双端队列,实现push、pop、peek方法,使得队列单调非增。peek方法不变;当入队时,若当前元素比队尾元素大,则pop队尾,直到队列为空或当前元素不大于队尾元素;当出队时,若队列非空且队首元素和窗......
  • STM32使用cubemx生成代码的系统时钟频率配置
    STM32使用cubemx生成代码的系统时钟频率配置当使用cubemx软件自动生成hal库代码时,我们在可视化界面配置的系统时钟频率会通过SystemClock_Config()函数进行配置。如下图所示:下面则是cubemx中可视化界面配置时钟频率的页面。使用了外部高速时钟HSE当做时钟源,随后对外部高速时钟......
  • Java代码解析:初学者的编程入门指南
    ......
  • 算法题:剑指 Offer 07. 重建二叉树(题目+思路+代码+注释)时空时间优先选O(N) O(N) 2ms击
    题目剑指Offer07.重建二叉树输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。示例1:Input:preorder=[3,9,20,15,7],inorder=[9,3,15,20,7]Output:[3,9,20,null,null,15,7]示例2:Input:......
  • 博客园代码添加行号(无需添加样式)
    个人->管理->设置->显示行号  添加代码代码保存后文章保存后......
  • iMessage群发系统常见代码分享!
    随着iMessage的普及,越来越多的开发者开始关注如何利用iMessage进行消息群发,今天,我们就来分享一些常见的iMessage群发系统的代码示例,帮助大家更好地实现这一功能。一、使用Swift语言实现iMessage群发首先,我们需要了解的是,iMessage群发系统通常需要使用到Apple提供的iMessage框架......