根据fastp结果json批量提取质控后的claean reads/Q30/GC content

fastp质控结果文件如下
在这里插入图片描述
查看内容格式,目标是提取过滤后reads相关信息
在这里插入图片描述
处理过程

ls ./*json | while read i
        do
        sed -n '/"after_filtering": {/,/}/p' $i | sed 's/\t//g' | sed 's/"//g' | grep -E '^total_reads:|^q30_rate:|^gc_content' | cut -f 2 -d ":" | sed 's/,//g' | tr '\n' '\t'| sed '1s/$/\n/' > $(basename $i "json")txt
done

for file in *txt; do awk -v fname="$file" '{print $0, fname}' "$file" > "$file.tmp" && mv "$file.tmp" "$file"; done

ls ./*txt | while read i
        do
        sed -i 's/.txt//g' $i
        awk '{print $4,$1,$2,$3}' $i > temp_file.txt && mv temp_file.txt $i
        sed -i 's/ /\t/g'  $i

done
cat *txt > merge_reads

代码解读

ls ./*json | while read i: 这一行列出当前目录下所有以 .json 结尾的文件,并逐行读取它们。

sed -n '/"after_filtering": {/,/}/p' $i: 提取 JSON 文件中 after_filtering 字段的内容,并打印出来。

sed 's/\t//g' | sed 's/"//g': 去除制表符和双引号。

grep -E '^total_reads:|^q30_rate:|^gc_content': 筛选出包含 total_reads, q30_rate, 和 gc_content 的行。

cut -f 2 -d ":": 按照冒号分割并提取第二个字段。

sed 's/,//g': 去除逗号。

tr '\n' '\t': 将换行符替换为制表符。

sed '1s/$/\n/' > $(basename $i "json")txt: 在第一行末尾添加换行符,并将结果输出到以 .txt 结尾的文件中,文件名与对应的 JSON 文件相同。

for file in *txt; do awk -v fname="$file" '{print $0, fname}' "$file" > "$file.tmp" && mv "$file.tmp" "$file"; done: 遍历所有以 .txt 结尾的文件,并使用 awk 在每行末尾添加文件名。

ls ./*txt | while read i: 这一行列出当前目录下所有以 .txt 结尾的文件,并逐行读取它们。

sed -i 's/.txt//g' $i: 去除文件名中的 .txt 后缀。

awk '{print $4,$1,$2,$3}' $i > temp_file.txt && mv temp_file.txt $i: 重新排列每行的顺序,并将结果保存到临时文件中,然后再将临时文件重命名为原文件。

sed -i 's/ /\t/g' $i: 将空格替换为制表符。

cat *txt > merge_reads: 最后这一行将所有处理后的文本文件合并成一个名为 merge_reads 的文件。

结果展示

#第一列文件对应的文件名,第二列clean reads,第三列Q30,第四列GC content
$head merge_reads
SRR10518003     48795724        1       0.438863
SRR10518004     52575992        0.92425 0.463813
SRR10518005     45639076        1       0.435784
SRR10518006     46367784        1       0.442649
SRR10518007     53639998        1       0.437025
SRR10518016     53665346        1       0.441168
SRR10518027     48863392        1       0.43905
SRR10518038     48457916        1       0.448112
SRR10518043     40582672        1       0.439502
SRR10518044     37617796        0.889301        0.460502

根据以上代码也可以灵活提取该文件的其余目标内容

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值