使用Python程序反向互补序列

# This is a sample Python script.

# Press Shift+F10 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.

# !/usr/bin/python3

import sys

def translate_seq(seq):
    intab = "ATCGatcg"
    outtab = "TAGCtagc"
    trantab = str.maketrans(intab, outtab)
    trans_seq = seq.translate(trantab)
    return trans_seq

# Press the green button in the gutter to run the script.
if __name__ == '__main__':

    seq = "atcgggaacctat"
    trans_seq = translate_seq(seq)
    print("seq:\t\t\t", seq)
    print("trans_seq:\t\t", trans_seq)

    #reverse_seq method 1
    reverse_seq = trans_seq[::-1]
    print("reverse_seq:\t",reverse_seq)
    print("trans_seq:\t\t",trans_seq)   #原序列没变化

    #reverse_seq method 2
    seq_list = list(trans_seq)
    print("seq_list:",seq_list)
    seq_list.reverse()  #注意:reverse()函数没有返回值,是针对自身list进行的操作
    print("reversed list:",seq_list) #此处打印出的为列表,不是序列,需要转化为序列

    reverse_seq2=''.join(seq_list) #使用字符串的join()函数,连接list中的字符
    print("reverse_seq2:",reverse_seq2)

    ###############
    dict_seq = {'A':'T', 'T':'A', 'C':'G', 'G':'C'}
    ss=""

    for index, str in enumerate(seq.upper()): #enumerate为Python内置函数,用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
        print(index,str)
        ss += dict_seq[str]
    print("ss:",ss)



    for str in seq.upper():
        print("str:",str)
        ss += dict_seq[str]
    print("ss-2:",ss)

    for str in iter(seq.upper()): #iter()为Python内置函数,用来生成迭代器
        print("str:", str)
        ss += dict_seq[str]
    print("ss-3:", ss)

    ##############
    seq=seq.upper()  #注意此处转化为大写的必要性,后面replace()函数替换是区分大小写的
    seq=seq.replace("A","t")
    print("seq0:",seq)
    seq=seq.replace("T","a")
    print("seq1:", seq)
    seq=seq.replace("C","g")
    seq=seq.replace("G","c")
    print("seq3:", seq)
    seq=seq[::-1]
    print("seq: ",seq)
    ###############

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值