- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我真的不知道如何修复,以便我的代码计算模式在字符串中的一行中出现的最大次数。我尝试过谷歌等,但所有答案并不真正符合我正在寻找的内容。也许我只是在谷歌上搜索错误的东西。无论如何,这是我的问题:
我有一个很长的文本文件,其中包含随机 DNA 序列,我已将其转换为字符串,这样我应该找到某些不同的 DNA 序列并计算每个序列连续出现的最高次数。为了更好地解释问题,我粘贴了我当前尝试使用的代码。
# Opening sequence.txt and making it to a string
seqfile = open(sequence, "r")
seqfile = seqfile.read().replace("\n", "")
# Regex for each STR
pattern1 = r"AGATC"
pattern2 = r"TTTTTTCT"
pattern3 = r"AATG"
pattern4 = r"TCTAG"
pattern5 = r"GATA"
pattern6 = r"TATC"
pattern7 = r"GAAA"
pattern8 = r"TCTG"
# 3 lists to store value for the loop. Whereas outercount is the final value of each amount of STR corresponding data list
outercount = [0, 0, 0, 0, 0, 0, 0, 0]
innercount = [0, 0, 0, 0, 0, 0, 0, 0]
secondcount = [0, 0, 0, 0, 0, 0, 0, 0]
# Looping through the sequence and checking if pattern matches, if it does update secondcounter by 1 and continue...
for i in seqfile:
if re.match(pattern1, seqfile):
secondcount[0] += 1
elif re.match(pattern2, seqfile):
secondcount[1] += 1
elif re.match(pattern3, seqfile):
secondcount[2] += 1
elif re.match(pattern4, seqfile):
secondcount[3] += 1
elif re.match(pattern5, seqfile):
secondcount[4] += 1
elif re.match(pattern6, seqfile):
secondcount[5] += 1
elif re.match(pattern7, seqfile):
secondcount[6] += 1
elif re.match(pattern8, seqfile):
secondcount[7] += 1
# Looping through outercount and checking if certain value at innercount is less than secondcount update values.
for i in outercount:
if secondcount[i] > innercount[i]:
#stop counting
innercount[i] = secondcount[i]
# Reset secondcounts value so that it doesn't continue counting if it is not consecutively
secondcount[i] = 0
# Checking if innercount is greater than outercount, if it is set outercount[i] to equal innercount[i] value
if innercount[i] > outercount[i]:
outercount[i] = innercount[i]
以下是序列文本文件的示例:
TGGTTTAGGGCCTATAATTGCAGGACCACTGGCCCTTGTCGAGGTGTACAGGTAGGGAGCTAAGTTCGAAACGCCCCTTGGTCGGGATTACCGCCAGATCAGATC...
请注意,文字比这多得多,但这仅供引用。因此,在本文中,我应该找到最多 8 个不同的 DNA 序列以及它们连续出现的数量。例如,查找模式 AGATC,然后计算它在一行中出现的最高次数。如果它首先在文本中的某处出现 3 次,然后又出现 6 次,那么我的 AGATC 计数器应该显示为 6,因为它是连续的最高数量。
所以,解释一下我的代码:我有 3 个不同数组的想法,我认为这不是最具可扩展性的解决方案,因为它可以是文本中的 3 或 8 个不同模式。但我认为从最大的金额开始,然后算出其余的可能会更容易。所以我尝试做的是为每个不同的模式创建一个正则表达式,然后检查是否可以在文本中找到每个模式,如果可以,我会将第二个计数列表更新到每个相应的索引。
然后与另一个循环比较 secondarycount[i] 处的金额是否大于 innercount[i] 以及是否将值更新为 innercount,然后重置 secondarycount[i],因为这可能是第二次计数的结束它连续出现的次数,然后如果它稍后再次出现在字符串中,那么它将从 0 开始计数等等...我想代码并不难理解,但是它不起作用所以...XD
有人对我如何实现这个有一些想法吗?
最佳答案
假设一个模式可以连续出现多次,我将按如下步骤计算一个模式在所有序列中的最大连续重复次数。
import re
with open(sequence_file, 'rt') as f:
rows = f.readlines()
patterns = {
re.compile("AGATC"): 0,
re.compile("TCTAG"): 0,
...
}
for r in rows:
for p in patterns:
prev_end = 0
freq = 0
for m in p.finditer(r):
span = m.span()
if span[0] != prev_end:
patterns[p] = max(freq, patterns[p])
freq = 0
prev_end = span[1]
freq += 1
if freq:
patterns[p] = max(freq, patterns[p])
注意:我还没有测试过这段代码。因此,请在使用之前使用已知的输入对其进行测试。
关于python - 计算模式在字符串中连续出现的最大数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59812979/
SQL 和一般开发的新手,我有一个表(COUNTRIES),其中包含字段(INDEX、NAME、POPULATION、AREA) 通常我添加一个客户端(Delphi)计算字段(DENSITY)和 On
我想使用 calc(100%-100px),但在我的 demo 中不起作用由于高度只接受像素,因此如何将此百分比值转换为像素。 最佳答案 以下将为您提供高度: $(window).height();
我正在尝试在 MySQL 中添加列并动态填充其他列。 例如我有一张表“数字”并具有第 1 列、第 2 列、第 3 列,这些总数应填充在第 4 列中 最佳答案 除非我误解了你的问题,否则你不只是在寻找:
我想返回简单计算的结果,但我不确定如何执行此操作。我的表格如下: SELECT COUNT(fb.engineer_id) AS `total_feedback`, SUM(fb.ra
我一直在尝试做这个程序,但我被卡住了,我仍然是一个初学者,任何帮助将不胜感激。我需要程序来做 打印一个 10 X 10 的表格,其中表格中的每个条目都是行号和列号的总和 包含一个累加器,用于计算所有表
这个计算背后一定有一些逻辑。但我无法得到它。普通数学不会导致这种行为。谁能帮我解释一下原因 printf ("float %f\n", 2/7 * 100.0); 结果打印 1.000000 为什么会
我想计算从 0 到 (n)^{1/2} - 1 的数字的 AND每个数字从 0 到 (n)^{1/2} - 1 .我想在 O(n) 中执行此操作时间,不能使用 XOR、OR、AND 运算。 具体来说,
如何在 Excel 中将公式放入自定义数字格式?例如(出于说明目的随机示例), 假设我有以下数据: 输入 输出 在不编辑单元格中的实际数据的情况下,我想显示单元格中的值除以 2,并保留两位小数: 有没
每次我在 Flutter 应用程序中调用计算()时,我都会看到内存泄漏,据我所知,这基本上只是一种生成隔离的便捷方法。我的应用程序内存占用增加并且在 GC 之后永远不会减少。 我已将我的代码简化为仅调
我有数字特征观察 V1通过 V12用于目标变量 Wavelength .我想计算 Vx 之间的 RMSE列。数据格式如下。 每个变量“Vx”以 5 分钟的间隔进行测量。我想计算所有 Vx 变量的观测值
我正在寻找一种使用 C 语言计算文件中未知字符数的简单方法。谢谢你的帮助 最佳答案 POSIX 方式(可能是您想要的方式): off_t get_file_length( FILE *file ) {
我正在使用 Postgres,并且我正试图围绕如何在连续日期跨度中得出第一个开始日期的问题进行思考。例如 :- ID | Start Date | End Date =================
我有一个订单表格,我在其中使用 jQuery 计算插件来汇总总数。 此求和工作正常,但生成的“总和”存在问题。总之,我希望用逗号替换任何点。 代码的基础是; function ($this) {
我在使用 double 变量计算简单算术方程时遇到问题。 我有一个具有 double 属性 Value 的组件,我将此属性设置为 100。 然后我做一个简单的减法来检查这个值是否真的是 100: va
我在这里看到了一些关于 CRC 32 计算的其他问题。但没有一个让我满意,因此是这样。 openssl 库是否有任何用于计算 CRC32 的 api 支持?我已经在为 SHA1 使用 openssl,
当我在PHP日期计算中遇到问题时,我感到惊讶。 $add = '- 30 days'; echo date('Y-m-01', strtotime($add)); // result is 2017-
我正在使用 javascript 进行练习,我编写了这个脚本来计算 2 个变量的总和,然后在第三个方程中使用这个总和!关于如何完成这项工作的任何想法都将非常有用! First Number:
我有一个来自EAC的提示单和一个包含完整专辑的FLAC文件。 我正在尝试制作一些python脚本来播放文件,因为我需要能够设置在flac文件中开始的位置。 如何从CueSheet格式MM:SS:FF转
这个问题已经有答案了: Adding two numbers concatenates them instead of calculating the sum (24 个回答) 已关闭去年。 我有一个
4000 我需要上面字段 name="quantity" 和 id="price" 中的值,并使用 javascript 函数进行计算,并将其显示在字段 id= 中仅当我单击计算按钮时才显示“总
我是一名优秀的程序员,十分优秀!