我有 96 個 bam 檔案,如何輸出帶有唯一樣本 ID 的 txt 檔案?我正在遍歷 bam 檔案,但需要分配唯一的輸出檔案。例如:SC845414.txt
#Typical Bam Files:
SC845414-CTGATCGT-GCGCATAT_Aligned.sortedByCoord.out.bam
SC845425-TGTGACTG-AGCCTATC_Aligned.sortedByCoord.out.bam
#!/bin/bash
#SBATCH --mem=110g
#SBATCH --cpus-per-task=12
#SBATCH --time=10-00:00:00
module load python
DIR=/PATH/*
for d in $DIR; do
python -m HTSeq.scripts.count -s yes -f bam "$d" /PATH1/gencode.v35.annotation.gtf > /PATH3/HTseq/SC845414.txt
done
uj5u.com熱心網友回復:
這在很大程度上取決于“樣本 ID”的確切含義。
根據您的示例,如果您的意思是“第一個破折號之前的檔案名部分”,那么您可以這樣做:
for d in $DIR; do
id=$(basename "$d" | cut -f 1 -d -)
python -m HTSeq.scripts.count -s yes -f bam "$d" /PATH1/gencode.v35.annotation.gtf > "/PATH3/HTseq/$id.txt"
done
uj5u.com熱心網友回復:
相同的; 但使用內置變數插值而不是呼叫 basename 和 cut
for d in $DIR; do
fname=${d##*/}
python -m HTSeq.scripts.count -s yes -f bam "$d" /PATH1/gencode.v35.annotation.gtf > "/PATH3/HTseq/${fname%%-*}.txt"
done
(也進行了編輯以去除任何主要路徑)
不幸的是,一次剝離變數的前導和尾隨部分超出了我的范圍(目前)。
似乎應該可以看到: https ://www.thegeekstuff.com/2010/07/bash-string-manipulation/
(沒有隸屬關系或背書;只是第一次相關的網路搜索)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/536831.html
標籤:Linux狂欢循环
