python中求DNA的反向互补序列

 

001、   利用循环结构实现

复制代码
[root@PC1 test01]# ls
a.fa  test.py
[root@PC1 test01]# cat a.fa        ## 测试DNA序列
AAAACCCGGT
[root@PC1 test01]# cat test.py     ## 程序
#!/usr/bin/env python
# -*- coding: utf-8 -*-

in_file = open("a.fa", "r")
file = in_file.read().strip()[::-1]

str1 = str()
for i in file:
        if i == "A":
                str1 += "T"
        elif i == "C":
                str1 += "G"
        elif i == "G":
                str1 += "C"
        elif i == "T":
                str1 += "A"
        else:
                print("anomanous letter!")
                exit
print(str1)
[root@PC1 test01]# python test.py      ## 反向互补结果
ACCGGGTTTT
复制代码

 

002、借助字典匹配碱基

复制代码
[root@PC1 test01]# ls
a.fa  test.py
[root@PC1 test01]# cat a.fa            ## 测试DNA序列
AAAACCCGGT
[root@PC1 test01]# cat test.py         ## 求反向互补序列程序
#!/usr/bin/env python
# -*- coding: utf-8 -*-

in_file = open("a.fa", "r")
file = in_file.read().strip()[::-1]
in_file.close()

dict1 = {"A":"T", "C":"G", "G":"C", "T":"A"}
str1 = ""
for i in file:
        if i not in dict1:
                print("anomanous letters!")
                break
        else:
                str1 += dict1[i]
print(str1)
[root@PC1 test01]# python test.py         ## 转换结果
ACCGGGTTTT
复制代码

 

003、借助函数结构实现

复制代码
[root@PC1 test01]# ls
a.fa  test.py
[root@PC1 test01]# cat a.fa       ## 测试DNA序列
AAAACCCGGT
[root@PC1 test01]# cat test.py    ## 转换程序
#!/usr/bin/env python
# -*- coding: utf-8 -*-

in_file = open("a.fa", "r")
file = in_file.read().strip()[::-1]
in_file.close()

dict1 = {"A":"T", "C":"G", "G":"C", "T":"A"}
def rev_com(dna, table):
        str1 = str()
        for i in dna:
                if i not in table:
                        print("anomanous letter!")
                        break
                else:
                        str1 += table[i]
        return str1
print(rev_com(file, dict1))
[root@PC1 test01]# python test.py      ## 反向互补结果
ACCGGGTTTT
复制代码

 

 

posted @   小鲨鱼2018  阅读(194)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!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函数实现
点击右上角即可分享
微信分享提示