python导出csv文件、统计每个出现的次数_Python脚本:fasta文件多序列信息统计

该Python脚本用于解析fasta文件,统计其中每条序列的ATCG碱基出现次数,并计算GC含量等信息,结果以CSV格式输出。通过argparse模块接收输入文件路径,读取序列并存储到字典中,然后计算并输出序列的长度、GC含量及其他碱基含量。
摘要由CSDN通过智能技术生成

设计需求

统计fasta文件中多条序列信息,设计目标效果:

991d60c43e3f

图片.png

将结果输入到csv格式的表格中,因为csv格式表格用,分隔数据。

脚本使用argparse模块,提示输入数据。

import argparse

parser = argparse.ArgumentParser()

parser.add_argument('integers', type=str, help='输入fasta文件名')

args = parser.parse_args()

#获得integers参数

print(args.integers)

读取多个序列存入字典

当fasta文件中多条序列时,需要解决序列名与对应序列的储存问题。

创建一个fasta字典,将序列名字和序列储存进去。

当line[0]也就是第一个字符等于>时,就将名字赋值给header。

line[1:]是去除line第一个字符。因为fasta以>开头去掉>才是真的名字。

如果line[0]不是>那就是序列,那么我们就把序列储存给fasta字典并对应的序列名。

get()方法语法:

dict.get(key, default=None)

key -- 字典中要查找的键。

default -- 如果指定键的值不存在时,返回该默认值。

fasta[header] = fasta.get(header, '') + sequence使用这句是为了让序列中换行的序列也储存起来,连接两个分行的序列。

#读取序列字典

def read_fasta(input):

with open(input, 'r') as f:

fasta = {}

for line in f:

line = line.strip()

if line[0] == '>':

header = line[1:]

else:

sequence = line

fasta[header] = fasta.get(h

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值