De Bruijn图形代码Python 3

De Bruijn图形代码Python 3,python,Python,这是一个课堂作业。我对编码是新手,有人建议我使用Python,因为它更容易处理。任务的重点是获取Kmer列表并组装超弦,在本例中是DNA核苷酸并组装DNA序列。我们需要使用Euler路径(算法),我还没有弄明白怎么做。现在我正在做一个,尝试将我的kmer列表加载到Python(还没有弄清楚),并构建de Bruijn图。注意:我没有加载Kmer列表,因为我还没有弄清楚如何加载。这只是我输入的一个随机的DNA字符串 f = open("kmers.txt") print(f.read()) st

这是一个课堂作业。我对编码是新手,有人建议我使用Python,因为它更容易处理。任务的重点是获取Kmer列表并组装超弦,在本例中是DNA核苷酸并组装DNA序列。我们需要使用Euler路径(算法),我还没有弄明白怎么做。现在我正在做一个,尝试将我的kmer列表加载到Python(还没有弄清楚),并构建de Bruijn图。注意:我没有加载Kmer列表,因为我还没有弄清楚如何加载。这只是我输入的一个随机的DNA字符串

f = open("kmers.txt")
print(f.read())
st = f.read()
def de_bruijn_ize(st, k):
edges = []
nodes = set()
for i in range(len(st) - k + 1):
    edges.append((st[i:+k-1], st[i+1:i+k]))
    nodes.add(st[i:i+k-1])
    nodes.add(st[i+1:i+k])
return nodes, edges

nodes, edges = de_bruijn_ize(st, 4)
print(nodes)
print(edges)
这是我的密码:

def de_bruijn_ize(st, k):
edges = []
nodes = set()
for i in range(len(st) - k + 1):
    edges.append((st[i:+k-1], st[i+1:i+k]))
    nodes.add(st[i:i+k-1])
    nodes.add(st[i+1:i+k])
return nodes, edges

nodes, edges = de_bruijn_ize(“CCGGTTAAACGTC”, 3)
print(nodes)
print(edges)
f = open("kmers.txt")
print(f.read())
st = f.read()
def de_bruijn_ize(st, k):
edges = []
nodes = set()
for i in range(len(st) - k + 1):
    edges.append((st[i:+k-1], st[i+1:i+k]))
    nodes.add(st[i:i+k-1])
    nodes.add(st[i+1:i+k])
return nodes, edges

nodes, edges = de_bruijn_ize(st, 4)
print(nodes)
print(edges)
我尝试运行时收到以下消息:

f = open("kmers.txt")
print(f.read())
st = f.read()
def de_bruijn_ize(st, k):
edges = []
nodes = set()
for i in range(len(st) - k + 1):
    edges.append((st[i:+k-1], st[i+1:i+k]))
    nodes.add(st[i:i+k-1])
    nodes.add(st[i+1:i+k])
return nodes, edges

nodes, edges = de_bruijn_ize(st, 4)
print(nodes)
print(edges)
文件“practiceassembly.txt”,第11行 节点、边=de_bruijn_ize(“CCGGTTAACGTC”,3) ^ SyntaxError:标识符中的字符无效

f = open("kmers.txt")
print(f.read())
st = f.read()
def de_bruijn_ize(st, k):
edges = []
nodes = set()
for i in range(len(st) - k + 1):
    edges.append((st[i:+k-1], st[i+1:i+k]))
    nodes.add(st[i:i+k-1])
    nodes.add(st[i+1:i+k])
return nodes, edges

nodes, edges = de_bruijn_ize(st, 4)
print(nodes)
print(edges)
如有任何帮助/建议,将不胜感激。如果有人能为这类问题提供好的资源,我也会非常感激

f = open("kmers.txt")
print(f.read())
st = f.read()
def de_bruijn_ize(st, k):
edges = []
nodes = set()
for i in range(len(st) - k + 1):
    edges.append((st[i:+k-1], st[i+1:i+k]))
    nodes.add(st[i:i+k-1])
    nodes.add(st[i+1:i+k])
return nodes, edges

nodes, edges = de_bruijn_ize(st, 4)
print(nodes)
print(edges)
我取得了一点进步。我已通过以下方式打开我的kmer文件: 是的,我设法做到了:

f = open("kmers.txt")
print(f.read())
st = f.read()
def de_bruijn_ize(st, k):
edges = []
nodes = set()
for i in range(len(st) - k + 1):
    edges.append((st[i:+k-1], st[i+1:i+k]))
    nodes.add(st[i:i+k-1])
    nodes.add(st[i+1:i+k])
return nodes, edges

nodes, edges = de_bruijn_ize(st, 4)
print(nodes)
print(edges)
我得到了我的Kmer名单:

f = open("kmers.txt")
print(f.read())
st = f.read()
def de_bruijn_ize(st, k):
edges = []
nodes = set()
for i in range(len(st) - k + 1):
    edges.append((st[i:+k-1], st[i+1:i+k]))
    nodes.add(st[i:i+k-1])
    nodes.add(st[i+1:i+k])
return nodes, edges

nodes, edges = de_bruijn_ize(st, 4)
print(nodes)
print(edges)
AAAC AACA AACG 啊 ACAC ACAG ACGC ACGG ACTG AGCA 阿加 AGGC 阿特卡 ATTC 民航总局 卡卡 卡克 CAGG CATC CGCG CGGT CGTA CGTG CTAA CTCT CTGG CTTA 裂口 GCAT GCGT GCTC GCTT GGAC GGCA GGCT GGGT GGTG GGTT GTAT GTGC GTGG GTTT 塔阿 塔克 塔特 TCAA TCAC TCGT TCTA TGCT TGGC TGGG TTAA TTCA TTCG TTTC TTTT 集合() []
但其余的都没有实施。我想我已经快成功了(也许我只是抱着希望),但我只是需要一点帮助

使用的引号不是标准的(可能是pdf的复制粘贴):

f = open("kmers.txt")
print(f.read())
st = f.read()
def de_bruijn_ize(st, k):
edges = []
nodes = set()
for i in range(len(st) - k + 1):
    edges.append((st[i:+k-1], st[i+1:i+k]))
    nodes.add(st[i:i+k-1])
    nodes.add(st[i+1:i+k])
return nodes, edges

nodes, edges = de_bruijn_ize(st, 4)
print(nodes)
print(edges)
替换:

f = open("kmers.txt")
print(f.read())
st = f.read()
def de_bruijn_ize(st, k):
edges = []
nodes = set()
for i in range(len(st) - k + 1):
    edges.append((st[i:+k-1], st[i+1:i+k]))
    nodes.add(st[i:i+k-1])
    nodes.add(st[i+1:i+k])
return nodes, edges

nodes, edges = de_bruijn_ize(st, 4)
print(nodes)
print(edges)
nodes, edges = de_bruijn_ize(“CCGGTTAAACGTC”, 3)
与:

f = open("kmers.txt")
print(f.read())
st = f.read()
def de_bruijn_ize(st, k):
edges = []
nodes = set()
for i in range(len(st) - k + 1):
    edges.append((st[i:+k-1], st[i+1:i+k]))
    nodes.add(st[i:i+k-1])
    nodes.add(st[i+1:i+k])
return nodes, edges

nodes, edges = de_bruijn_ize(st, 4)
print(nodes)
print(edges)
nodes, edges = de_bruijn_ize("CCGGTTAAACGTC", 3)

使用的引号不是标准的(可能是pdf的复制粘贴):

f = open("kmers.txt")
print(f.read())
st = f.read()
def de_bruijn_ize(st, k):
edges = []
nodes = set()
for i in range(len(st) - k + 1):
    edges.append((st[i:+k-1], st[i+1:i+k]))
    nodes.add(st[i:i+k-1])
    nodes.add(st[i+1:i+k])
return nodes, edges

nodes, edges = de_bruijn_ize(st, 4)
print(nodes)
print(edges)
替换:

f = open("kmers.txt")
print(f.read())
st = f.read()
def de_bruijn_ize(st, k):
edges = []
nodes = set()
for i in range(len(st) - k + 1):
    edges.append((st[i:+k-1], st[i+1:i+k]))
    nodes.add(st[i:i+k-1])
    nodes.add(st[i+1:i+k])
return nodes, edges

nodes, edges = de_bruijn_ize(st, 4)
print(nodes)
print(edges)
nodes, edges = de_bruijn_ize(“CCGGTTAAACGTC”, 3)
与:

f = open("kmers.txt")
print(f.read())
st = f.read()
def de_bruijn_ize(st, k):
edges = []
nodes = set()
for i in range(len(st) - k + 1):
    edges.append((st[i:+k-1], st[i+1:i+k]))
    nodes.add(st[i:i+k-1])
    nodes.add(st[i+1:i+k])
return nodes, edges

nodes, edges = de_bruijn_ize(st, 4)
print(nodes)
print(edges)
nodes, edges = de_bruijn_ize("CCGGTTAAACGTC", 3)

除了逻辑上的任何错误外,行中的引号:

f = open("kmers.txt")
print(f.read())
st = f.read()
def de_bruijn_ize(st, k):
edges = []
nodes = set()
for i in range(len(st) - k + 1):
    edges.append((st[i:+k-1], st[i+1:i+k]))
    nodes.add(st[i:i+k-1])
    nodes.add(st[i+1:i+k])
return nodes, edges

nodes, edges = de_bruijn_ize(st, 4)
print(nodes)
print(edges)
    nodes, edges = de_bruijn_ize(“CCGGTTAAACGTC”, 3)
如果是其他奇怪的角色,请将其替换为:

f = open("kmers.txt")
print(f.read())
st = f.read()
def de_bruijn_ize(st, k):
edges = []
nodes = set()
for i in range(len(st) - k + 1):
    edges.append((st[i:+k-1], st[i+1:i+k]))
    nodes.add(st[i:i+k-1])
    nodes.add(st[i+1:i+k])
return nodes, edges

nodes, edges = de_bruijn_ize(st, 4)
print(nodes)
print(edges)
    nodes, edges = de_bruijn_ize("CCGGTTAAACGTC", 3)

这在Python3中是有效的。我很好奇这些引号是什么。

除了逻辑上的任何错误外,您行中的引号:

f = open("kmers.txt")
print(f.read())
st = f.read()
def de_bruijn_ize(st, k):
edges = []
nodes = set()
for i in range(len(st) - k + 1):
    edges.append((st[i:+k-1], st[i+1:i+k]))
    nodes.add(st[i:i+k-1])
    nodes.add(st[i+1:i+k])
return nodes, edges

nodes, edges = de_bruijn_ize(st, 4)
print(nodes)
print(edges)
    nodes, edges = de_bruijn_ize(“CCGGTTAAACGTC”, 3)
def read(file):
    with open(file) as f:
        text = f.readline().rstrip()
        k = int(f.readline().rstrip())
    return text,k
def edges(str,num):
    i = 0
    edge_list = []
    while i +num <= len(str):
        sub = str[i:i+num]
        edge_list.append(sub)
        i+=1
    print(*edge_list)
def nodes(str,num):
    i = 0
    edge_list = []
    while i+num-1 <= len(str):
        sub = str[i:i+(num-1)]
        edge_list.append(sub)
        i+=1
    print(*edge_list)
text,k = read("L4.txt")
edges(text,k)
nodes(text,k)
如果是其他奇怪的角色,请将其替换为:

f = open("kmers.txt")
print(f.read())
st = f.read()
def de_bruijn_ize(st, k):
edges = []
nodes = set()
for i in range(len(st) - k + 1):
    edges.append((st[i:+k-1], st[i+1:i+k]))
    nodes.add(st[i:i+k-1])
    nodes.add(st[i+1:i+k])
return nodes, edges

nodes, edges = de_bruijn_ize(st, 4)
print(nodes)
print(edges)
    nodes, edges = de_bruijn_ize("CCGGTTAAACGTC", 3)
这在Python3中是有效的。我很好奇这些引用是什么。

def read(文件):
f = open("kmers.txt")
print(f.read())
st = f.read()
def de_bruijn_ize(st, k):
edges = []
nodes = set()
for i in range(len(st) - k + 1):
    edges.append((st[i:+k-1], st[i+1:i+k]))
    nodes.add(st[i:i+k-1])
    nodes.add(st[i+1:i+k])
return nodes, edges

nodes, edges = de_bruijn_ize(st, 4)
print(nodes)
print(edges)
def read(file):
    with open(file) as f:
        text = f.readline().rstrip()
        k = int(f.readline().rstrip())
    return text,k
def edges(str,num):
    i = 0
    edge_list = []
    while i +num <= len(str):
        sub = str[i:i+num]
        edge_list.append(sub)
        i+=1
    print(*edge_list)
def nodes(str,num):
    i = 0
    edge_list = []
    while i+num-1 <= len(str):
        sub = str[i:i+(num-1)]
        edge_list.append(sub)
        i+=1
    print(*edge_list)
text,k = read("L4.txt")
edges(text,k)
nodes(text,k)
打开(文件)为f时: text=f.readline().rstrip() k=int(f.readline().rstrip()) 返回文本,k 定义边(str,num): i=0 边缘列表=[] 当i+num
def读取(文件)时:
打开(文件)为f时:
text=f.readline().rstrip()
k=int(f.readline().rstrip())
返回文本,k
定义边(str,num):
i=0
边缘列表=[]

虽然i+num“和”看起来不像普通的引号,但这里不应该有任何特殊的格式,因为我使用一个简单的文本编辑器来编写代码。我用的是常规的“和”引号。我认为实际上是上面的格式让它们看起来有点滑稽。”和“不像普通的引号这里不应该有任何特殊的格式,因为我使用一个简单的文本编辑器来编写代码。我用的是常规的“和”引号。我想正是上面的格式让它们看起来有点滑稽。首先,谢谢你的帮助。然而,正如我上面所说,我在Mac电脑上使用文本编辑器。我一直在尝试不同的代码。就在昨天,我实际上能够从一个文本文件中打印出我的Kmer列表,而且效果很好。代码没有从任何地方复制和粘贴,是我自己输入的。我已经读了很多书,据我所知,我可以使用文本编辑器,对吗?啊,好吧……我想我必须将它保存为.py文档,以便它读取“和”引号……有人能为我如何在脚本中读取我的Kmer列表添加提示吗?我正在发疯,想弄明白……或者有什么好的建议?你的kmers是什么格式的,csv文件还是其他格式的?它们是txt文件。它们与我的python脚本位于同一文件夹中。我已经能够在我的终端上打印它(我这样做是为了练习),但我需要使用这些kmers并构建Debijn图,作为完成作业的第一步。我一直在做大量的阅读和实验,但我似乎不明白。我不确定你的数据是什么形式的,但是这里有一个打开文件的指南,所以你首先需要像file=open(“kmers.txt”,“r”)这样的东西,谢谢你的帮助。然而,正如我上面所说,我在Mac电脑上使用文本编辑器。我一直在尝试不同的代码。就在昨天,我实际上能够从一个文本文件中打印出我的Kmer列表,而且效果很好。代码没有从任何地方复制和粘贴,是我自己输入的。我已经读了很多书,据我所知,我可以使用文本编辑器,对吗?啊,好吧……我想我必须将它保存为.py文档,以便它读取“和”引号……有人能为我如何在脚本中读取我的Kmer列表添加提示吗?我正在发疯,想弄明白……或者有什么好的建议?你的kmers是什么格式的,csv文件还是其他格式的?它们是txt文件。它们与我的python脚本位于同一文件夹中。我已经能够在我的终端上打印它(我这样做是为了练习),但我需要使用这些kmers并构建Debijn图,作为完成作业的第一步。我一直在做大量的阅读和实验,但我似乎不明白。我不确定您的数据是以什么形式出现的,但这里有一个打开文件的指南,所以您需要类似file=open(“kmers.txt”,“r”)的内容