【发布时间】:2018-12-19 03:53:42
【问题描述】:
Hy Py-guys :)。由于我是编码世界和 Python 的新手,因此我没有太多编码经验,因此将不胜感激。我正在处理 DNA 序列中的短串联重复序列,我想要一个代码,可以根据指定基因座的串联基序读取和计算重复核苷酸。
这是我需要的示例:
串联主题:
AGAT,AGAC,[AGAT],gat,[AGAT]
输入:
TTAGTTCAGGATAGTAGTTGTTGGAAGCGCAACTCTCTGAGAAACTTAGTTATTCTCTCATCTATTTAGCTACAGCAAACTTCATGTGACAAAAGCCACACCCATAACTTTTTTCCTCTAGATAGACAGATAGATGATAGATAGATAGATAGATAGATAGATAGATAGATAGATAGATAGATAGATATAGATTCTCTTTCTCTGCATTCTCATCTATATTTCTGTCTTTCTCTTAATTATGGGTAACTCTTAGCCTGCCAGGCTACCATGAAAGAp>
分析输入:
TTAGTTCAGGATAGTAGTTGTTGGAAGCGCAACTCTCTGAGAAACTTAGTTATTCTCTCATCTATTTAGCTACAGCAAACTTCATGTGACAAAAGCCACACCCATAACTTTTTTCCTCTAGATAGACAGATAGATGATAGATAGATAGATAGAGATAGATAGATAGATAGATAGATAGATAGATAGATATAGATTCTCTTTCTCTGCATTCTCATCTATATTTCTGTCTTTCTCTTAATTATGGGTAACTCTTAGCCTTAGAGp
输出:
AGAT AGAC (AGAT)2 GAT (AGAT)12
- 份数。 (在输出中 GAT 是大写的,即使它不计算在内,即描述)
等位基因:16个
- 每个主题的总副本数 (1 + 1 + 2 + 12)
说明
每个基因座的串联基序不同,因此我需要为每个基因座手动指定它(总共约 130 个基因座)。
所以在这种情况下,整个主题以AGAT 开头,以AGAT 的最后一个副本结束
在串联基序中指定的那些之间没有未知核苷酸(A/C/T/G),并且应该忽略该定义的基序之前和之后的所有内容
如您所见,当串联基序中有以小写字母 (gat) 书写的核苷酸时,它们不包含在最终等位基因值中
括号中的那些图案,可以重复多次
那些不在括号中的——它们在序列中只有一个副本
也可能有这种情况:
串联主题:
[CTAT],CTAA,[CTAT],N30,[TATC]
输入:
TTTGCATGATCTCTTCTTGATCATTTTCTTCCCCCTTTCCTAAAAAATTCTGGTCCTTTGAGGTAACTGCCATTACCATATGAGTTAGTCTGGGTTCTCCAGAGAAACAGAACCAATAGGCTATCTATCTAACTATCTATCTATCTATCTATCTATCTATCTATCTATCTATCTATCTATCTACTATCTCTATATTATCTATCTATCTATTATCTATCTATCTATCTATCTATCTATCTATCTATCTATCTATCTATCTATCATCTATCTATATCTTCTACCAAGTGATTTACTGTAATAAATTAGCTCATGCTATTATGGAGGATGAGTTCAAGATTTGTGGTCAGCAAGTTGCAGACTCA P>
分析输入:
TTTGCATGATCTCTTCTTGATCATTTTCTTCCCCCTTTCCTAAAAAATTCTGGTCCTTTGAGGTAACTGCCATTACCATATGAGTTAGTCTGGGTTCTCCAGAGAAACAGAACCAATAGG的 CTATCTATCTAACTATCTATCTATCTATCTATCTATCTATCTATCTATCTATCTATCTATCTACTATCTCTATATTATCTATCTATCTATTATCTATCTATCTATCTATCTATCTATCTATCTATCTATCTATCTATCTATC 强> ATCTATCTATATCTTCTACCAAGTGATTTACTGTAATAAATTAGCTCATGCTATTATGGAGGATGAGTTCAAGATTTGTGGTCAGCAAGTTGCAGACTCA P>
输出:
(CTAT)2 CTAA (CTAT)12 (TATC)13
等位基因:28
- (2+1+12+13)
说明
N30 表示在最终串联重复之前有 30 个未指定的核苷酸
总结
基序中可以有这些类型,需要定义,每个位点会有不同的基序组合:
方括号:示例 [CTAT] – CTAT 的多个副本
无括号:示例 CTAT - 只有一份 CTAT 副本
N#:示例 N30 - 表示 30 个未指定的核苷酸 (A/C/G/T)
小写:示例 ctat - 表示这些不包括在最终等位基因编号中
真实图案示例:
[CTTT],TT,CT,[CTTT]
[TCTA],[TCTG],[TCTA],ta,[TCTA],tca,[TCTA],tccata,[TCTA],TA,[TCTA]
[TAGA],[CAGA],N48,[TAGA],[CAGA]
[AAGA],[AAGG],[AAGA]
还有更多……
提前谢谢大家。任何帮助和想法将不胜感激! :)
【问题讨论】:
-
您需要使用您在
tandem motif中指定的格式(例如:您正在从其他地方读取它们)或者您可以更改格式?你用的是python3吗? -
可以更改。它通常像我介绍的那样使用,但是对于编码,可以根据需要对其进行修改:)。是的,我有 Python3。
-
一个有 4 个字母的等位基因(例如:ACAT)的值为 1?
-
是的,主题中的每个“项目”都计为 1,除了小写字母、带有 N## 的那些以及添加 0,1 - 0,3 的那些,我猜这些将是最有问题的。通常他们有 4 个字母,但也有案例,有 3 个字母和 5 个字母。所以有时 3 个字母的图案算作 1,有时它们会加上 0,3 :/
-
..... 使其更简单:当图案有 4 个字母的“项目”计为 1 时,如果该图案中还有 3 个字母的项目则计为 0, 3. (例如:[TCTA],TCA,[TCTA])但是当主题有 3 个字母的“项目”时,这些都算作 1(例如:[CCT],CTT,[TCT],CCT,[TCT])。我希望这是有道理的:D
标签: python regex dna-sequence