生信刷题之ROSALIND——Part 1

文章介绍了Rosalind平台,一个结合编程学习生物信息学的资源,通过解决实际问题提升技能。作者分享了5个关于DNA处理的问题及其Python解决方案,包括碱基计数、DNA转录、互补链生成、兔子繁殖的斐波那契数列应用及GC含量计算,并提供了示例代码和实际操作的输出。
摘要由CSDN通过智能技术生成

写在前面

ROSALIND: https://rosalind.info/problems/locations/

Rosalind是一个通过解决问题来学习生物信息学和编程的平台。使用此刷题网站的好处是在学习生物信息学的同时,能够加强编程能力,并且在实践中学习,快速进步。

在此将题目与答案记录下来,方便日后翻阅查看,如有错误还望读者批评指正。
刷题之前,需要提前安装配置好python。 笔者使用的python版本是3.9.7,版本不同,相应的代码可能会有差别,需要注意一下。

1、Counting DNA Nucleotides

Problem

碱基是组成遗传密码的基本单元,其中碱基A、G、C、T存在于DNA中,而A、G、C、U存在于RNA中。(A:腺嘌呤,G:鸟嘌呤,C:胞嘧啶,T:胸腺嘧啶,U:尿嘧啶)
DNA双螺旋结构中,位于两条方向相反、相互平行多核苷酸链上的嘌呤嘧啶碱基,围绕着螺旋轴,通过形成氢键,互相搭配成对,称为碱基配对。碱基配对,即一条长链上的A,总是与另一条长链上的T形成氢键; 而G总是与C形成氢键。即A=T、G≡C

Given: 一条DNA链 s ,其长度不超过1000 nt。

Return: 四个整数(用空格分隔),分别计算符号“A”、“C”、“G”和“T”在 s 中出现的次数。

Sample Dataset

AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC

Sample Output

20 12 17 21

Code

# Counting DNA Nucleotides

def count(s):
    A_count = s.count("A")
    C_count = s.count("C")
    G_count = s.count("G")
    T_count = s.count("T")
    return A_count, C_count, G_count, T_count


example = "AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC"
A, C, G, T = count(example)
print(f"{
     A} {
     C} {
     G} {
     T}")

with open('rosalind_dna.txt', 'r') as file:
    DNA = file.read()
    # print(f"The length of this file is {len(DNA)}")
    A, C, G, T = count(DNA)
    print(f"{
     A} {
     C} {
     G} {
     T}")
    

Output

20 12 17 21
215 243 237 245

注意

  • 答题时,会下载一个文件,需要基于下载的文件进行操作
  • 每次下载的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值