zoukankan      html  css  js  c++  java
  • 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 %s' %(k,v))
  • 相关阅读:
    VS中,如何将存在于解决方案里,但是没有显示出来的文件(或文件夹)显示到项目中。
    (转)分布式系统编程,你到哪一级了?
    领域驱动架构学习总结
    Java多线程总结
    MySQL更新优化
    MySQL查询优化
    MySQL索引
    MySQL优化
    MySQL联接操作
    MySQL架构
  • 原文地址:https://www.cnblogs.com/nklzj/p/6869754.html
Copyright © 2011-2022 走看看