linux shell中实现对fastq read重命名

 

001、命令程序:

## step1:  处理 read1
awk 'END{tmp = NR / 4; split(FILENAME, a, "_"); for (i = 1; i <= tmp; i++) {print "@"a[1]"."i,i"/1"}}' name_1.clean.fastq > name_1.list     ## 生成read名
awk '{if(NR == FNR) {ay[NR] = $0} else if(FNR % 4 == 1){idx++; $0 = ay[idx]; print $0}else if(FNR % 4 == 3) {print "+"} else {print $0}}' name_1.list name_1.clean.fastq > namemodify_1.clean.fastq
                                                                                                                                            ## 替换成新的read名
## step2:处理read2, 方法同上
sed 's/1$/2/' name_1.list > name_2.list
awk '{if(NR == FNR) {ay[NR] = $0} else if(FNR % 4 == 1){idx++; $0 = ay[idx]; print $0}else if(FNR % 4 == 3){print "+"} else {print $0}}' name_2.list name_2.clean.fastq > namemodify_2.clean.fastq

## step3:
rm -f name_1.list name_2.list          ## 删除临时文件

 

。 

 

posted @ 2024-02-08 20:25  小鲨鱼2018  阅读(31)  评论(0编辑  收藏  举报