python中 把每条FASTA序列分割成特定个数个字母一行的序列
001、
(base) root@PC1:/home/test2# ls a.fasta test.py (base) root@PC1:/home/test2# cat a.fasta ## 测试fasta文件 >gene1 myc AGCTGCCTAAGC GGCATAGCTAATCG >gene2 jun ACCGAATCGGAGCGATG GGCATTAAAGATCTAGCT >gene3 malat1 AGGCTAGCGAG GCGCGAG GATTAGGCG (base) root@PC1:/home/test2# cat test.py ## 测试程序 #!/usr/bin/python in_file = open("a.fasta", "r") dict1 = dict() for i in in_file: i = i.strip() if i[0] == ">": key = i dict1[key] = "" else: dict1[key] += i step = 10 ## 此处指定每行的碱基数 for i,j in dict1.items(): print(i) while len(j) > step: print(j[:step]) j = j[step::] if len(j) != 0: print(j) in_file.close() (base) root@PC1:/home/test2# python test.py ## 执行程序结果 >gene1 myc AGCTGCCTAA GCGGCATAGC TAATCG >gene2 jun ACCGAATCGG AGCGATGGGC ATTAAAGATC TAGCT >gene3 malat1 AGGCTAGCGA GGCGCGAGGA TTAGGCG
002、方法2
(base) root@PC1:/home/test2# ls a.fasta test.py (base) root@PC1:/home/test2# cat a.fasta ## 测试fasta文件 >gene1 myc AGCTGCCTAAGC GGCATAGCTAATCG >gene2 jun ACCGAATCGGAGCGATG GGCATTAAAGATCTAGCT >gene3 malat1 AGGCTAGCGAG GCGCGAG GATTAGGCG (base) root@PC1:/home/test2# cat test.py ## 测试程序 #!/usr/bin/python in_file = open("a.fasta", "r") dict1 = {} for i in in_file: i = i.strip() if i[0] == ">": key = i; dict1[key] = "" else: dict1[key] += i step = 10 ## 此处设置步长 for i,j in dict1.items(): print(i) for k in range(0, len(j), step): print(j[k:k + step]) in_file.close() (base) root@PC1:/home/test2# python test.py ## 程序运行结果 >gene1 myc AGCTGCCTAA GCGGCATAGC TAATCG >gene2 jun ACCGAATCGG AGCGATGGGC ATTAAAGATC TAGCT >gene3 malat1 AGGCTAGCGA GGCGCGAGGA TTAGGCG
参考:https://www.jianshu.com/p/403a23fdd7bb
分类:
python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律