<?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/%e5%bc%80%e6%ba%90/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/414.html</link>
		<comments>http://www.bio-info-trainee.com/414.html#comments</comments>
		<pubDate>Sat, 21 Mar 2015 11:14:51 +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=414</guid>
		<description><![CDATA[以前的一下perl代码分享 今天去参加了开源中国的一个源创会，感觉好隆重的样子， &#8230; <a href="http://www.bio-info-trainee.com/414.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><b>以前的一下</b><b>perl代码分享</b></p>
<p>今天去参加了开源中国的一个源创会，感觉好隆重的样子，近五百人，BAT的工程师都过来演讲了，可都是数据库相关的， 我一个的都没有听懂，但是茶歇的披萨我倒是吃了不少。</p>
<p>说到开源中国，我想起来了我以前在上面分享的代码，上去看了看，竟然有那么多的访问量了，让我蛮意外的，那些代码完全是我学习perl的历程的真实写照。</p>
<p><a href="http://www.oschina.net/code/list_by_user?id=1990747">http://www.oschina.net/code/list_by_user?id=1990747</a></p>
<p><span id="more-414"></span></p>
<p><a href="http://www.bio-info-trainee.com/wp-content/uploads/2015/03/以前的一下perl代码分享289.png"><img class="alignnone size-full wp-image-422" src="http://www.bio-info-trainee.com/wp-content/uploads/2015/03/以前的一下perl代码分享289.png" alt="以前的一下perl代码分享289" width="554" height="344" /></a></p>
<p>&nbsp;</p>
<p>我抽出几个代码共享给你大家，并简单讲讲。</p>
<p>首先是三行perl代码即可批量下载页面里面所有的图片</p>
<p>[perl]</p>
<p>$html=`curl http://www.u148.net/article/69164.html`;</p>
<p>@img=$html=~m{&lt;img.*?src=&quot;([^&quot;]*)&quot;.*?&gt;}g;</p>
<p>#print &quot;$_\n&quot; foreach @img;这一行代码是注释，出现问题是可以打开看看捕获的下载地址到底是什么</p>
<p>map {`wget $_`} @img;</p>
<p>[/perl]</p>
<p>这个代码非常有用，其实很多浏览器现在也有这个功能，就是批量下载网页所有图片嘛。这个代码也非常简单。主要利用了curl和wget在两个linux自带的命令工具，然后用了匹配找寻源代码里面的图片标签及地址。</p>
<p>然后是根据一个ID列表文件来从一个fasta文件里面挑取符合要求的序列。</p>
<p>其中一个文件是ID列表，一个ID占一行，另一个文件是fasta格式的序列，一行是&gt;开头的标记，该标记下所有行都是该标记的内容，直到下一个&gt;开头的标记</p>
<p>[perl]</p>
<p>#!/usr/bin/perl -w </p>
<p>if( @ARGV != 2  ) </p>
<p>{</p>
<p>    print &quot;Usage: we need two files\n&quot;;</p>
<p>    exit 0;</p>
<p>}</p>
<p> my $ID=shift @ARGV;</p>
<p> my $fasta=shift @ARGV;</p>
<p> open FH1,&quot;&lt;$ID&quot; or die &quot;can not open the file,$!&quot;;</p>
<p>while (&lt;FH1&gt;)</p>
<p>{</p>
<p>chomp;</p>
<p>$hash{$_}=1;</p>
<p>}</p>
<p>#读取第一个参数，ID列表，每一行的ID都扫描进去hash表</p>
<p>open FH2,&quot;$fasta&quot; or die &quot;can not open the file,$!&quot;;</p>
<p>while(defined($line=&lt;FH2&gt;))</p>
<p>{</p>
<p>chomp $line;</p>
<p>if($line =~ /&gt;/)</p>
<p>{</p>
<p>$key = (split /\s/,$line)[0];</p>
<p>$key =~ s/&gt;//g;</p>
<p>$flag = exists $hash{$key}?1:0;</p>
<p>}#这个flag是用来控制这个标记下面的序列是否输出</p>
<p>print $line.&quot;\n&quot; if $flag == 0;</p>
<p>}</p>
<p>[/perl]</p>
<p>这个代码的利用率非常高， 我经常在生物信息的各种数据转换中需要用到这个脚本。</p>
<p>接下来是一个非常有趣的代码，<b>在window平台下自动截屏</b>这个代码严格意义上来讲以及进入黑客的范畴了，因为它可以自动截屏，在电脑主人不在的时候你给他运行这个代码，然后静等结果，想想都觉得很黑！</p>
<p>需要安装两个win32的模块，然后截图很大，是bmp格式，我下一步研究如何转换bmp到png格式</p>
<p>[perl]</p>
<p>use Win32::Clipboard;</p>
<p>use Win32::GuiTest qw/SendKeys/;</p>
<p>while(1)</p>
<p>{</p>
<p>my @time = localtime(time);</p>
<p>my $file = sprintf &quot;20%02d_%d_%d_%d_%d_%d.bmp&quot;, $time[5]%100, $time[4]+1, $time[3], $time[2], $time[1], $time[0];</p>
<p>my ($try_count, $screen) = (30, undef);</p>
<p>    SendKeys('{PRTSCR}');#调用键盘的print_screen这个键</p>
<p>    $screen = Win32::Clipboard::GetBitmap();#print_screen这个键会截图，存储在内存中，然后用这个剪切板来保存文件</p>
<p>if ($screen) {</p>
<p>    open    BITMAP, &quot;&gt; $file&quot; or die;</p>
<p>    binmode BITMAP;</p>
<p>    print  BITMAP $screen; #在这里将截屏的内容写入文件</p>
<p>    close  BITMAP;</p>
<p>    }</p>
<p>sleep(15);</p>
<p>}</p>
<p>[/perl]</p>
<p>如果大家对我的其它代码感兴趣，可以去我的开源中国主页去查询，但是以后我新的代码只会在我自己的网站里面公布了。</p>
<p><a href="http://www.oschina.net/code/list_by_user?id=1990747">http://www.oschina.net/code/list_by_user?id=1990747</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bio-info-trainee.com/414.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
