linux 中shell脚本实现统计每一个read的长度

 

001、

[root@PC1 test02]# ls
test.fastq
[root@PC1 test02]# cat test.fastq      ## 测试fastq数据
@SRR8442980.988/2
AAGG
+
:FFF
@SRR8442980.988/2
AAGGTC
+
:FFF:,
@SRR8442980.1134/1
AAAAAAAATATAATTCCA
+
FFFFFFFFFFFFFFFFFF
[root@PC1 test02]# awk '{if((NR % 4 - 2) == 0) print $0, length}' test.fastq  ## 统计每一个read的长度
AAGG 4
AAGGTC 6
AAAAAAAATATAATTCCA 18

。 

 

002、借助与Bio 中的 SeqIO模块统计

[root@PC1 test02]# ls
a.fastq  test.py
[root@PC1 test02]# cat a.fastq         ## 测试fastq文件
@SRR8442980.988/2
AAGG
+
:FFF
@SRR8442980.988/2
AAGGTC
+
:FFF:,
@SRR8442980.1134/1
AAAAAAAATATAATTCCA
+
FFFFFFFFFFFFFFFFFF
[root@PC1 test02]# cat test.py     ## 统计程序
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from Bio import SeqIO
temp = SeqIO.parse("a.fastq", "fastq")
for i in temp:
        print(len(i))

 

执行程序:

[root@PC1 test02]# ls
a.fastq  test.py
[root@PC1 test02]# cat a.fastq
@SRR8442980.988/2
AAGG
+
:FFF
@SRR8442980.988/2
AAGGTC
+
:FFF:,
@SRR8442980.1134/1
AAAAAAAATATAATTCCA
+
FFFFFFFFFFFFFFFFFF
[root@PC1 test02]# python3 test.py
4
6
18

 

posted @ 2023-06-23 23:05  小鲨鱼2018  阅读(53)  评论(0编辑  收藏  举报