我在处理数据的时候
发现sam文件和blasttab+文件排序不同
sam文件是按照reference里面的名字排序的,而blasttab+是从高到低排序的
因为我发现在过滤转化的时候会有一丢丢问题
先排序一下
Args <- commandArgs()
# 加载包
suppressMessages(library(data.table))
suppressMessages(library(tidyverse))
# 设置文件位置
blast_input_info <- Args[6]
sam_input_info <- Args[7]
#导入输入文件
blast_input <- fread(blast_input_info, header = FALSE, sep = "\t", stringsAsFactors = FALSE , check.names=FALSE)
sam_input <- fread(sam_input_info, header = FALSE, sep = "\t", stringsAsFactors = FALSE , check.names=FALSE)
#两者先排序
blast_input_sort <- blast_input[order(blast_input$V1,blast_input$V2),]
sam_input_sort <- sam_input[order(sam_input$V1,sam_input$V2),]
通过行来进行抽取
blast_input_sort$line_numbers <- c(1:nrow(blast_input_sort)) #增加一列,标记行号
blast_input_sort_filtered <- blast_input_sort %>%
dplyr::filter(V3>=85 & V4>=400) %>%
group_by(V1) %>%
dplyr::filter(V3 == max(V3))
sam_input_sort_filtered <- sam_input_sort[blast_input_sort_filtered$line_numbers,] #提取sam文件对应的行
好像就解决了,两个文件过滤掉一样的数据