ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python 中实现DNA一致性序列计算

2022-08-18 19:33:22  阅读:169  来源: 互联网

标签:DNA dict3 python test Rosalind file 一致性 home append


 

001、

root@PC1:/home/test# ls
a.fasta  test.py
root@PC1:/home/test# cat a.fasta              ## 测试数据
>Rosalind_1
ATCCAGCT
>Rosalind_2
GGGCAACT
>Rosalind_3
ATGGATCT
>Rosalind_4
AAGCAACC
>Rosalind_5
TTGGAACT
>Rosalind_6
ATGCCATT
>Rosalind_7
ATGGCACT
root@PC1:/home/test# cat test.py                     ## 测试程序
#!/usr/bin/python

in_file = open("a.fasta", "r")
out_file = open("result.txt", "w")
dict1 = dict()
dict2 = dict()

for i in in_file:
    i = i.strip()
    if i[0] == ">":
        key = i
        dict1[key] = []
    else:
        dict1[key].append(i)

list1 = list()

for i in dict1.values():
    i = "".join(i)
    list1.append(i)

length = len(list1[0])
for i in range(length):
    dict2[i] = []

for i in list1:
    for j in range(length):
        dict2[j].append(i[j])

dict3 = dict()
for i in "ATCG":
    dict3[i] = []

for i in dict2.values():
    i = "".join(i)
    dict3["A"].append(str(i.count("A")))
    dict3["C"].append(str(i.count("C")))
    dict3["G"].append(str(i.count("G")))
    dict3["T"].append(str(i.count("T")))

for i,j in dict3.items():
    print(i, " ".join(j), file = out_file)

in_file.close()
out_file.close()
root@PC1:/home/test# python test.py                    ## 执行程序
root@PC1:/home/test# ls
a.fasta  result.txt  test.py
root@PC1:/home/test# cat result.txt                    ## 程序结果
A 5 1 0 0 5 5 0 0
T 1 5 0 0 0 1 1 6
C 0 0 1 4 2 0 6 1
G 1 1 6 3 0 1 0 0

 

参考:https://mp.weixin.qq.com/s?__biz=MzIxMjQxMDYxNA==&mid=2247484219&idx=1&sn=45fe0f337db0c2bb078bbbac0c0a3b77&chksm=9747caa2a03043b4e348e7d4a3946a2dcfdbc0dd33f533aa5a615d74da2571f52729f3ae86bd&scene=178&cur_album_id=1635727573621997580#rd

 

标签:DNA,dict3,python,test,Rosalind,file,一致性,home,append
来源: https://www.cnblogs.com/liujiaxin2018/p/16599824.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有