统计fasta文件中ATCG的比例

news/2025/1/16 1:02:56/

1.输入文件
在这里插入图片描述

2.代码

python">#title:lin_count_ATCG_of_fasta.py
#usage:python in_count_ATCG_of_fasta.py >output
def read_fasta(filename):"""Read a FASTA file and return a dictionary of sequences."""sequences = {}current_seq = ''seq_id = ''with open(filename, 'r') as file:for line in file:if line.startswith('>'):if current_seq:sequences[seq_id] = current_seqcurrent_seq = ''seq_id = line.strip().split(None, 1)[0][1:]  # Take the first word after '>', remove '>'else:current_seq += line.strip().upper()if current_seq:sequences[seq_id] = current_seqreturn sequencesdef calculate_atcg_percentages(sequences):"""Calculate and print the ATCG percentage of each sequence in the dictionary."""atcg_stats = {}total_a, total_t, total_c, total_g = 0, 0, 0, 0num_sequences = len(sequences)for seq_id, sequence in sequences.items():total_length = len(sequence)a_count = sequence.count('A')t_count = sequence.count('T')c_count = sequence.count('C')g_count = sequence.count('G')atcg_stats[seq_id] = {'A': (a_count / total_length) * 100 if total_length > 0 else 0,'T': (t_count / total_length) * 100 if total_length > 0 else 0,'C': (c_count / total_length) * 100 if total_length > 0 else 0,'G': (g_count / total_length) * 100 if total_length > 0 else 0}total_a += a_counttotal_t += t_counttotal_c += c_counttotal_g += g_count# Calculate overall percentagestotal_nucleotides = total_a + total_t + total_c + total_goverall_percentages = {'A': (total_a / total_nucleotides) * 100 if total_nucleotides > 0 else 0,'T': (total_t / total_nucleotides) * 100 if total_nucleotides > 0 else 0,'C': (total_c / total_nucleotides) * 100 if total_nucleotides > 0 else 0,'G': (total_g / total_nucleotides) * 100 if total_nucleotides > 0 else 0}return atcg_stats, overall_percentagesdef main():import sysif len(sys.argv) < 2:print("Usage: python script.py <fasta_file>")returnfasta_file = sys.argv[1]sequences = read_fasta(fasta_file)atcg_stats, overall_percentages = calculate_atcg_percentages(sequences)print("Sequence_ID\tA(%)\tT(%)\tC(%)\tG(%)")for seq_id, stats in atcg_stats.items():print(f"{seq_id}\t{stats['A']:.2f}\t{stats['T']:.2f}\t{stats['C']:.2f}\t{stats['G']:.2f}")if __name__ == "__main__":main()

3.输出文件:
在这里插入图片描述


http://www.ppmy.cn/news/1439754.html

相关文章

WordPress缓存插件有哪些?好用的缓存插件分享

目前WordPress缓存插件有&#xff1a;WP Rocket、WP Super Cache、W3 Total Cache、Sucuri、NitroPack、SiteGround Optimizer、LiteSpeed Cache、WP-Optimize、Hummingbird、Cache Enabler、Comet Cache。 在当今的数字世界中&#xff0c;拥有一个高效的网站对于吸引和留住用…

union节省内存

联合体 一、联合体的优点二、联合体定义三、联合体的使用四、python 联合体的使用 一、联合体的优点 由于联合体里的变量共同占有一个空间&#xff0c;可以利用联合体达到节省内存空间的目的。 需要注意&#xff1a;同时只有一个成员可以得到这块内存的使用权(对该内存的读写)…

设计模式- 组合模式(Composite)结构|原理|优缺点|场景|示例

设计模式&#xff08;分类&#xff09; 设计模式&#xff08;六大原则&#xff09; 创建型&#xff08;5种&#xff09; 工厂方法 抽象工厂模式 单例模式 建造者模式 原型模式 结构型&#xff08;7种&#xff09; 适配器…

BIM为电力、供水和道路工程无缝集成,助力智慧城市计划

在道路和公用事业工程中利用 Bentley Open 系列应用程序&#xff0c;项目进度加快 10%&#xff0c;节省成本 1,000 万印度卢比 推动基础设施现代化&#xff0c;实现智慧城市愿景 Dholera特别投资区位于印度艾哈迈达巴德西南 100 公里处&#xff0c;毗邻古吉拉特邦的贸易中心&a…

微信小程序:9.小程序配置

全局配置文件 小程序根目录下的app.json文件是小程序的全局配置文件。 常用的配置文件如下: pages 记录当前小程序所有的页面存放路径信息 window 全局设置小程序窗口外观 tabBar 设置小程序底部的tabBar效果 style 是否启用新版style 小程序窗口的组成部分 了解windo节点常…

线性代数基础3 行列式

行列式 行列式其实在机器学习中用的并不多&#xff0c;一个矩阵必须是方阵&#xff0c;才能计算它的行列式 行列式是把矩阵变成一个标量 import numpy as np A np.array([[1,3],[2,5]]) display(A) print(矩阵A的行列式是&#xff1a;\n,np.linalg.det(A))array([[1, 3],[2, …

Kafka 生产者应用解析

目录 1、生产者消息发送流程 1.1、发送原理 2、异步发送 API 2.1、普通异步发送 2.2、带回调函数的异步发送 3、同步发送 API 4、生产者分区 4.1、分区的优势 4.2、生产者发送消息的分区策略 示例1&#xff1a;将数据发往指定 partition 示例2&#xff1a;有 key 的…

uniapp视频播放器(h5+app)

关于uniapp视频播放器遇到的一些问题&#xff0c;mark下。 中途遇到了很多问题&#xff0c;如果有相同的伙伴遇到了类似的&#xff0c;欢迎交流 官方的video播放器在app上不友好&#xff0c;有以下功能不支持。 loadedmetadata、controlstoggle不支持 不支持外挂字幕&#xf…