是否可以从目录中的所有文件中选择具有相同基本名称(uniq)的文件。我已经能够从目录中获得所有文件的列表。
fastq.files <- list.files(path = rawdatapath, pattern = c("(.fastq.gz|.fq.gz|.fastq|.fq)$"), full.names = TRUE)
fastq.files
目录中的文件如下所示:
t1_R1.fq
t1_R2.fq
t2_R1.fq
t2_R1.fq
这里的uniq基本名称是t1和t2
下面给出的是bash等效项。
#Shell Script:
#!bin/bash
for i in $(ls *.fastq | rev | cut -c 14- | rev | uniq)
do
bowtie2 --very-sensitive -p16 --rg-id ${i} -x cprefseqs -1 ${i}_R1_001.fastq -2 ${i}_R2_001.fastq -S $i.sam
done
发布于 2018-06-07 03:04:11
如果您所有文件都具有相同的格式,则可以使用lapply
和strsplit
来获取所有唯一的基本名称
x <- file.names()
[1] "t1_R1.fq" "t1_R2.fq" "t2_R1.fq" "t2_R1.fq"
#splits each string into a list using "_" as a delimiter and returns the first element
f <- lapply(strsplit(x, "_"), "[", 1)
f <- unique(unlist(f))
[1] "t1" "t2"
res <- lapply(f, function(x) list.files(pattern=x))
https://stackoverflow.com/questions/50724158
复制相似问题