使用 R 在文件夹的所有文件中应用特定功能
Apply a particular function in all files of a folder using R
我开发了一个名为 DNAdupstability
的特定 R
函数用于一些生物学分析,它需要使用作为 fasta 文件 (.fasta/.txt) 的输入,其中 returns 一个数据框格式:
Sequence Position8 Position9 Position10 Position11 Position12 Position13
1 1 -1.473571 -1.473571 -1.462143 -1.412143 -1.412143 -1.371429
Position14 Position15 Position16 Position17 Position18 Position19 Position20
1 -1.372143 -1.4 -1.428571 -1.439286 -1.430714 -1.420714 -1.397143
这是一个随机数据帧,它根据输入序列继续到 n 个位置。我有一个名为 Random_fasta 的文件夹,它有 1333 个等长但不同的 fasta 序列。开发的函数 DNAdupstability
为文件夹 Random_fasta 中的单个 fasta 序列(上述数据框)提供了所需的结果,但现在我想使用相同的 [= 对所有其他 1332 个序列进行分析=13=] 函数和一个形成类似于所有序列格式的组合数据框
Sequence Position8 Position9 Position10 Position11 Position12 Position13
1 1 -1.434286 -1.434286 -1.446429 -1.435714 -1.445714 -1.509286
2 2 -1.522143 -1.492143 -1.463571 -1.435714 -1.492857 -1.544286
3 3 -1.232857 -1.265000 -1.333571 -1.328571 -1.330000 -1.329286
4 4 -1.799286 -1.799286 -1.799286 -1.799286 -1.730714 -1.735714
5 5 -1.547143 -1.507143 -1.535714 -1.530714 -1.478571 -1.450714
Position14 Position15 Position16 Position17 Position18 Position19 Position20
1 -1.452143 -1.402143 -1.390000 -1.457143 -1.509286 -1.498571 -1.458571
2 -1.544286 -1.544286 -1.544286 -1.544286 -1.601429 -1.715000 -1.755000
3 -1.340000 -1.328571 -1.333571 -1.344286 -1.384286 -1.446429 -1.486429
4 -1.667143 -1.605000 -1.536429 -1.486429 -1.536429 -1.605000 -1.600000
5 -1.450714 -1.450714 -1.412143 -1.372143 -1.434286 -1.531429 -1.615000
这样我就可以计算位置均值,然后使用 ggplot2
将其进一步用于某些可视化。有什么方法可以在文件夹的所有文件中应用相同的功能,特别是使用 R
并获得所需的组合数据框?任何帮助将不胜感激!
一个选项是使用 list.files
递归 return 主文件夹中的所有文件,然后通过遍历文件应用自定义函数,并转换为单个 data.frame do.call(rbind
files <- list.files('path/to/your/folder', recursive = TRUE,
pattern = "\.txt$", full.names = TRUE)
lst1 <- lapply(files, DNAdupstability)
out <- do.call(rbind, lst1)
或者我们可以使用 purrr
的 map
和 _dfr
将 list
的所有输出合并为一个 data.frame
library(purrr)
out <- map_dfr(files, DNAdupstability)
我开发了一个名为 DNAdupstability
的特定 R
函数用于一些生物学分析,它需要使用作为 fasta 文件 (.fasta/.txt) 的输入,其中 returns 一个数据框格式:
Sequence Position8 Position9 Position10 Position11 Position12 Position13
1 1 -1.473571 -1.473571 -1.462143 -1.412143 -1.412143 -1.371429
Position14 Position15 Position16 Position17 Position18 Position19 Position20
1 -1.372143 -1.4 -1.428571 -1.439286 -1.430714 -1.420714 -1.397143
这是一个随机数据帧,它根据输入序列继续到 n 个位置。我有一个名为 Random_fasta 的文件夹,它有 1333 个等长但不同的 fasta 序列。开发的函数 DNAdupstability
为文件夹 Random_fasta 中的单个 fasta 序列(上述数据框)提供了所需的结果,但现在我想使用相同的 [= 对所有其他 1332 个序列进行分析=13=] 函数和一个形成类似于所有序列格式的组合数据框
Sequence Position8 Position9 Position10 Position11 Position12 Position13
1 1 -1.434286 -1.434286 -1.446429 -1.435714 -1.445714 -1.509286
2 2 -1.522143 -1.492143 -1.463571 -1.435714 -1.492857 -1.544286
3 3 -1.232857 -1.265000 -1.333571 -1.328571 -1.330000 -1.329286
4 4 -1.799286 -1.799286 -1.799286 -1.799286 -1.730714 -1.735714
5 5 -1.547143 -1.507143 -1.535714 -1.530714 -1.478571 -1.450714
Position14 Position15 Position16 Position17 Position18 Position19 Position20
1 -1.452143 -1.402143 -1.390000 -1.457143 -1.509286 -1.498571 -1.458571
2 -1.544286 -1.544286 -1.544286 -1.544286 -1.601429 -1.715000 -1.755000
3 -1.340000 -1.328571 -1.333571 -1.344286 -1.384286 -1.446429 -1.486429
4 -1.667143 -1.605000 -1.536429 -1.486429 -1.536429 -1.605000 -1.600000
5 -1.450714 -1.450714 -1.412143 -1.372143 -1.434286 -1.531429 -1.615000
这样我就可以计算位置均值,然后使用 ggplot2
将其进一步用于某些可视化。有什么方法可以在文件夹的所有文件中应用相同的功能,特别是使用 R
并获得所需的组合数据框?任何帮助将不胜感激!
一个选项是使用 list.files
递归 return 主文件夹中的所有文件,然后通过遍历文件应用自定义函数,并转换为单个 data.frame do.call(rbind
files <- list.files('path/to/your/folder', recursive = TRUE,
pattern = "\.txt$", full.names = TRUE)
lst1 <- lapply(files, DNAdupstability)
out <- do.call(rbind, lst1)
或者我们可以使用 purrr
的 map
和 _dfr
将 list
的所有输出合并为一个 data.frame
library(purrr)
out <- map_dfr(files, DNAdupstability)