【问题标题】:grep not giving specific results in Rgrep 在 R 中没有给出具体结果
【发布时间】:2022-11-30 22:22:49
【问题描述】:

我想过滤路径列表中仅匹配某些值(“chr1”“chr11”“chr16”“chr17”“chr2”“chr5”“chr6”“chr7”)的路径。但是我的结果包括额外的字符#

这是我要过滤的项目

> sort(chrm_to_filter$chr)
 "chr1"  "chr11" "chr16" "chr17" "chr2"  "chr5"  "chr6"  "chr7" 

我的数据看起来像这样

print(path_per_chr_tabix)
"/path_to_file/merged_modified_per_base_calling.chr1.bgz" 
"/path_to_file/merged_modified_per_base_calling.chr10.bgz"
"/path_to_file/merged_modified_per_base_calling.chr11.bgz"
"/path_to_file/merged_modified_per_base_calling.chr12.bgz"
"/path_to_file/merged_modified_per_base_calling.chr13.bgz"
"/path_to_file/merged_modified_per_base_calling.chr14.bgz"
"/path_to_file/merged_modified_per_base_calling.chr15.bgz"
"/path_to_file/merged_modified_per_base_calling.chr16.bgz"
"/path_to_file/merged_modified_per_base_calling.chr17.bgz"
"/path_to_file/merged_modified_per_base_calling.chr18.bgz"
"/path_to_file/merged_modified_per_base_calling.chr19.bgz"
"/path_to_file/merged_modified_per_base_calling.chr2.bgz" 
"/path_to_file/merged_modified_per_base_calling.chr3.bgz" 
"/path_to_file/merged_modified_per_base_calling.chr4.bgz" 
"/path_to_file/merged_modified_per_base_calling.chr5.bgz" 
"/path_to_file/merged_modified_per_base_calling.chr6.bgz" 
"/path_to_file/merged_modified_per_base_calling.chr7.bgz" 
"/path_to_file/merged_modified_per_base_calling.chr8.bgz" 
"/path_to_file/merged_modified_per_base_calling.chr9.bgz" 
"/path_to_file/merged_modified_per_base_calling.chrm.bgz" 
"/path_to_file/merged_modified_per_base_calling.chrX.bgz" 
"/path_to_file/merged_modified_per_base_calling.chrY.bgz" 

#查找加载哪些数据以节省内存

subset_tabix_paths_to_load <- path_per_chr_tabix[
    grep(
        paste0(sort(chrm_to_filter$chr), collapse="|"), 
        path_per_chr_tabix)
    ]
message("these are the files we will be workign with for now- ")
print(subset_tabix_paths_to_load)

"/paths/merged_modified_per_base_calling.chr1.bgz" 
"/paths/merged_modified_per_base_calling.chr10.bgz"
"/paths/merged_modified_per_base_calling.chr11.bgz"
"/paths/merged_modified_per_base_calling.chr12.bgz"
"/paths/merged_modified_per_base_calling.chr13.bgz"
"/paths/merged_modified_per_base_calling.chr14.bgz"
"/paths/merged_modified_per_base_calling.chr15.bgz"
"/paths/merged_modified_per_base_calling.chr16.bgz"
"/paths/merged_modified_per_base_calling.chr17.bgz"
"/paths/merged_modified_per_base_calling.chr18.bgz"
"/paths/merged_modified_per_base_calling.chr19.bgz"
"/paths/merged_modified_per_base_calling.chr2.bgz" 
"/paths/merged_modified_per_base_calling.chr5.bgz" 
"/paths/merged_modified_per_base_calling.chr6.bgz" 
"/paths/merged_modified_per_base_calling.chr7.bgz" 

【问题讨论】:

    标签: r grepl


    【解决方案1】:

    问题是您的搜索字符串之一是“chr1”,它可以在“chr1”、“chr10”、“chr11”等中找到。如果您将搜索字符串更改为“chr1.bgz”等,它应该可以工作。

    【讨论】:

      【解决方案2】:

      这是使用sub + which 的方法

      > filter_chr <- c("chr1",  "chr11", "chr16", "chr17", "chr2",  "chr5",  "chr6",  "chr7") 
      > string[which(sub(".*\.(chr\d+)\..*$", "\1", string) %in% filter_chr)]
      [1] "/path_to_file/merged_modified_per_base_calling.chr1.bgz" 
      [2] "/path_to_file/merged_modified_per_base_calling.chr11.bgz"
      [3] "/path_to_file/merged_modified_per_base_calling.chr16.bgz"
      [4] "/path_to_file/merged_modified_per_base_calling.chr17.bgz"
      [5] "/path_to_file/merged_modified_per_base_calling.chr2.bgz" 
      [6] "/path_to_file/merged_modified_per_base_calling.chr5.bgz" 
      [7] "/path_to_file/merged_modified_per_base_calling.chr6.bgz" 
      [8] "/path_to_file/merged_modified_per_base_calling.chr7.bgz" 
      

      string 具有以下结构:

      c("/path_to_file/merged_modified_per_base_calling.chr1.bgz", 
      "/path_to_file/merged_modified_per_base_calling.chr10.bgz", "/path_to_file/merged_modified_per_base_calling.chr11.bgz", 
      "/path_to_file/merged_modified_per_base_calling.chr12.bgz", "/path_to_file/merged_modified_per_base_calling.chr13.bgz", 
      "/path_to_file/merged_modified_per_base_calling.chr14.bgz", "/path_to_file/merged_modified_per_base_calling.chr15.bgz", 
      "/path_to_file/merged_modified_per_base_calling.chr16.bgz", "/path_to_file/merged_modified_per_base_calling.chr17.bgz", 
      "/path_to_file/merged_modified_per_base_calling.chr18.bgz", "/path_to_file/merged_modified_per_base_calling.chr19.bgz", 
      "/path_to_file/merged_modified_per_base_calling.chr2.bgz", "/path_to_file/merged_modified_per_base_calling.chr3.bgz", 
      "/path_to_file/merged_modified_per_base_calling.chr4.bgz", "/path_to_file/merged_modified_per_base_calling.chr5.bgz", 
      "/path_to_file/merged_modified_per_base_calling.chr6.bgz", "/path_to_file/merged_modified_per_base_calling.chr7.bgz", 
      "/path_to_file/merged_modified_per_base_calling.chr8.bgz", "/path_to_file/merged_modified_per_base_calling.chr9.bgz", 
      "/path_to_file/merged_modified_per_base_calling.chrm.bgz", "/path_to_file/merged_modified_per_base_calling.chrX.bgz", 
      "/path_to_file/merged_modified_per_base_calling.chrY.bgz")
      

      【讨论】:

        猜你喜欢
        • 2020-07-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-30
        • 2014-03-12
        • 1970-01-01
        相关资源
        最近更新 更多