我有一组vcf文件,每个文件都有一个字符串,以‘SRR’.例如,在file1中我有以下行:
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT SRR2481146_1在file2中,我有:
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT SRR2481151_1在档案3中,我有:
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT SRR2481163_1我希望将这些字符串替换为特定的细胞系名称,例如,将file1中的‘file1’替换为‘with 116_DMSO’,将file2中的'SRR2481151_1‘替换为'SW_DMSO',将file3中的'SRR2481163_1’替换为‘COLO205’等等。
例如,对于file1,所需的输出应该是:
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT HCT116_DMSO对于file2:
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT SW_DMSO我知道我可以单独使用如下代码来完成这一任务:
sed -i 's/SRR2481146_1/HCT116_DMSO/g' file1
sed -i 's/SRR2481151_1/SW_DMSO/g' file2但是由于我有100个文件,这样做太费时了。
有什么好办法吗?
谢谢!
发布于 2019-02-19 19:19:09
正如@Kusalananda所写的,最好在https://bioinformatics.stackexchange.com/上问这个问题。也许有人能把这个问题搬到那里去?
创建一个文本文件,在该文本文件中,您可以在每一行中写入由空格分隔的旧名称和所需的新名称。
$ cat names.txt
SRR2481146_1 HCT116_DMSO
SRR2481151_1 SW_DMSO使用bcftools重标头更改示例名称如下:
$ bcftools reheader -s names.txt file.vcf > file_renamed.vcf可以使用gnu并行对文件夹中的所有vcf文件运行此命令:
$ parallel 'bcftools reheader -s names.txt {} > {.}_renamed.vcf' ::: *.vcfhttps://unix.stackexchange.com/questions/501658
复制相似问题