Python 将核苷酸转换成相应的DNA序列

Python 将核苷酸转换成相应的DNA序列,python,list,function,bioinformatics,Python,List,Function,Bioinformatics,我正在用python完成一项作业。我必须找到一个函数或程序,将这个列表转换成相应的DNA序列 bases_list = ['Adenosine', 'Guanine', 'Thymine', 'Cytosine', 'Thymine', 'Adenosine', 'Guanine', 'Cytosine', 'Thymine', 'Adenosine', 'Guanine'] print(dna) AGTCTAGCTAG #the output 我想也许我可以做一个定义函数,把这些基转换

我正在用python完成一项作业。我必须找到一个函数或程序,将这个列表转换成相应的DNA序列

bases_list = ['Adenosine', 'Guanine', 'Thymine', 'Cytosine', 'Thymine', 'Adenosine', 'Guanine', 'Cytosine', 'Thymine', 'Adenosine', 'Guanine']

print(dna)

AGTCTAGCTAG  #the output
我想也许我可以做一个定义函数,把这些基转换成相应的字母。我该怎么做?有什么想法吗

PS:我最近开始学习python,所以我希望你们能帮助我:)

最简洁:

print("".join([x[0] for x in bases_list]))

dna = "".join(x[0] for x in bases_list])
print(dna)
否则:

dna = ""
for base in bases_list:
    dna += base[0] . # get 1st letter from base
print(dna)
最简洁的:

print("".join([x[0] for x in bases_list]))

dna = "".join(x[0] for x in bases_list])
print(dna)
否则:

dna = ""
for base in bases_list:
    dna += base[0] . # get 1st letter from base
print(dna)

让我们使用字符串索引和
join

dna = ''.join(i[0] for i in bases_list)
print(dna)
输出:

AGTCTAGCTAG

让我们使用字符串索引和
join

dna = ''.join(i[0] for i in bases_list)
print(dna)
输出:

AGTCTAGCTAG

地图怎么样

In [276]: ''.join(map(lambda x: x[0], bases_list))
Out[276]: 'AGTCTAGCTAG'
str.join
用于获取字符串列表(或任何可数)并将它们连接在一起<代码>映射对iterable中的每个元素应用相同的函数

速记。我在终端上运行了这段代码,但是如果您在脚本中运行这段代码,请不要忘记将结果赋回另一个变量

seq = ''.join(map(lambda x: x[0], bases_list))
print(seq)

地图怎么样

In [276]: ''.join(map(lambda x: x[0], bases_list))
Out[276]: 'AGTCTAGCTAG'
str.join
用于获取字符串列表(或任何可数)并将它们连接在一起<代码>映射对iterable中的每个元素应用相同的函数

速记。我在终端上运行了这段代码,但是如果您在脚本中运行这段代码,请不要忘记将结果赋回另一个变量

seq = ''.join(map(lambda x: x[0], bases_list))
print(seq)

是的,有几个!不久前开始,让我们做一些简单的事情:

bases_list = ['Adenosine', 'Guanine', 'Thymine', 'Cytosine', 'Thymine', 'Adenosine', 'Guanine', 'Cytosine', 'Thymine', 'Adenosine', 'Guanine']

dna = "" # You begin with the dna empty

for sequence in bases_list: # you go throw every chain
  dna += sequence[0] # you add the first letter with the op [0] of lists

print(dna) # finally print

您可以在这里阅读有关循环基础的内容

是的,还有一些!不久前开始,让我们做一些简单的事情:

bases_list = ['Adenosine', 'Guanine', 'Thymine', 'Cytosine', 'Thymine', 'Adenosine', 'Guanine', 'Cytosine', 'Thymine', 'Adenosine', 'Guanine']

dna = "" # You begin with the dna empty

for sequence in bases_list: # you go throw every chain
  dna += sequence[0] # you add the first letter with the op [0] of lists

print(dna) # finally print

您可以在这里阅读有关循环基础的内容

为了完整性,我想添加
itemgetter
解决方案

在本例中,它获取
基列表中每个元素的索引
(0)
中的字符。据说它比lambda稍快、更干净

结果:

AGTCTAGCTAG

为了完整性,我想我应该添加
itemgetter
解决方案

在本例中,它获取
基列表中每个元素的索引
(0)
中的字符。据说它比lambda稍快、更干净

结果:

AGTCTAGCTAG

如果您想要一个将基名称转换为其对应字母的函数,那么在这里您是幸运的,因为它只是基名称的第一个字母

获取字符串的第一个字母很容易通过“索引”完成。例如:

base = "Adenosine"
letter = base[0]
# letter should now be "A"
在这样一个简单的情况下,可能不需要定义特定的函数,但这是可能的,并且可能如下所示:

def base2letter(base):
    """This function converts the name of a base into the corresponding letter."""
    return base[0]
现在,您可以将该函数应用于列表中的每个基本名称。在python中执行此操作的常用方法是使用“列表理解”:

您现在拥有的是字母列表:
[“A”、“G”、“T”、“C”、“T”、“A”、“G”、“C”、“T”、“A”、“G”、“G”]

下一步是将它们连接成一个字符串。一种有效的方法是使用为字符串定义的
join
方法。它将字符串粘在所给的连续元素之间:
“u”。join([“A”、“B”、“C”)
将导致
“A_B_C”
。在这里,您希望将字母组合在一起,但它们之间没有任何内容,因此必须使用空字符串:

dna = "".join(letters_list)

请注意,通过将新字母逐个连接到字符串的当前状态,可以逐步在for循环中构建字符串(请参阅)。如果python只是用来让您大致了解使用“命令式”风格的编程语言是如何工作的,您可能会想到这一点。但是,它在python中效率不高,这就是为什么许多答案没有使用这种技术。

如果您想要一个将基名称转换为其对应字母的函数,您在这里很幸运,因为它只是基名称的第一个字母

获取字符串的第一个字母很容易通过“索引”完成。例如:

base = "Adenosine"
letter = base[0]
# letter should now be "A"
在这样一个简单的情况下,可能不需要定义特定的函数,但这是可能的,并且可能如下所示:

def base2letter(base):
    """This function converts the name of a base into the corresponding letter."""
    return base[0]
现在,您可以将该函数应用于列表中的每个基本名称。在python中执行此操作的常用方法是使用“列表理解”:

您现在拥有的是字母列表:
[“A”、“G”、“T”、“C”、“T”、“A”、“G”、“C”、“T”、“A”、“G”、“G”]

下一步是将它们连接成一个字符串。一种有效的方法是使用为字符串定义的
join
方法。它将字符串粘在所给的连续元素之间:
“u”。join([“A”、“B”、“C”)
将导致
“A_B_C”
。在这里,您希望将字母组合在一起,但它们之间没有任何内容,因此必须使用空字符串:

dna = "".join(letters_list)

请注意,通过将新字母逐个连接到字符串的当前状态,可以逐步在for循环中构建字符串(请参阅)。如果python只是用来让您大致了解使用“命令式”风格的编程语言是如何工作的,您可能会想到这一点。然而,它在python中并不有效,这就是为什么许多答案没有使用这种技术。

print(“.join([x[0]表示base_列表中的x]),但我必须以print(dna)的形式打印,这意味着我必须找到一个我应该称为“dna”的函数。你认为我必须写一个def函数吗?我认为你需要先学习Python编程的基础知识。“…查找函数的作业…”如果你的问题得到了回答,请。谢谢.print(“.join([x[0]表示base_列表中的x]),但我必须以print(dna)的形式打印,这意味着我必须找到一个我应该称为“dna”的函数。你认为我必须写一个def函数吗?我认为你需要先学习Python编程的基础知识。“…查找函数的作业…”如果你的问题得到了回答,请。谢谢。连接语法实际上是什么?在我们的课程中,我从未见过:)@berr Join从一个iterable中获取每个元素,并用分隔符或分隔符将它们连接成一个字符串。连接符号是什么