重命名和编辑ChiP-seq床文件



我有大约80个前3列的床文件(例如:X2_example.bed,其中X2是基因名),我想添加第4列的基因名并重命名文件(附例:X2_eexample_edited.bed、Y2_example_edited.ded等..),然后将这些文件合并在一起创建1个床文件。

我可以添加带有基因名称的第4列,并用代码用不同的名称保存文件

sed 's/$/tX2/' < X2_example.bed  > X2_example_edited.bed

这是生成的床文件

chr17   42276210    42276219    X2
chr17   42297938    42297947    X2
chr17   42276210    42276219    X2
chr17   42297938    42297947    X2

但我必须为每个床档案单独做这件事。这是一种我可以从文件名中提取基因名的方法(例如,X2_example.dbed中的X2),然后将其添加到bed文件的第4列,并将其保存为X2_example_edited.dbed。

我可以从文件名中提取基因名echo "X2_example.bed" | awk -F'[_.]' '{print $1}

然而,由于我有太多的文件,我正在寻找一种方法来生成一个循环来自动化这一过程。

此外,我需要合并所有生成的床文件,我可以通过完成

cat *_edited.bed >output.bed

然而,我遇到了一个错误(见附件示例:output.bed),第一个文件的最后一行和下一个文件的第一行在同一行。

chr3    18467066    18467075    Y2
chr17   42276210    42276219    X2

我知道这一定是一件非常基本的事情,但我对这一分析很陌生,而且知识有限。提前感谢

您可以尝试使用awk

for file in *.bed; do 
awk '{split(FILENAME,a,"_"); print $0, a[1]}' "$file" 
done > output.bed.all

最新更新