<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>生信菜鸟团 &#187; 简并碱基</title>
	<atom:link href="http://www.bio-info-trainee.com/tag/%e7%ae%80%e5%b9%b6%e7%a2%b1%e5%9f%ba/feed" rel="self" type="application/rss+xml" />
	<link>http://www.bio-info-trainee.com</link>
	<description>欢迎去论坛biotrainee.com留言参与讨论，或者关注同名微信公众号biotrainee</description>
	<lastBuildDate>Sat, 28 Jun 2025 14:30:13 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.33</generator>
	<item>
		<title>用perl把含有简并碱基的引物序列还原成多条序列-更正</title>
		<link>http://www.bio-info-trainee.com/1528.html</link>
		<comments>http://www.bio-info-trainee.com/1528.html#comments</comments>
		<pubDate>Mon, 11 Apr 2016 10:52:38 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[perl]]></category>
		<category><![CDATA[生信基础]]></category>
		<category><![CDATA[简并碱基]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=1528</guid>
		<description><![CDATA[感谢读者的指正，我以前写的一个程序是错的，从算法设计上就错了！ http://w &#8230; <a href="http://www.bio-info-trainee.com/1528.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>感谢读者的指正，我以前写的一个程序是错的，从算法设计上就错了！</p>
<p><a href="http://www.bio-info-trainee.com/926.html">http://www.bio-info-trainee.com/926.html</a></p>
<p>我从新设计了一个算法，经过再三检查，我可以确信它是对的，至于是否高效，就不敢保证了，也希望有更多热心的读者帮助我改正，或者跟我讨论，请直接联系我的邮箱jmzeng1314  at(防爬虫)  163.com</p>
<p><span id="more-1528"></span></p>
<p>代码如下：</p>
<div dir="ltr">
<blockquote>
<div>while(&lt;DATA&gt;){</div>
<div>chomp;</div>
<div>@F=split/:/;</div>
<div>$hash{$F[0]}=uc $F[1];</div>
<div>} ##这里记录简并碱基的对应关系</div>
<div>## %hash stored the tables;</div>
<div></div>
<div>sub primer2multiple{</div>
<div>$primer=$_[0];</div>
<div>$prod=1;</div>
<div>$primer_len=length $primer ;</div>
<div>foreach $i (0..$primer_len-1){</div>
<div>$char=substr($primer,$i,1);</div>
<div>#$prod*=length $hash{$char} if ($char !~/[ATCG]/) ;</div>
<div>if ($char !~/[ATCG]/) {</div>
<div>push @pos_list,$i;</div>
<div>push @char_list,$hash{$char};</div>
<div>##首先找出所有的不是ATCG的碱基位置以及它对应的碱基</div>
<div>## record all of the positions which are not ATCG;</div>
<div>}</div>
<div>}</div>
<div>@out_list=($primer);</div>
<div>##循环处理每个不是ATCG的碱基位置，让它们根据对应关系扩展</div>
<div>foreach my $i (0..scalar(@pos_list)-1){</div>
<div>@out_list=&amp;new_out_list(\@out_list,$pos_list[$i],$char_list[$i]);</div>
<div>} ##&amp;new_out_list 这个函数非常重要，会把数组不停的扩展，最终达到应该有的个数！</div>
<div>print join"\n",@out_list;</div>
<div>print "\n";</div>
<div>}</div>
<div></div>
<div>sub new_out_list{</div>
<div>my @array = @{$_[0]};</div>
<div>my $pos = $_[1];</div>
<div>my $char = $_[2];</div>
<div>my @new_array=();</div>
<div>foreach my $i (@array){</div>
<div>foreach my $j (0..length($char)-1){</div>
<div>substr($i,$pos,1,substr($char,$j,1));</div>
<div>push @new_array,$i;</div>
<div>}</div>
<div>}</div>
<div>return(@new_array);</div>
<div>}</div>
<div></div>
<div>primer2multiple('ATGCVCGCDCTNCCTGAB');</div>
<div></div>
<div>__DATA__</div>
<div>R:ag</div>
<div>Y:CT</div>
<div>M:AC</div>
<div>K:GT</div>
<div>S:gc</div>
<div>W:AT</div>
<div>H:atc</div>
<div>B:gtc</div>
<div>V:gac</div>
<div>D:GAT</div>
<div>N:ATgc</div>
</blockquote>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/1528.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>用perl把含有简并碱基的引物序列还原成多条序列</title>
		<link>http://www.bio-info-trainee.com/926.html</link>
		<comments>http://www.bio-info-trainee.com/926.html#comments</comments>
		<pubDate>Thu, 30 Jul 2015 01:39:34 +0000</pubDate>
		<dc:creator><![CDATA[ulwvfje]]></dc:creator>
				<category><![CDATA[perl]]></category>
		<category><![CDATA[引物]]></category>
		<category><![CDATA[简并碱基]]></category>

		<guid isPermaLink="false">http://www.bio-info-trainee.com/?p=926</guid>
		<description><![CDATA[这篇博客的程序是错的，请看我最新博客：http://www.bio-info-t &#8230; <a href="http://www.bio-info-trainee.com/926.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>这篇博客的程序是错的，请看我最新博客：<a href="http://www.bio-info-trainee.com/1528.html">http://www.bio-info-trainee.com/1528.html </a></p>
<p>简并碱基对应表格如下；</p>
<pre class="recommend-text mb-10">R:<a class="baidu-highlight " href="https://www.baidu.com/s?wd=ag&amp;tn=44039180_cpr&amp;fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLn179nWbdnW6sPjn1PAnL0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1Rkn1nLPj0z" target="_blank" rel="nofollow">ag</a>
Y:CT
M:AC
K:GT
S:<a class="baidu-highlight " href="https://www.baidu.com/s?wd=gc&amp;tn=44039180_cpr&amp;fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLn179nWbdnW6sPjn1PAnL0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1Rkn1nLPj0z" target="_blank" rel="nofollow">gc</a>
W:AT
H:<a class="baidu-highlight " href="https://www.baidu.com/s?wd=atc&amp;tn=44039180_cpr&amp;fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLn179nWbdnW6sPjn1PAnL0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1Rkn1nLPj0z" target="_blank" rel="nofollow">atc</a>
B:<a class="baidu-highlight " href="https://www.baidu.com/s?wd=gtc&amp;tn=44039180_cpr&amp;fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLn179nWbdnW6sPjn1PAnL0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1Rkn1nLPj0z" target="_blank" rel="nofollow">gtc</a>
V:<a class="baidu-highlight " href="https://www.baidu.com/s?wd=gac&amp;tn=44039180_cpr&amp;fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLn179nWbdnW6sPjn1PAnL0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1Rkn1nLPj0z" target="_blank" rel="nofollow">gac</a>
D:GAT
N:AT<a class="baidu-highlight " href="https://www.baidu.com/s?wd=gc&amp;tn=44039180_cpr&amp;fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLn179nWbdnW6sPjn1PAnL0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1Rkn1nLPj0z" target="_blank" rel="nofollow">gc
把这个文本拷贝到txt文件里面保存好，或者直接写入hash里面也行！</a></pre>
<blockquote>
<p>[perl]</p>
<p>open FH,&quot;ATCG.txt&quot;;</p>
<p>while(&lt;FH&gt;){</p>
<p>chomp;</p>
<p>@F=split/:/;</p>
<p>$hash{$F[0]}=uc $F[1];#右边就是简并表格</p>
<p>}</p>
<p>open FH1,&quot;primer.txt&quot;;</p>
<p>while(&lt;FH1&gt;){</p>
<p>next if /&gt;/;</p>
<p>chomp;</p>
<p>primer2multiple($_); #对每个含有简并碱基的引物都进行以下函数处理</p>
<p>}</p>
<p>sub primer2multiple{</p>
<p>$primer=$_[0];</p>
<p>$prod=1;</p>
<p>$primer_len=length $primer ;</p>
<p>foreach $i (0..$primer_len-1){</p>
<p>$char=substr($primer,$i,1);</p>
<p>if ($char !~/[ATCG]/){$prod*=length $hash{$char}}</p>
<p>}</p>
<p>$new=&quot;&quot;;</p>
<p>foreach $i (0..$primer_len-1){</p>
<p>$char=substr($primer,$i,1);</p>
<p>if ($char =~/[ATCG]/){$new.=$char x $prod}</p>
<p>else {$tmp=length $hash{$char};$new.=$hash{$char} x ($prod/$tmp)}</p>
<p>}</p>
<p>die &quot;error!&quot; if   $primer_len*$prod != length $new ;</p>
<p>foreach $i (0..$prod-1){</p>
<p>$tmp=&quot;&quot;;</p>
<p>for(my $j=$i;$j&lt;(length($new));$j+=$prod){$tmp.=substr($new,$j,1)}</p>
<p>print &quot;$tmp\n&quot;;</p>
<p>}</p>
<p>}</p>
<p>[/perl]</p>
</blockquote>
<p>可以直接调用这个函数即可primer2multiple('ATGCVHGT');</p>
<p>就可以看到简并碱基被替换啦，就是那个V和H</p>
<p>&nbsp;</p>
<p>ATGCGAGT<br />
ATGCATGT<br />
ATGCCCGT<br />
ATGCGAGT<br />
ATGCATGT<br />
ATGCCCGT<br />
ATGCGAGT<br />
ATGCATGT<br />
ATGCCCGT</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/926.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
