我正在尝试使用samtools
两个文件 File1 和 File2 来制作堆积文件。
我已按染色体将 File1 和 File2 分开,导致有 44 个文件以下列格式命名:
chr${c}.${TISSUE}_run1_en2hic_PE1.bam.sorted.bam.breaks_COL1_and_COL2_ONLY
其中 ${c} 是 1 到 22 之间的一个数字,$TISSUE 是结肠或肌肉——22 条染色体代表结肠,22 条染色体代表肌肉。IE; chr1.colon_run1_en2hic_PE1.bam.sorted.bam.breaks_COL1_and_COL2_ONLY chr2.colon_run1_en2hic_PE1.bam.sorted.bam.breaks_COL1_and_COL2_ONLY
.
.
.
chr22.colon_run1_en2hic_PE1.bam.sorted.bam.breaks_COL1_and_COL2_ONLY
chr1.muscle_run1_en2hic_PE1.bam.sorted.bam.breaks_COL1_and_COL2_ONLY
.
.
.
这些文件由两列组成,第一列只显示染色体编号,第二列是该染色体上的位置。IE;
head chr2.colon_run1_en2hic_PE1.bam.sorted.bam.breaks_COL1_and_COL2_ONLY
chr2 103977
chr2 112051
chr2 126199
chr2 146288
chr2 147797
chr2 147822
chr2 148548
chr2 148525
chr2 158189
chr2 158188
对于文件中的每一行(例如"chr2.colon_run1_en2hic_PE1.bam.sorted.bam.breaks_COL1_and_COL2_ONLY"
),我需要从第 2 列中获取位置,将其称为“x”,并使用它来获取a-b
、 wherea=x-5
和的范围b=x+5
。然后,我会将这些值插入以下脚本:
samtools mpileup -f [REFERENCE GENOME] File1 File2 -r chr${c}:a-b
例如,假设我正在查看 2 号染色体,位置 103977(上面的第 1 行)。那么我的脚本将是
samtools mpileup -f [REFERENCE GENOME] File1 File2 -r chr2:103972-103982
所以基本上,它是一个循环中的一个循环。就像是,
for t in $(colon, muscle)
do
for c in $seq (1 22)
do
for item (or maybe row?) in
chr${c}.${t}_run1_en2hic_PE1.bam.sorted.bam.breaks_COL1_and_COL2_ONLY
do
awk '{print $2}' | something something something
x= position in col 2, a=x-5 b=x+5
samtools mpileup -f [REFERENCE GENOME] File1 File2 -r chr${c}:a-b
done
done
done
...
提前致谢。我是使用 Linux 的新手,而且我基本上没有受过计算机科学培训。