将两个不同文件夹中具有相同条形码的fastq文件合并到另一个文件夹

问题描述 投票:0回答:1

我在一个纳米孔平台上运行了两次相同的样品。现在我想合并每次运行生成的 96 个条形码文件。

所以我在文件夹中的文件是从barcode01到barcode96

RUN1                       RUN2
barcode01_filt.fastq.gz             barcode01_filt.fastq.gz 

现在我想将每个文件合并到另一个文件夹中。我正在寻找的输出是将

RUN1
RUN2
的条形码合并到另一个具有相同名称的文件夹
RUN3
barcode01_filt.fastq.gz

任何建议或帮助将不胜感激。

更新

所以我把问题分解成小块。 首先,我将两个运行放入一个文件夹中。

现在我正在寻找两个文件夹中的文件

find Cov1_run/ -name "*filt.fastq.gz" 

下一步是如果两个文件夹中的名称匹配,则将它们合并。

上述 find 命令的输出

Cov1_run/RUN2/barcode05_filt.fastq.gz
Cov1_run/RUN2/barcode68_filt.fastq.gz
Cov1_run/RUN2/barcode34_filt.fastq.gz
Cov1_run/RUN2/barcode82_filt.fastq.gz
Cov1_run/RUN2/barcode61_filt.fastq.gz
Cov1_run/RUN2/barcode69_filt.fastq.gz
Cov1_run/RUN2/barcode18_filt.fastq.gz

Cov1_run/RUN1/barcode05_filt.fastq.gz
    Cov1_run/RUN/barcode68_filt.fastq.gz
    Cov1_run/RUN1/barcode34_filt.fastq.gz
    Cov1_run/RUN1/barcode82_filt.fastq.gz
    Cov1_run/RUN1/barcode61_filt.fastq.gz
    Cov1_run/RUN1/barcode69_filt.fastq.gz
    Cov1_run/RUN1/barcode18_filt.fastq.gz

所以现在我必须匹配,如果两个名称相同,然后将它们合并为相同的名称,但在不同的文件夹中

RUN1 barcode05_filt.fastq.gz and RUN2 barcode05_filt.fastq.gz
bash shell bioinformatics
1个回答
1
投票

未经测试和概念性,因为太大而无法评论:

cd RUN1

for fa in *.fastq.gz ; do
    # Deduce name of friend 
    fb="../RUN2/$fa"
    if [ -f "$fb" ] ; then
       cat "$fa" "$fb" > "../RUN3/$fa"
    fi
done
    
© www.soinside.com 2019 - 2024. All rights reserved.