博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
fasta文件中序列的排序
阅读量:5136 次
发布时间:2019-06-13

本文共 1228 字,大约阅读时间需要 4 分钟。

同样的名为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.argv12 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 = line20             fasta[ID] = ''21         else:22             fasta[ID] += line23 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))

 

转载于:https://www.cnblogs.com/nklzj/p/6869754.html

你可能感兴趣的文章
【转】Linux之printf命令
查看>>
关于PHP会话:session和cookie
查看>>
STM32F10x_RTC秒中断
查看>>
display:none和visiblity:hidden区别
查看>>
C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现。
查看>>
牛的障碍Cow Steeplechase
查看>>
Zookeeper选举算法原理
查看>>
3月29日AM
查看>>
利用IP地址查询接口来查询IP归属地
查看>>
HTML元素定义 ID,Class,Style的优先级
查看>>
构造者模式
查看>>
http和https的区别
查看>>
Hbuild在线云ios打包失败,提示BuildConfigure Failed 31013 App Store 图标 未找到 解决方法...
查看>>
找到树中指定id的所有父节点
查看>>
今天新开通了博客
查看>>
AS3优化性能笔记二
查看>>
ElasticSearch(站内搜索)
查看>>
4----COM:a Generative Model for group recommendation(组推荐的一种生成模型)
查看>>
UVA 11137 - Ingenuous Cubrency
查看>>
js阻止事件冒泡的两种方法
查看>>