gpt4 book ai didi

julia - 你如何在一个序列中找到多个 'motifs' 的第一个索引?

转载 作者:行者123 更新时间:2023-12-01 23:12:45 25 4
gpt4 key购买 nike

我正在学习 Julia,但在 R 之外的编程经验相对较少。我直接从 rosalind.info 解决这个问题,你可以找到它 here如果您想了解更多详细信息。

我给了两个字符串:一个基序和一个序列,其中基序是序列的一个子串,我的任务是找出子串起始位置的索引,无论它在序列中出现了多少次.

例如:

序列:“GATATATGCATATACTT”

主题:“ATAT”

ATAT 被发现三次,一次从索引 2 开始,一次从索引 4 开始,一次从索引 10 开始。这是假设从 1 开始的索引。所以最终输出将是:2 4 10

这是我目前所拥有的:

f = open("motifs.txt")
stream = readlines(f)

sequence = chomp(stream[1])
motif = chomp(stream[2])

println("Sequence: $sequence")
println("Motif: $motif")

result = searchindex(sequence, motif)
println("$result")

close(f)

我的主要问题似乎是没有 searchindexall 选项。当前的脚本给了我第一次遇到主题的第一个索引(索引 2),我尝试了各种 for 循环,但都没有成功结束,所以我希望有人能给我一些见解对此。

最佳答案

这是一种使用 while 循环的解决方案:

sequence = "GATATATGCATATACTT"
motif = "ATAT"

function find_indices(sequence, motif)
# initalise empty array of integers
found_indices = Array{Int, 1}()

# set initial values for search helpers
start_at = 1

while true
# search string for occurrence of motif
result = searchindex(sequence, motif, start_at)

# if motif not found, terminate while loop
result == 0 && break

# add new index to results
push!(found_indices, result-1+start_at)
start_at += result + 1
end

return found_indices
end

这给了你想要的:

>find_indices(sequence, motif)
2
4
10

关于julia - 你如何在一个序列中找到多个 'motifs' 的第一个索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36427980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com