python中SeqIO模块处理fasta文件
001、分别输出染色体ID、序列和序列的长度
[root@PC1 test02]# ls a.fa test.py [root@PC1 test02]# cat a.fa ## 测试数据 >seq1 AGAAGGGG >seq2 AAACCTTTT >seq3 AAATTTCCGG [root@PC1 test02]# cat test.py ## 程序 #!/usr/bin/env python # -*- coding: utf-8 -*- from Bio import SeqIO for i in SeqIO.parse("a.fa", "fasta"): print(i.id) print(i.seq) print(len(i))
002、测试程序效果
[root@PC1 test02]# ls a.fa test.py [root@PC1 test02]# cat a.fa ## 测试程序 >seq1 AGAAGGGG >seq2 AAACCTTTT >seq3 AAATTTCCGG [root@PC1 test02]# python3 test.py ## 执行程序, 分别输出染色体ID、序列和序列的长度 seq1 AGAAGGGG 8 seq2 AAACCTTTT 9 seq3 AAATTTCCGG 10
。
003、获取序列的总条数
[root@PC1 test02]# ls a.fa test.py [root@PC1 test02]# cat a.fa ## 测试文件 >seq1 AGAAGGGG >seq2 AAACCTTTT >seq3 AAATTTCCGG [root@PC1 test02]# cat test.py ## 程序 #!/usr/bin/env python # -*- coding: utf-8 -*- from Bio import SeqIO print(len(list(SeqIO.parse("a.fa", "fasta")))) [root@PC1 test02]# python3 test.py ## 执行程序 3
004、输出任意序列
[root@PC1 test02]# ls a.fa test.py [root@PC1 test02]# cat a.fa ## 测试数据 >seq1 AGAAGGGG >seq2 AAACCTTTT >seq3 AAATTTCCGG [root@PC1 test02]# cat test.py ## 程序 #!/usr/bin/env python # -*- coding: utf-8 -*- from Bio import SeqIO tmp = list(SeqIO.parse("a.fa", "fasta")) ## 转换为列表 second = tmp[1] print(second.id) print(second.seq) print(len(second)) [root@PC1 test02]# python3 test.py ## 执行程序 seq2 AAACCTTTT 9
005、修改染色体的ID
[root@PC1 test02]# ls a.fa test.py [root@PC1 test02]# cat a.fa ## 测试文件 >seq1 AGAAGGGG >seq2 AAACCTTTT >seq3 AAATTTCCGG [root@PC1 test02]# cat test.py ## 测试程序 #!/usr/bin/env python # -*- coding: utf-8 -*- from Bio import SeqIO tmp = list(SeqIO.parse("a.fa", "fasta")) second = tmp[1] tmp[1].id = "test_xx" print(tmp[1].id) [root@PC1 test02]# python3 test.py ## 执行程序 test_xx
reference:
https://mp.weixin.qq.com/s?__biz=MzAxNzQxMDAxMw==&mid=2247484106&idx=1&sn=ac99db694ed5ccf89f1be80dac62c562&chksm=9be4b078ac93396e8e55adf24f5de84062f393724f8f71dc8e0cb6e9b923e0f14640ef9b5da8&mpshare=1&scene=23&srcid=0817DYbu6vax0GezweKvNZuH&sharer_sharetime=1692203715389&sharer_shareid=50b75c6a886e09824b582fb782a7678b#rd