反向功能并不完全取代一切

时间:2017-01-12 03:11:47

标签: python

写一个函数ReverseComplement来解决反向补码问题,下面再现。 (提示:使用你在最后一步写的反向函数作为子程序。)

这里需要一些帮助!我需要不仅向后更改给定的文本,还要使一些字母与其他字母相等,以便生成全新的结果:

def reverse(text):
        reversed_text = ""
    # Note: Indices are starting with zero and the last number in ranges aren't included
    for i in range(len(text)):   
        reversed_text += text[len(text)-1-i]
    return reversed_text

text = 'AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC'
text = text.replace('A', 'T')
text = text.replace('G', 'C')

所以我的输出会打印出来:

CCTCCTTTCTCTCTCTCTTTTTTTTTTCCTCTCTCTCTCTTTTTCCCCCTTCCTCTCTCTTTCTTTTCCT

但我需要做的真正的事情是:

GCTGCTATCAGACACTCTTTTTTTAATCCACACAGAGACATATTGCCCGTTGCAGTCAGAATGAAAAGCT

没有完全替换A代表T和G代替C ......我有0编程经验而且我被卡住了!请帮忙

3 个答案:

答案 0 :(得分:4)

这是一种方法:

$B = Subject::where('area_id', '=', $area->id)
        // some clause removing all subjects in A
        ->orderBy('name', 'asc')
        ->get();

这使用:

  • text[::-1].translate(maketrans('ACGT', 'TGCA')) 反转字符串
  • text[::-1]创建转换表
  • maketrans执行实际翻译

Python 2 的摘录:

translate

Python 3 的摘录:

from string import maketrans

text = 'AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC'
translated = text[::-1].translate(maketrans('ACGT', 'TGCA'))

print(translated)

答案 1 :(得分:2)

首先,您可以使用以下方法反转整个字符串:

def reverse(string):
    return string[::-1]

''.join(reversed("AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC"))

然后,您需要替换字母

text.replace(' A',' T')将取代所有' A'与' Ts。所以TAT - > TTT。 您需要做的是text.replace(' A',' 1'),text.replace(' T',' A' ),text.replace(' 1',' T')。

示例:

text = 'AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC'
# For swapping A and T
text.replace("A", "1")
text.replace("T", "A")
text.replace("1", "T")

# For swapping G and C
text.replace("G", "1")
text.replace("C", "G")
text.replace("1", "C")

答案 2 :(得分:0)

在Python中,反转字符串的最简单方法是

text = "ACGT"
reversed_text = text[::-1]
# Now, reversed_text is "TGCA"

完成后,您可以将A替换为T,将C替换为G(反之亦然)

# For swapping A and T
reversed_text.replace("A", "1")
reversed_text.replace("T", "A")
reversed_text.replace("1", "T")

# For swapping G and C
reversed_text.replace("G", "1")
reversed_text.replace("C", "G")
reversed_text.replace("1", "C")