fasta文件中序列的排序

Posted Bio-Liu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了fasta文件中序列的排序相关的知识,希望对你有一定的参考价值。

同样的名为read_1.fa 的fasta文件,里面有若干序列,如:

>@r1
TGAATGCGAACTCCGGGACGCTCAGTAATGTGACGATAGCTGAAAACTGTACGATAAACNGTACGCTGAGGGCAGAAAAAATCGTCGGGGACATTNTAAAGGCGGCGAGCGCGGCTTTTCCG
>@r2
NTTNTGATGCGGGCTTGTGGAGTTCAGCCGATCTGACTTATGTCATTACCTATGAAATGTGAGGACGCTATGCCTGTACCAAATCCTACAATGCCGGTGAAAGGTGCCGGGATCACCCTGTGGGTTTAT
>@r3
ATCGCCCGCAGACACCTTCACGCTGGACTGTTTCGGCTTTTACAGCGTCGCTTCATAATCCTTTTTCGCCGCCGCCATCAGCGTGTTGTAATCCGCCTGCAGGATTTTCCCGTCTTTCNGTGCCTTGNT
..........等等

 

直接看代码:

 1 #encoding = utf-8
 2 
 3 """
 4 简介:fasta文件中按id或者seqence长度排序
 5 作者:刘自军
 6 data:2017年5月17 21:38
 7 """
 8 
 9 import sys 
10 
11 args = sys.argv
12 
13 fasta = {}
14 with open(args[1]) as f:
15 
16     for line in f:
17         line = line.strip()
18         if line.startswith(>):
19             ID = line
20             fasta[ID] = ‘‘
21         else:
22             fasta[ID] += line
23 
24     if args[2] == id:
25         fasta = sorted(fasta.items(),key=lambda i:i[0])  #按id排序
       #python3中废除类iteritems(),但用items()可以实现同样的效果
26 elif args[2] == len: 27 fasta = sorted(fasta.items(),key=lambda i:len(i[1])) #按每个序列的长度排序 28 else: 29 fasta = fasta.items() 30 31 for k,v in fasta: 32 print (%s\n%s %(k,v))

 

以上是关于fasta文件中序列的排序的主要内容,如果未能解决你的问题,请参考以下文章

如何在 fasta 文件中并行化计算,其中每个处理器采用一个序列

perl处理fasta文件

如何从大fasta文件中找出自己想要的序列

求fasta文件中互补序列

如何连接相同 multiFASTA 文件中的序列,然后将结果打印到新的 FASTA 文件?

perl 多fasta文件匹配,并提取匹配文件第一条序列