我從 Illumina Sequencing 收到了 100 個樣本的多個 fastq.gz 檔案。但根據樣本 ID,各個樣本的所有 fastq.gz 檔案都位于單獨的檔案夾中。此外,我有多個(8-16)R1.fastq.gz和R2.fastq.gz一個樣本的檔案。因此,我使用以下代碼將所有R1.fastq.gzand連接R2.fastq.gz成一個R1.fastq.gzand R2.fastq.gz。
cat V350043117_L04_some_digits-525_1.fq.gz V350043117_L04_some_digits-525_1.fq.gz V350043117_L04_some_digits-525_1.fq.gz > sample_R1.fq.gz
所以在排序檔案中,結構就像上面代碼中的一樣。對于每個樣本,字串 withV具有不同的數字,然后L具有不同的數字,然后是_1and之前的另一個數字字串_2。對于每個樣本,數字都在不斷變化。我的問題是,如何創建一個回圈,一次遍歷所有檔案夾,考慮序列檔案的不同檔案編號以連接多個fq.gz檔案并將它們組合成一個 R1 和 R2 檔案?當然,我不能通過進入每個示例檔案夾來逐個連接。
請提供一些有用的提示。謝謝你。
檔案夾結構如下:
/data/Sample_1/....._525_1_fq.gz /....._525_2_fq.gz /....._526_1_fq.gz /....._526_2_fq.gz
/data/Sample_2/....._580_1_fq.gz /....._580_2_fq.gz /....._589_1_fq.gz /....._589_2_fq.gz
/data/Sample_3/....._690_1_fq.gz /....._690_2_fq.gz /....._645_1_fq.gz /....._645_2_fq.gz
下面我附上了檔案夾結構的截圖。
檔案夾結構
uj5u.com熱心網友回復:
根據提供的檔案結構,請您嘗試:
#!/bin/bash
for d in Raw2/C*/; do
(
cd "$d"
id=${d%/}; id=${id##*/} # extract ID from the directory name
cat V*_1.fq.gz > "${id}_R1.fq.gz"
cat V*_2.fq.gz > "${id}_R2.fq.gz"
)
done
- 語法
for d in Raw2/C*/回圈遍歷以 . 開頭的子目錄C。 - 括號使內部命令在子shell中執行,因此我們不必關心回傳
cd "$d"(以少量額外執行時間為代價)。 - 該變數
id分配給從目錄名稱中提取的 ID。 cat V*_1.fq.gz例如,將V350028825_L04_581_1.fq.gz V350028825_L04_582_1.fq.gzV350028825_L04_583_1.fq.gz根據目錄中的檔案擴展為 ... 并連接到${id}_R1.fastq.gz. 對${id}_R2.fastq.gz.
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/433086.html
