标签: dna-sequence

存储人类基因组需要多少存储空间?

我正在寻找存储单个人类基因组所需的存储量(MB,GB,TB等).我在维基百科上阅读了一些关于DNA,染色体,碱基对,基因的文章,并且有一些粗略的猜测,但在披露任何内容之前,我想看看其他人如何处理这个问题.

另一个问题是人类DNA中有多少原子,但这对于这个网站来说不合适.

我知道这将是一个近似值,所以我正在寻找能够存储任何人类DNA的最小值.

storage bioinformatics genetics dna-sequence

73
推荐指数
5
解决办法
7万
查看次数

如何绘制DNA序列的基因图表说ATGCCGCTGCGC?

我需要根据病毒的DNA序列生成随机游走,给出其2k碱基对的碱基对序列.序列看起来像"ATGCGTCGTAACGT".路径应向右转为A,向左转为T,向上转为G,向下转向C.如何为此目的使用Matlab,Mathematica或SPSS?

matlab wolfram-mathematica bioinformatics dna-sequence

34
推荐指数
5
解决办法
3754
查看次数

搜索字符串,允许在字符串的任何位置发生一次不匹配

我正在使用长度为25的DNA序列(参见下面的例子).我有一个230,000的清单,需要寻找整个基因组中的每个序列(弓形虫寄生虫).我不确定基因组有多大,但比230,000个序列长得多.

我需要查找每个25个字符的序列,例如,(AGCCTCCCATGATTGAACAGATCAT).

基因组被格式化为连续的字符串,即(CATGGGAGGCTTGCGGAGCCTGAGGGCGGAGCCTGAGGTGGGAGGCTTGCGGAGTGCGGAGCCTGAGCCTGAGGGCGGAGCCTGAGGTGGGAGGCTT ....)

我不关心它被发现的地点和次数,只关注它是否存在.
我认为这很简单 -

str.find(AGCCTCCCATGATTGAACAGATCAT)
Run Code Online (Sandbox Code Playgroud)

但我还要找到在任何位置定义为错误(不匹配)的近距离匹配,但只有一个位置,并记录序列中的位置.我不知道怎么做到这一点.我唯一能想到的是使用通配符并在每个位置使用通配符执行搜索.即,搜索25次.

例如,
AGCCTCCCATGATTGAACAGATCAT
AGCCTCCCATGATAGAACAGATCAT

与位置13处的不匹配密切匹配.

速度不是一个大问题,因为我只做了3次,但如果它很快就会很好.

有些程序可以执行此操作 - 查找匹配项和部分匹配项 - 但我正在寻找一种使用这些应用程序无法发现的部分匹配项.

这是perl的类似帖子,虽然它们只是比较序列而不是搜索连续的字符串:

相关文章

python string pattern-matching string-matching dna-sequence

23
推荐指数
3
解决办法
2万
查看次数

用于在两个非常长的文本序列中查找唯一集的快速算法

我需要比较X和Y染色体的DNA序列,并找到Y染色体独有的模式(由大约50-75个碱基对组成).注意,这些序列部分可以在染色体中重复.这需要快速完成(BLAST需要47天,需要几个小时或更短时间).是否有任何算法或程序特别适合这种比较?同样,速度是关键.

我把它放在SO上的原因之一是从特定应用领域之外的人那里获得视角,他们可以提出他们在日常使用中用于字符串比较的算法,这可能适用于我们的使用.所以不要害羞!

algorithm performance dna-sequence

15
推荐指数
1
解决办法
612
查看次数

如何匹配dna序列模式

我找不到解决这个问题的方法.

输入输出序列如下:

 **input1 :** aaagctgctagag 
 **output1 :** a3gct2ag2

 **input2 :** aaaaaaagctaagctaag 
 **output2 :** a6agcta2ag
Run Code Online (Sandbox Code Playgroud)

输入序列可以是10 ^ 6个字符,并且将考虑最大的连续模式.

例如,对于input2"agctaagcta"输出将不是"agcta2gcta",但它将是"agcta2".

任何帮助赞赏.

algorithm sequence matching dna-sequence

15
推荐指数
2
解决办法
4901
查看次数

R中的重叠比赛

我已经搜索过并且能够找到此论坛讨论以实现重叠匹配的效果.

我还发现了以下SO问题,即找到索引来执行此任务,但是无法找到任何关于在R语言中抓取重叠匹配的简洁信息.

我可以在支持(PCRE)的大多数语言中通过使用正向前端断言执行此任务,同时在先行内部实现捕获组以捕获重叠的匹配.

但是,虽然实际执行此操作的方式与其他语言相同,但perl=T在R中使用时,结果不会产生.

> x <- 'ACCACCACCAC'
> regmatches(x, gregexpr('(?=([AC]C))', x, perl=T))[[1]]
[1] "" "" "" "" "" "" ""
Run Code Online (Sandbox Code Playgroud)

使用stringistringr包都是一样的.

> library(stringi)
> library(stringr)
> stri_extract_all_regex(x, '(?=([AC]C))')[[1]]
[1] "" "" "" "" "" "" ""
> str_extract_all(x, perl('(?=([AC]C))'))[[1]]
[1] "" "" "" "" "" "" ""
Run Code Online (Sandbox Code Playgroud)

执行此操作时应返回的正确结果是:

[1] "AC" "CC" "AC" "CC" "AC" "CC" "AC"
Run Code Online (Sandbox Code Playgroud)

编辑

  1. 我很清楚,regmatches对于捕获的匹配不能很好地工作,但是在regmatches中究竟什么导致了这种行为?为什么没有返回结果?我正在寻找一个有点详细的答案.

  2. stringi和 …

regex string r dna-sequence stringi

14
推荐指数
3
解决办法
1687
查看次数

DNA序列的混沌游戏

我已经尝试了mathematica代码,用于在这个地址中发布DNA序列的混沌游戏:http: //facstaff.unca.edu/mcmcclur/blog/GeneCGR.html

这是这样的:

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]}]
Run Code Online (Sandbox Code Playgroud)

我所拥有的fasta序列只是像AACCTTTGATCAAA这样的字母序列,要生成的图形如下:

在此输入图像描述

代码适用于小序列,但是当我想要放置一个巨大的序列,例如几乎40Mb的染色体时,该程序需要花费大量时间并且只显示黑色方块,因此无法进行分析.是否有可能改进上述代码,以便显示它的方格会更大?,方式必须只是方形单位.感谢您的帮助

wolfram-mathematica dna-sequence fasta chaos

7
推荐指数
1
解决办法
1067
查看次数

改进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]}}
Run Code Online (Sandbox Code Playgroud)

我希望从比对中去除间隙(即破折号)并保持基因起始和终止位置的相对关联.

# Desired output
align = {"seq1":"ATGCATGC", 
         "seq2":"ATGC",
         "seq3":"ACAC"}
annos = {"seq1":{"gene1":[0,3], "gene2":[4,7]},
         "seq2":{"gene1":[0,1], "gene2":[2,3]},
         "seq3":{"gene1":[0,1], "gene2":[2,3]}}
Run Code Online (Sandbox Code Playgroud)

获得所需的输出并不像看起来那么简单.下面我为这个问题写了一些(行编号)伪代码,但肯定有更优雅的设计.

1  measure length of any aligned gene  # take any seq, since all seqs aligned
2  list_lengths = list of gene lengths  # order is important
3  for seq in alignment
4      outseq …
Run Code Online (Sandbox Code Playgroud)

python algorithm optimization dna-sequence

7
推荐指数
1
解决办法
275
查看次数

用取代率生成合成DNA序列

鉴于这些输入:

my $init_seq = "AAAAAAAAAA" #length 10 bp 
my $sub_rate = 0.003;
my $nof_tags = 1000;
my @dna = qw( A C G T );
Run Code Online (Sandbox Code Playgroud)

我想生成:

  1. 一千个长度 - 10个标签

  2. 标签中每个位置的替代率为0.003

产量如下:

AAAAAAAAAA
AATAACAAAA
.....
AAGGAAAAGA # 1000th tags
Run Code Online (Sandbox Code Playgroud)

在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 < length($init_seq)) {
        $roll = int(rand 4) + 1;       # …
Run Code Online (Sandbox Code Playgroud)

algorithm perl bioinformatics dna-sequence

6
推荐指数
1
解决办法
907
查看次数

R中匹配和计数字符串(DNA的k聚体)

我有一个字符串列表(DNA序列),包括A,T,C,G.我想找到所有匹配并插入到表中,其列是这些DNA字母表的所有可能组合(4 ^ k;"k"是每个匹配的长度 - K-mer - 并且必须由用户指定)并且行表示数字在列表中按顺序匹配.

让我们说我的名单包括5名成员:

DNAlst<-list("CAAACTGATTTT","GATGAAAGTAAAATACCG","ATTATGC","TGGA","CGCGCATCAA")
Run Code Online (Sandbox Code Playgroud)

我想要套装k=2(2-mer),所以4^2=16组合可用,包括AA,AT,AC,AG,TA,TT,...

所以我的桌子会有5 rows16 columns.我想计算我的k-mers和列表成员之间的匹配数量.

我想要的结果: df:

lstMemb AA AT AC AG TA TT TC ...
  1     2  1  1  0  0  3  0
  2       ...
  3
  4
  5
Run Code Online (Sandbox Code Playgroud)

你能帮我在R中实现吗?

regex string r dna-sequence

6
推荐指数
4
解决办法
2709
查看次数