- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你好,
我尝试编写一个程序,该程序读取包含多个 DNA 序列的 FASTA 格式的文件,识别序列中所有重复的 4-mers(即所有 4-mers 出现多次),并打印出重复的 4-mers以及在其中找到它的序列的标题。 k-mer 只是 k 个核苷酸的序列(例如,“aaca”、“gacg”和“tttt”是 4-mers)。
这是我的代码:
use strict;
use warnings;
my $count = -1;
my $file = "sequences.fa";
my $seq = '';
my @header = ();
my @sequences = ();
my $line = '';
open (READ, $file) || die "Cannot open $file: $!.\n";
while ($line = <READ>){
chomp $line;
if ($line =~ /^>/){
push @header, $line;
$count++;
unless ($seq eq ''){
push @sequences, $seq;
$seq = '';
}
} else {
$seq .= $line;
}
} push @sequences, $line;
for (my $i = 0; $i <= $#sequences+1; $i++){
if ($sequences[$i] =~ /(....)(.)*\g{1}+/g){
print $header[$i], "\n", $&, "\n";
}
}
>NC_001422.1 Enterobacteria phage phiX174 sensu lato, complete genome GAGTTTTATCGCTTCCATGACGCAGAAGTTAACACTTTttttttCGGATATTTCTGATGAGTCGAAAAAT CCCTTACTTGAGGATAtatataAATTATGTCTAATATTCAAACTGGCGCCGAGCGTATGCCGCATGACCT
>NC_001501.1 Enterobacteria phage phiX184 sensu lato, complete genome AACGGCTGGTCAGTATTTAAGGTTAGTGCTGAGGTTGACTACATCTGTTTTTAGAGACCCAGACCTTTTA TCTCACTTCTGTTACTCCAGCTTCTTCGGCACCTGTTTTACAGACACCTAAAGCTACATCGTCAACGTTA TATTTTGATAGTTTGACGGTTAATGCTGGTAATGGTgagagagaGGTTTTCTTCATTGCATTCAGATGGA TCAACGCCGCTAATCAGGTTGTTTCTGTTGGTGCTGATATTGCTTTTGATGCCGACCCTAAATTTTTTGC CTGTTTGGTTCGCTTTGAGTCTTCTTCGGTTCCGACTACCCTCCCGACTGCCTATGATGTTTATCCTTTG
>NC_001622.5 Enterobacteria phage phiX199 sensu lato, complete genome TTCGCTGAATCAGGTTATTAAAGAGTTGCCGAGATATTTATGTTGGTTTCATGCGGATTGGTCGTTTAAA TTGGACTTGGTGGCAAGTCTGCCGCTGATAAAGGAAAGGATAATGACCAAATCAAAGAACTCGTGATTAT CTTGCTGCTGCATTTCCTGAGCTTAATGCTTGGGAGCGTGCTGGTGCTGATGCTTCCTCTGCTGGTATGG TTGACGCCGGATTTGAGAATCAAAAATGTGAGAGAGCTTACTAAAATGCAACTGGACAATCAGAAAGAGA GATGCAAAATGAGACTCAAAAAGAGATTGCTGGCATTCAGTCGGCGACTTCACGCCAGAATACGAAAGAC CAGGTATATGCACAAAATGAGATGCTTGCTTATCAACAGAAGGAGTCTACTGCTCGCGTTGCGTCTATTA TGGAAAACACCAATCTTTCCAAGCAACAGCAGGTTTCCGAGATTATGCGCCAAATGCTTACTCAAGCTCA AACGGCTGGTCAGTATTTTACCAATGACCAAATCAAAGAAATGACTCGCAAGGTTAGTGCTGAGGTTGAC TTAGATGAGTGTTCATCAGCAAACGCAGAATCAGCGGTATGGCTCTTCTCATATTGGCGCTACTGCAAAG
最佳答案
我可能会更像这样解决您的问题:
#!/usr/bin/env perl
use strict;
use warnings;
use Data::Dumper;
#set paragraph mode. Iterate on blank lines.
local $/ = '';
#read from STDIN or a file specified on command line,
#e.g. cat filename_here | myscript.pl
#or myscript.pl filename_here
while ( <> ) {
#capture the header line, and then remove it from our data block
my ($header) = m/\>(.*)/;
s/>.*$//;
#remove linefeeds and whitespace.
s/\s*\n\s*//g;
#use lookahead pattern, so the data isn't 'consumed' by the regex.
my @sequences = m/(?=([atcg]{4}))/gi;
#increment a count for each sequence found.
my %count_of;
$count_of{$_}++ for @sequences;
#print output. (Modify according to specific needs.
print $header,"\n";
print "Found sequences:\n";
print Dumper \@sequences;
print "Count:\n";
print Dumper \%count_of;
#note - ordered, but includes duplicates.
#you could just use keys %count_of, but that would be unordered.
foreach my $sequence ( grep { $count_of{$_} > 1 } @sequences ) {
print $sequence, " => ", $count_of{$sequence},"\n";
}
print "\n";
}
NC_001422.1 Enterobacteria phage phiX174 sensu lato, complete genome
Found sequences:
GAGT => 2
AGTT => 2
TTAT => 2
CATG => 2
ATGA => 3
TGAC => 2
CGCA => 2
AGTT => 2
ACTT => 2
tttt => 3
tttt => 3
tttt => 3
GGAT => 2
GATA => 2
ATAT => 2
TATT => 2
ATGA => 3
TGAG => 2
GAGT => 2
AAAA => 2
AAAA => 2
ACTT => 2
TGAG => 2
GGAT => 2
GATA => 2
tata => 2
tata => 2
TTAT => 2
TATG => 2
ATAT => 2
TATT => 2
GCCG => 2
TATG => 2
GCCG => 2
CGCA => 2
CATG => 2
ATGA => 3
TGAC => 2
foreach my $sequence ( sort { $count_of{$b} <=> $count_of{$a} }
grep { $count_of{$_} > 1 }
keys %count_of ) {
print $sequence, " => ", $count_of{$sequence},"\n";
}
print "\n";
关于regex - 查找 DNA 序列中所有重复的 4 聚体 - Perl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44796788/
程序能实现什么 a.完成gap值的自定义输入以及两条需比对序列的输入 b.完成得分矩阵的计算及输出 c.输出序列比对结果 d.使用matplotlib对得分矩阵路径的绘制 1、实现步骤 1
我有一个DNA序列,我想在DNA序列读取列表中找到它的所有实例,或其任何可能的突变。我正在使用grepl来执行此操作,因为在我使用它的实例中,它比matchPattern快。我使用parLapply将
我正在尝试评估Excel DNA在我的 Excel 插件之一中使用它。我使用 C# 函数 (.NET 4.0),并希望从 Excel 调用这些函数。我感兴趣的原因是,我的插件的用户是非管理员,因此如果
有没有办法访问包含我的 UDF 的单元格?当从不同单元运行具有相同参数的函数时,我需要重置一些缓存。在 exceldna utils 中没有找到合适的东西。 谢谢,亚历克斯 最佳答案 你可以调用 Ex
我有以下 t=5 DNA 字符串: DNA = '''CGCCCCTCTCGGGGGTGTTCAGTAAACGGCCA GGGCGAGGTATGTGTAAGTGCCAAGGTGCCAG TAGTACC
我编写了这个野蛮的脚本来创建字符串的排列,其中在字符串中所有可能的位置组合中包含 n 个(最多 n=4)个 $。我最终将 .replace('$','(\\w)') 用于 dna 搜索序列中的不匹配。
我正在用 Scala 构建一个程序,该程序将使用每个字符 8 位的 txt 文件中存储的 DNA 数据转换为使用每个字符 2 位的文件。 DNA 使用的唯一字符是 T、C、A、G。我想为每个字符使用
我目前正在编写一个脚本来在给定两个序列时创建点图。到目前为止,我可以得到一个可爱的 lil 点图。 The X axis is: >HeaderOfSeq1 X = ATCGTAGCTACGTACGT
所以我对编程非常陌生,并且对任何编程语言都不是很了解。我买了一本关于生物学家编程的书,我摸索出了一些东西。我想:从文件中获取序列并从中查找并提取可变区域。我的代码如下: ** #!/usr/bin/p
我正在尝试创建一个程序,使用以下字典将用户输入的 DNA 序列翻译为 3 个替代蛋白质序列(密码子是键,氨基酸是值): {'TGA': '*', 'GCG': 'A', 'CGA': 'R', 'AT
我必须编写一个函数来打印一段 DNA 的最长回文子串。我已经写了一个函数来检查一段 DNA 本身是否是回文。请参阅下面的函数。 def make_complement_strand(DNA):
我想为一组 DNA 序列生成一个热编码。例如,序列 AGCTCCA 可以以转置方式表示如下。但是下面的代码将以水平方式生成一种热编码,我更喜欢以垂直形式进行编码。谁能帮我? ACGTCCA 10000
错误是: 您尝试打开的文件“ExcelDna.xll”与指定的格式不同 文件扩展名。在打开文件之前确认文件没有损坏并且来自受信任的来源。 最佳答案 是的 - 这正是当 .xll 加载项对 Excel
假设我有一个 DNA 序列。我想得到它的补充。我使用了以下代码,但我没有得到它。我究竟做错了什么 ? s=readline() ATCTCGGCGCGCATCGCGTACGCTACTAGC p=unl
问题可以在这里找到: http://rosalind.info/problems/subs/ 我的问题与下面提供的两个解决方案的性能有关。 1. def indexOfAppearances(st
我一直在尝试为大学做动态规划作业,但到目前为止还没有成功。 问题: 给定一个 DNA 字符串和一个突变位置列表(例如,片段 0 和 2 是突变),找到包含最多突变的最长回文子序列。 输入:0到2000
我正在使用 Excel-DNA 将公式插入大约 40k 行 * 10 列,而且速度非常慢。 XlCall.Excel(XlCall.xlcFormula, myFormula, new ExcelR
我正在使用 Excel-DNA 将公式插入大约 40k 行 * 10 列,而且速度非常慢。 XlCall.Excel(XlCall.xlcFormula, myFormula, new ExcelR
如果函数的 ExcelFunction 属性指定 IsMacroType=true ,则只有 Excel-DNA 才允许对 Excel 的 XLL API 进行多次调用。我不清楚的是为什么简单地将它添
我想编写一个代码来计算序列中的所有三元组。到目前为止,我读了很多帖子,但没有一个对我有帮助。 这是我的代码: def cnt(seq): mydict = {} if len(seq)
我是一名优秀的程序员,十分优秀!