产生具有替代率的合成DNA序列
给定以下输入: my $init_seq = "AAAAAAAAAA" #length 10 bp my $sub_rate = 0.003; my $nof_tags = 1000; my @dna = qw( A C G T ); 我想生成: 一千个长度10标签 标签中每个位置的替换率为0.003 产生输出,例如: AAAAAAAAAA AATAACAAAA ..... AAGGAAAAGA # 1000th tags 是否有一种紧凑的方法可以在Perl中进行? 我被此脚本的逻辑所困扰: #!/usr/bin/perl my $init_seq = "AAAAAAAAAA" #length 10 bp my $sub_rate = 0.003; my $nof_tags = 1000; my @dna = qw( A C G T ); $i = 0; while ($i
4 2024-01-23
编程技术问答社区
改进DNA排列脱帽的代码设计
这是关于更有效的代码设计的问题: 假设三个对齐的DNA序列(SEQ1,SEQ2和SEQ3;它们是每个字符串),它们代表两个基因(Gene1和Gene2).这些基因的开始和停止位置相对于对齐的DNA序列是已知的. # Input align = {"seq1":"ATGCATGC", # In seq1, gene1 and gene2 are of equal length "seq2":"AT----GC", "seq3":"A--CA--C"} annos = {"seq1":{"gene1":[0,3], "gene2":[4,7]}, "seq2":{"gene1":[0,3], "gene2":[4,7]}, "seq3":{"gene1":[0,3], "gene2":[4,7]}} 我希望从对齐方式中删除差距(即破折号),并维持基因的开始和停止位置的相对关联. # Desired
2 2024-01-23
编程技术问答社区
在两个很长的文本序列中寻找独特集合的快速算法
我需要比较X和Y染色体的DNA序列,并找到Y染色体独有的图案(由约50-75个碱基对组成).请注意,这些序列部分可以在染色体中重复.这需要快速完成(爆炸需要47天,需要几个小时或更短的时间).是否有任何适合这种比较的算法或程序?同样,速度是这里的关键. 我这样做的原因之一是要从特定的应用程序域之外的人那里获得观点,他们可以在每日使用中使用他们在字符串比较中使用的算法,这可能适用于我们的使用.所以不要害羞! 解决方案 构建 suffix树 对于按顺序y的每个启动位置i,请在S中查找字符串y [i..i+75].如果在位置I处始于位置I(即,在J 的长度J字符串 所有启动位置上最小的字符串我是最短的唯一字符串(或者在发现任何此类字符串后停止,如果您对最小化的长度不感兴趣). 总时间:o(| x | + m | y |)其中m是最大字符串长度(例如m = 75). 基于广义后缀树的效率甚至更有效. 其他解决方案 我假设您有一个X和一个Y可以比较.将它们串联成,
2 2024-01-23
编程技术问答社区
如何匹配dna序列模式
我在寻找解决此问题的方法时遇到了麻烦. 输入输出序列如下: **input1 :** aaagctgctagag **output1 :** a3gct2ag2 **input2 :** aaaaaaagctaagctaag **output2 :** a6agcta2ag 输入N序列可以为10^6个字符,将考虑最大的连续模式. 例如,输入2" agctaagcta"输出不会是" agcta2gcta",但它将是" agcta2". 任何帮助. 解决方案 算法的解释: 具有符号s(1),s(2),…,s(n)的序列s. 让b(i)成为具有元素s(1),s(2),…,s(i)的最佳压缩序列. 因此,例如,b(3)将是S(1),S(2),S(3)的最佳压缩顺序. 我们想知道的是b(n). 为了找到它,我们将通过归纳进行.我们想计算B(i+1),了解B(I),B(I-1),B(I-2),…,B(1),B(0),其中B(0)为空
4 2024-01-22
编程技术问答社区
DNA序列的混乱游戏
我尝试了Mathematica代码来制作此地址中发布的DNA序列的混乱游戏: > 这样的: genome = Import["c:\data\sequence.fasta", "Sequence"]; genome = StringReplace[ToString[genome], {"{" -> "", "}" -> ""}]; chars = StringCases[genome, "G" | "C" | "T" | "A"]; f[x_, "A"] := x/2; f[x_, "T"] := x/2 + {1/2, 0}; f[x_, "G"] := x/2 + {1/2, 1/2}; f[x_, "C"] := x/2 + {0, 1/2}; pts = FoldList[f, {0.5, 0.5}, chars]; Graphics[{PointSize[Tiny], Point[pts]}] 我拥有的fasta序列只是一系列字母,例如aactttgatcaaa
26 2023-12-11
编程技术问答社区
如何为一个DNA序列如ATGCCGCTGCGC绘制基因图?
我需要根据病毒的DNA序列生成一个随机行走,鉴于其2K碱基对的碱基对序列.该序列看起来像" atgcgtcgtaacgt".该路径应向右转动,左右t,向上旋转一个G,向下向下供C. 如何将MATLAB,MATHEMATICA或SPSS用于此目的? 解决方案 我以前不知道Mark McClure的该方法可用于产生以下图.只是为了地狱,我(在RHS面板)中包括了用相应的互补DNA链(cDNA)产生的图. 小鼠线粒体DNA (LHS)及其 互补链(cDNA)(RHS). 这些图是由GenBank标识符GI | 342520产生的.该序列包含16295个基础. (Jose ManuelGutiérrez使用的示例之一.如果有人有兴趣,则可以从GI | 1262342生成人类等效的图). 人β球蛋白区域(LHS)及其cDNA(RHS) 由GI | 455025 |生成(这个例子 使用了我的Mark McClure).该序列包含73308基地 有非常有趣的
2 2023-12-11
编程技术问答社区
搜索字符串,允许在字符串的任何位置出现一个不匹配。
我正在使用长度25的DNA序列(请参见下面的示例).我有230,000的列表,需要在整个基因组(弓形虫寄生虫)中查找每个序列.我不确定基因组有多大,但是比230,000个序列更长. 我需要寻找25个字符的每个序列,例如(AGCCTCCCATGATTGAACAGATCAT). 基因组格式为连续字符串,即(CATGGGAGGCTTGCGGAGCCTGAGGGCGGAGCCTGAGGTGGGAGGCTTGCGGAGTGCGGAGCCTGAGCCTGAGGGCGGAGCCTGAGGTGGGAGGCTT....) 我不在乎它在哪里或多少次. 我认为这很简单 - str.find(AGCCTCCCATGATTGAACAGATCAT) ,但是我还可以在任何位置找到一个近距离匹配(不匹配),但只有一个位置,并记录序列中的位置.我不确定如何做到这一点.我唯一能想到的是使用通配符并在每个位置都使用通配符执行搜索.即搜索25次. 例如, AGCCTCCCATGATTG
8 2023-10-03
编程技术问答社区
在 R 中匹配和计算字符串(DNA 的 k-mer
我有一个字符串(DNA序列)列表,包括a,t,c,g.我想找到所有匹配项并插入到表中,其列都是这些DNA字母的所有可能组合(4^k;" k;" k"是每个匹配的长度-K -mer-,并且必须由用户指定),而行表示数量的数字.列表中的顺序匹配. 说我的列表包括5个成员: DNAlst
2 2023-10-02
编程技术问答社区
Python中的密码子生成
我有此代码将DNA字符串转换为密码子列表,然后将此列表转换为具有各自氨基酸的字符串. 但是,当我运行代码和DNA字符串以一对核苷酸(例如CT)而不是三胞胎结束时,代码不会生成氨基酸序列.如您在输出中所看到的. from collections import defaultdict from collections import Counter dna_sequence = "GAGCGTCTGCTCCGTGTATAAGCCACGTCGGAGCT" codons = [dna_sequence[i:i+3] for i in range (0, len(dna_sequence), 3)] print(codons) genetic_code = { "GCG" :"A","GCA" :"A","GCT" :"A","GCC" :"A", "AGG" :"R","AGA" :"R","CGG" :"R", "CGA" :"R","CGT" :
14 2023-10-02
编程技术问答社区
R中的重叠匹配
我已经搜索了,并且能够找到此论坛论坛讨论实现重叠匹配的效果. 我还发现了以下 so 找到执行此任务的索引,但找不到有关在R语言中获取重叠匹配的任何简洁的东西. 我可以在大多数支持的语言中执行此任务(但是,尽管我以其他语言的方式实际执行此操作,但在R中使用perl=T,但没有结果. > x regmatches(x, gregexpr('(?=([AC]C))', x, perl=T))[[1]] [1] "" "" "" "" "" "" "" 同时使用stringi和stringr软件包. > library(stringi) > library(stringr) > stri_extract_all_regex(x, '(?=([AC]C))')[[1]] [1] "" "" "" "" "" "" "" > str_extract_all(x, perl('(?=([AC]C))'))[[1]] [1] "" ""
18 2023-10-01
编程技术问答社区
如何在python中进行子排序?
非常感谢SO社区帮助我解决了我遇到的以前问题.喜欢这里的帮助! 我现在还有另一个问题.我有一个平坦的DNA序列列表,这些序列具有关联的"构造号"和"零件号.字典对象的列表.所有内容都已经按"构造号"进行排序,但是我需要按"零件号"进行排序.(就像在Excel中一样,他们在其中说"第一次由 然后按 _ 排序." 有人知道如何完成此操作吗?到目前为止,我所写的只是这样: primers_list = open('primers-list.csv', 'rU') primers_unsorted = csv.DictReader(primers_list) for row in primers_unsorted: print(row) 到目前为止,输出的子集只是以下内容,用于可视化我正在使用的数据: {' Direction': 'fw primer', ' Construct Number': '1', ' Part Number': '2', 'Prim
18 2023-09-07
编程技术问答社区
我需要在我的文件的头行中搜索一个模式,然后用Perl连接下一行
我的多福斯塔存档以这种格式: >miRNA65 dvex2345 CGATGCTAGATGCTATGACAACGATGCCTCG-G >miRNA60 dvex1234 T-TAA-ACTCATCATCATCATACTCATCATCATCATCAGCATATTAACAAG >miRNA65 dvex2345 T-TAA-ACTTATCATCATCATACTCATCATCATCATCAGCATATTAACAAG 我是Perl的新手,我需要搜索等价'> lines'并加入下一行以加入序列. 我希望上述文件以下输出: >miRNA60 dvex1234 T-TAA-ACTCATCATCATCATACTCATCATCATCATCAGCATATTAACAAG >miRNA65 dvex2345 T-TAA-ACTTATCATCATCATACTCATCATCATCATCAGCATATTAACAAG.CGATGCTAGATGCTATGACAACGATGCCTCG-G 完成此操
6 2023-08-06
编程技术问答社区
Python regex模块模糊匹配:替换计数不符合预期
背景 Python模块 regex 允许模糊匹配. 您可以指定允许数量的替换数(s),插入(i),删除(d)和总错误(e). 比赛结果的fuzzy_counts属性返回元组(0,0,0),其中: match.fuzzy_counts[0] = count for 's' match.fuzzy_counts[1] = count for 'i' match.fuzzy_counts[2] = count for 'd' 问题 删除和插入是按预期的,而不是替换的. 在下面的示例中,唯一的更改是单个字符在查询中删除,但替换计数为6 (7如果删除了最佳匹配选项). 如何计算替换? 我会感激任何人都可以解释这对我的工作方式. >>> import regex >>> reference = "(TATGGGA[CT][GC]AAAG[CT]CT[AC]AA[GA]CCATGTG){s>> query
52 2023-08-06
编程技术问答社区
使用Python从Newick格式中提取分支长度
我在python中有一个列表,该列表由一个以纽克格式写的树组成,如下: ['(BMNH833953:0.16529463651919140688,(((BMNH833883:0.22945757727367316336,(BMNH724182a:0.18028180766761139897,(BMNH724182b:0.21469677818346077913,BMNH724082:0.54350916483644962085):0.00654573856803835914):0.04530853441176059537):0.02416511342888815264,(((BMNH794142:0.21236619242575086042,(BMNH743008:0.13421900772403019819,BMNH724591:0.14957653992840658219):0.02592135486124686958):0.02477670174791116522,BMNH7
66 2023-08-05
编程技术问答社区
字符串中的有效字符
我得到一个字符串,如果有一个或多个无效的字符,则必须返回false,否则为true.警告是我只能内置功能和str操作(例如:in, +,索引,len)和递归.到目前为止,我没有工作: def is_valid_sequence(dna): """ (str) -> bool Return True if and only if the DNA sequence is valid (A, T, C, and G) :param dna: string sequence :return: true or false >>> is_valid_sequence('ATTAC') True >>> is_valid_sequence('FBSSS') False """ valid_seq = 0 if len(dna) == 1 and dna in ['A', 'T', 'C', 'G']: valid_seq += 1 else: return is_va
8 2023-08-02
编程技术问答社区
使用 ggbio 和 ggplot2 为单个基因添加标签
我正在尝试将基因标签添加到我的情节中,以使用GGBIO软件包构成基因组段. 我正在使用autoplot()函数并传递基因组对象. Grange对象具有元数据标签的一列,我希望在每个图形段顶部的生成图上出现. 问题:如何从元数据列中添加标签到GGBIO/GGPLOT2图? 我的代码如下,没有标签,并以g作为基因组对象. autoplot(g) 解决方案 如用户ZX8754所建议GrangeSlist对象的模型. 基本上,关于如何从元数据列向GGBIO图中添加标签的问题的答案将是基于元数据列拆分Granges对象,并将AutoPlot函数与此名称的Grangeslist一起使用.这里的诀窍是事先向Granges对象添加一个额外的列type="exon"以模仿基因/转录模型结构. library(ggbio) library(GenomicRanges) g
10 2023-07-28
编程技术问答社区
R语言中的四种游戏测试
我有(将有)数据,如以下内容: Individual Nuk Name Position Individual.1 Nuk.1 Name.1 Position.1 Ind 1 A Locus_1988 23 Ind 1 A Locus_3333 15 Ind 2 A Locus_1988 23 Ind 2 G Locus_3333 15 Ind 3 G Locus_1988 23 Ind 3 A Locus_3333 15 Ind 4 G Locus_1988 23 Ind 4 - Locus_3333 15 Ind 5 A Locus_1988 23 Ind 5 G Locus_3333 15 Ind 6 G
20 2023-07-22
编程技术问答社区
如何找到一个密码子的特定频率?
我正在尝试在R中发挥功能,该功能可以计算每个密码子的频率. 我们知道,蛋氨酸是一种氨基酸,只能由一组密码子ATG形成,因此在每组序列中的百分比为1.在GGT,GGC,GGA,GGA,GGA,GGA,因此每个密码子出现的百分比为0.25的百分比. 输入将以DNA序列(例如 - atgggtggcggggg)为单位,在密码子表的帮助下,它可以计算输入中每​​次出现的百分比. 请提出使此功能的方法来帮助我. 例如, 如果我的论点是atgtgttgctgg 然后,我的结果是 ATG=1 TGT=0.5 TGC=0.5 TGG=1 R: 的数据 codon
18 2023-07-22
编程技术问答社区
分析 DNA 序列中的串联重复图案
hy py-guys :).由于我在编码界和Python中都是新手,因此我在编码方面没有太多经验,因此将不胜感激.我正在使用DNA序列中的简短串联重复序列,我想拥有一个代码,该代码基于指定基因座的串联基序读取并计数重复的核苷酸. 这是我需要的示例: 串联图案: AGAT,AGAC,[AGAT],gat,[AGAT] 输入: TTAGTTCAGGATAGTAGTTGTTTGGAAGCGCAACTCTCTGAGAAACTTAGTTATTCTCTCATCTATTTAGCTACAGCAAACTTCATGTGACAAAAGCCACACCCATAACTTTTTTCCTCTAGATAGACAGATAGATGATAGATAGATAGATAGATAGATAGATAGATAGATAGATAGATAGATAGATATAGATTCTCTTTCTCTGCATTCTCATCTATATTTCTGTCTTTCTCTTAATTATGGGTAACTCTTAGCCTGCCAGGCTACCATGGA
12 2023-07-21
编程技术问答社区