python中实现RNA序列的翻译
001、 利用循环结构实现
[root@PC1 test01]# ls a.fa test.py [root@PC1 test01]# cat a.fa ## 测试RNA序列 AUGGCCAUGGCGCCCAGAACUGAGAUCAAUAGUACCCGUAUUAACGGGUGA [root@PC1 test01]# cat test.py ## 翻译程序 #!/usr/bin/env python # -*- coding: utf-8 -*- in_file = open("a.fa", "r") file = in_file.read().strip() in_file.close() table = { 'UUU':'F','CUU':'L','AUU':'I','GUU':'V', 'UUC':'F','CUC':'L','AUC':'I','GUC':'V', 'UUA':'L','CUA':'L','AUA':'I','GUA':'V', 'UUG':'L','CUG':'L','AUG':'M','GUG':'V', 'UCU':'S','CCU':'P','ACU':'T','GCU':'A', 'UCC':'S','CCC':'P','ACC':'T','GCC':'A', 'UCA':'S','CCA':'P','ACA':'T','GCA':'A', 'UCG':'S','CCG':'P','ACG':'T','GCG':'A', 'UAU':'Y','CAU':'H','AAU':'N','GAU':'D', 'UAC':'Y','CAC':'H','AAC':'N','GAC':'D', 'UAA':'Stop','CAA':'Q','AAA':'K','GAA':'E', 'UAG':'Stop','CAG':'Q','AAG':'K','GAG':'E', 'UGU':'C','CGU':'R','AGU':'S','GGU':'G', 'UGC':'C','CGC':'R','AGC':'S','GGC':'G', 'UGA':'Stop','CGA':'R','AGA':'R','GGA':'G', 'UGG':'W','CGG':'R','AGG':'R','GGG':'G' } str1 = "" if len(file) % 3 != 0: print("no integrate sequence!") exit else: for i in range(0, len(file), 3): idx = file[i:i+3] if table[idx] == "Stop": exit else: str1 += table[idx] print(str1) [root@PC1 test01]# python test.py ## 翻译结果 MAMAPRTEINSTRING
002、解法2 循环结构
[root@PC1 test01]# ls a.fa test.py [root@PC1 test01]# cat a.fa ## 测试RNA序列 AUGGCCAUGGCGCCCAGAACUGAGAUCAAUAGUACCCGUAUUAACGGGUGA [root@PC1 test01]# cat test.py ## 翻译程序 #!/usr/bin/env python # -*- coding: utf-8 -*- in_file = open("a.fa", "r") file = in_file.read().strip() table = { 'UUU':'F','CUU':'L','AUU':'I','GUU':'V', 'UUC':'F','CUC':'L','AUC':'I','GUC':'V', 'UUA':'L','CUA':'L','AUA':'I','GUA':'V', 'UUG':'L','CUG':'L','AUG':'M','GUG':'V', 'UCU':'S','CCU':'P','ACU':'T','GCU':'A', 'UCC':'S','CCC':'P','ACC':'T','GCC':'A', 'UCA':'S','CCA':'P','ACA':'T','GCA':'A', 'UCG':'S','CCG':'P','ACG':'T','GCG':'A', 'UAU':'Y','CAU':'H','AAU':'N','GAU':'D', 'UAC':'Y','CAC':'H','AAC':'N','GAC':'D', 'UAA':'Stop','CAA':'Q','AAA':'K','GAA':'E', 'UAG':'Stop','CAG':'Q','AAG':'K','GAG':'E', 'UGU':'C','CGU':'R','AGU':'S','GGU':'G', 'UGC':'C','CGC':'R','AGC':'S','GGC':'G', 'UGA':'Stop','CGA':'R','AGA':'R','GGA':'G', 'UGG':'W','CGG':'R','AGG':'R','GGG':'G' } str1 = "" while(len(file) >= 3): idx = file[0:3] if table[idx] != "Stop": str1 += table[idx] else: break file = file[3:] print(str1) [root@PC1 test01]# python3 test.py ## 翻译结果 MAMAPRTEINSTRING
003、利用函数结构实现
[root@PC1 test01]# ls a.fa test.py [root@PC1 test01]# cat a.fa ## 测试RNA序列 AUGGCCAUGGCGCCCAGAACUGAGAUCAAUAGUACCCGUAUUAACGGGUGA [root@PC1 test01]# cat test.py ## 翻译程序 #!/usr/bin/env python # -*- coding: utf-8 -*- in_file = open("a.fa", "r") file = in_file.read().strip() table = { 'UUU':'F','CUU':'L','AUU':'I','GUU':'V', 'UUC':'F','CUC':'L','AUC':'I','GUC':'V', 'UUA':'L','CUA':'L','AUA':'I','GUA':'V', 'UUG':'L','CUG':'L','AUG':'M','GUG':'V', 'UCU':'S','CCU':'P','ACU':'T','GCU':'A', 'UCC':'S','CCC':'P','ACC':'T','GCC':'A', 'UCA':'S','CCA':'P','ACA':'T','GCA':'A', 'UCG':'S','CCG':'P','ACG':'T','GCG':'A', 'UAU':'Y','CAU':'H','AAU':'N','GAU':'D', 'UAC':'Y','CAC':'H','AAC':'N','GAC':'D', 'UAA':'Stop','CAA':'Q','AAA':'K','GAA':'E', 'UAG':'Stop','CAG':'Q','AAG':'K','GAG':'E', 'UGU':'C','CGU':'R','AGU':'S','GGU':'G', 'UGC':'C','CGC':'R','AGC':'S','GGC':'G', 'UGA':'Stop','CGA':'R','AGA':'R','GGA':'G', 'UGG':'W','CGG':'R','AGG':'R','GGG':'G' } #amino_acid = "" def translation(rna, table): ## 翻译函数,参数为RNA序列和密码子字典 amino_acid = "" for i in range(0, len(rna), 3): codon = rna[i:i+3] if codon not in table or table[codon] == "Stop": exit else: amino_acid += table[codon] return amino_acid print(translation(file, table)) [root@PC1 test01]# python test.py ## 翻译结果 MAMAPRTEINSTRING
。
参考:
https://blog.csdn.net/weshengxin/article/details/110790253
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2022-08-27 R语言中unname函数
2022-08-27 R语言中条件表达语句ifelse语句
2022-08-27 R语言中当数据只有一列时,提取数据,增加drop = FALSE保证提取后的数据仍然为数据框
2022-08-27 R语言中lapply函数
2022-08-27 seurat 单细胞数据分析中 VizDimLoadings 函数
2022-08-27 seurat 单细胞数据分析中 DimPlot函数实现pca
2022-08-27 seurat 单细胞数据分析中 VariableFeaturePlot函数实现