美文网首页
Linux | Python 命令行

Linux | Python 命令行

作者: 新_世_界 | 来源:发表于2021-08-21 20:41 被阅读0次

之前学过一段时间python,发现python在处理生物学数据方面非常强大。最近在处理数据的过程中,最近摸索出来的一下不成熟的脚本,记录下来,以便下次使用。

一、根据基因id 提取序列

#!/usr/bin/env python
import sys

USAGE = "\nusage: python %s sequence.fasta  id_list  out.fasta\n" % sys.argv[0]

if len(sys.argv) != 4:
    print (USAGE)
    sys.exit()

def parseFasta(filename):
    fas = {}
    id = None
    with open(filename, "r") as fh:
        for line in fh:
            if line[0] == '>':
                header = line[1:].rstrip()
                id = header.split()[0]
                fas[id] = []
            else:
                fas[id].append(line.strip())
        for id,seq in fas.items():
            fas[id] = ''.join(seq)
    return fas

fas = parseFasta(sys.argv[1])
IDs = open(sys.argv[2], 'r')
OUT = open(sys.argv[3], 'w')

for line in IDs:
    id = line.strip('\n')
    OUT.write(">" + id + "\n" + fas[id] + "\n")

IDs.close()
OUT.close()

相关文章

网友评论

      本文标题:Linux | Python 命令行

      本文链接:https://www.haomeiwen.com/subject/sykqiltx.html