手机版777下载里面可以看到漂亮的美女荷关吗,我最近就好这口,嘿嘿?

perl提取序列信息写入Excel表
已有 5077 次阅读
|个人分类:|系统分类:
& & perl一个强大的地方,就是有很多别人写好的模块,可以直接搬过来用,就好像提供了很多现在的工具,找到合适的工具就能解决相应的问题,这里用了一个很强大的专门操作Excel的模块Win32::OLE,可以方便的用perl读写Excel数据,用perl提取genebank格式的序列文件中mRNA信息,然后将筛选结果输出到Excel中,为以后数据库的建立打下基础,程序运行结果如下(有些序列中没有gene_name,所以为空的):程序如下:#!/usr/bin/perluse Win32::OLE;#这个模块可以对Excel进行读写操作my $dir='F:/sequence/';################################################################################################中的内容基本为昨天提取序列信息的程序open F,"$dir".'a.gb';#此文件中装有二千条拟南芥genebank格式的基因序列my @a=&F&;my $i=0;my $my $temp1;my $temp2;my $temp3;my $my $locus_tag_my @b;my @my @mRNA_my @my @CDS_my @my @protein_my @AA_my @CDS_my @mRNA_my @gene_my @tag_my @Gene_my $my $gene_while($i&=$#a){if($a[$i]=~/^LOCUS(\s){7}/){$a[$i]=~s/.*NM_(\d)+//;$a[$i]=~s/(\s)+//g;$a[$i]=~s/bp.*//s;push @mRNA_length,$a[$i];$i++;}elsif($a[$i]=~/DEFINITION(\s)+/){$a[$i]=~s/DEFINITION &//;$a[$i]=~s/\n//;$temp1=$a[$i];$i++;unless($a[$i]=~/ACCESSION(\s)+/){$a[$i]=~s/(\s){11}//;$a[$i]=~s/(\s)+$//;$a[$i]=~s/\n//;$temp2=$a[$i];&& & $temp1=$temp1.$temp2;&& &push @description,$temp1;$i++;}else{push @description,$temp1;$i++;}$temp1='';$temp2='';}elsif($a[$i]=~/VERSION(\s){5}/){$a[$i]=~s/VERSION//;$a[$i]=~s/GI.*//s;& & & &$a[$i]=~s/(\s)+//g;push @accession,$a[$i];$i++;}&elsif($a[$i]=~/\/gene=\"/)&&{&$a[$i]=~s/.*=//;&&$a[$i]=~s/\"//g;&&$a[$i]=~s/(\s)+//g;&&$genename=$a[$i];$i++;& & &}elsif($a[$i]=~/\/locus_tag=/){& & & & $a[$i]=~s/.*=//;&&$a[$i]=~s/\"//g;&&$a[$i]=~s/(\s)+//g;&&$locus_tag_name=$a[$i];$i++;}elsif($a[$i]=~/\/db_xref=\"GeneID:/){$a[$i]=~s/\/db_xref=\"GeneID://;$a[$i]=~s/\"//g;$a[$i]=~s/(\s)+//g;$gene_id=$a[$i];$i++;}elsif($a[$i]=~/^(\s)+CDS(\s)+(\d)+/){&&$a[$i]=~s/CDS//;& & & & &$a[$i]=~s/(\s)+//g; & & && & & & $a[$i]=~s/\n//;&&@b=split/\.\./,$a[$i];&&$temp=int($b[1])-int($b[0])+1;&&$start=int($b[0]);&& & &push @CDS_length,$&&@b=();$i++;}elsif($a[$i]=~/\/product=\"/)&{$a[$i]=~s/\/product=//;$a[$i]=~s/\"//g;$a[$i]=~s/^(\s)+//;$a[$i]=~s/(\s)+$//;$a[$i]=~s/\n//;$temp1=$a[$i];$i++;while(!($a[$i]=~/\/protein_id=/)){$a[$i]=~s/^(\s){21}//;$a[$i]=~s/(\s)+$//;$a[$i]=~s/\n//;$temp2=$a[$i];&& $temp1=$temp1.$temp2;&&$i++;}push @product,$temp1;& & & & &$a[$i]=~s/\/protein_id=//;&& && $a[$i]=~s/\"//g;&& &$a[$i]=~s/(\s)+//g;&& &$a[$i]=~s/\n//;push @protein_id,$a[$i];$i++;&& &$temp1='';$temp2='';&}&elsif($a[$i]=~/\/translation=/){& & & & $a[$i]=~s/\/translation=//;$a[$i]=~s/\"//g;$a[$i]=~s/^(\s)+//;$a[$i]=~s/(\s)+$//;$a[$i]=~s/\n//;$temp1=$a[$i];$i++;while(!($a[$i]=~/ORIGIN/)){$a[$i]=~s/(\s)+//g;$a[$i]=~s/\n//;$a[$i]=~s/\"//;$temp2=$a[$i];&& $temp1=$temp1.$temp2;&& $i++;}push @AA_seq,$temp1; & &&&& && $temp1='';$temp2='';}elsif($a[$i]=~/^ORIGIN(\s){6}/){$i++;&& &while(!($a[$i]=~/\/\//)){$a[$i]=~s/(\s)+//g;$a[$i]=~s/(\d)+//g;$a[$i]=~s/\n//;&& $temp2=$a[$i];&& $temp1=$temp1.$temp2;&& $i++;}$temp3=substr($temp1,$start-1,$temp);push @CDS_seq,$temp3;push @mRNA_seq,$temp1;$temp1='';$temp2='';&}elsif($a[$i]=~/\/\//){push @gene_name,$push @tag_name,$locus_tag_push @Gene_id,$gene_$genename='';$locus_tag_name='';$gene_id=''; & & &&$i++;}else{$a[$i]=~s/.*//$i++;}}##################################################################################将结果输入到Excel表中my $app_xls=Win32::OLE-&new('Excel.Application',sub{$_[0]-&Quit}) or die "Excel初始化失败,你可能没有安装Excel!";$app_xls-&{DisplayAlerts}='False';my $book=$app_xls-&WorkBooks-&A$book-&SaveAs($dir.'A.xls')or die "Save failer";#新建一个Excel表undef $my $src_book=$app_xls-&WorkBooks-&Open($dir.'A.xls');my $src_sheet=$src_book-&Worksheets(1);#当前工作薄为sheet1&&#输入表头信息$src_sheet-&Range("A1:L1")-&{Value}=['Accession','mRNA_length','Gene_id','Gene_name','Locus_tag','CDS_length','Protein_id','Description','Product','CDS_seq','AA_seq','mRNA_seq'];&&my $n=2;#因为第一行输入了表头,所以从第二行开始输出数据for($i=0;$i&=$#$i++){$src_sheet-&Cells($n,1)-&{Value}=$accession[$i];#在第一列输出accession信息$src_sheet-&Cells($n,2)-&{Value}=$mRNA_length[$i];$src_sheet-&Cells($n,3)-&{Value}=$description[$i];$src_sheet-&Cells($n,4)-&{Value}=$Gene_id[$i];$src_sheet-&Cells($n,5)-&{Value}=$gene_name[$i];$src_sheet-&Cells($n,6)-&{Value}=$tag_name[$i];$src_sheet-&Cells($n,7)-&{Value}=$CDS_length[$i];$src_sheet-&Cells($n,8)-&{Value}=$protein_id[$i];$src_sheet-&Cells($n,9)-&{Value}=$product[$i];$src_sheet-&Cells($n,10)-&{Value}=$CDS_seq[$i];$src_sheet-&Cells($n,11)-&{Value}=$AA_seq[$i];$src_sheet-&Cells($n,12)-&{Value}=$mRNA_seq[$i];$n++;}$src_book-&S#保存退出$app_xls-&{DisplayAlerts}='True';undef $src_#消除变量undef $src_##############################################################################&
转载本文请联系原作者获取授权,同时请注明本文来自胡小文科学网博客。链接地址:
上一篇:下一篇:
当前推荐数:0
评论 ( 个评论)
扫一扫,分享此博文
作者的其他最新博文
热门博文导读
Powered by
Copyright &Perl 如何获取当前程序文件的绝对目录? - 查看主题 & Ubuntu中文论坛
&[ 7 篇帖子 ]&
&文章标题 : Perl 如何获取当前程序文件的绝对目录?发表于 :
19:51帖子: 972
送出感谢: 0 次
接收感谢: 0 次
RT谢谢大家的帮助
_________________宪法 写道:第三十五条
中华人民共和国公民有言论、出版、集会、结社、囗囗、示威的自由。以上内容完全是复制粘贴,请自行跨省追捕原作者,谢谢!
&文章标题 : Re: Perl 如何获取当前程序文件的绝对目录?发表于 :
19:51帖子: 972
送出感谢: 0 次
接收感谢: 0 次
已知下面的代码可以做到:代码:#!/usr/bin/perl& &use Cuse File::Bmy $if ($0 =~ m{^/}) {& $cwd = dirname($0);} else {& $cwd = dirname(getcwd().&/$0&);}print &$cwd\n&;但是有没有更简洁的方法?
_________________宪法 写道:第三十五条
中华人民共和国公民有言论、出版、集会、结社、囗囗、示威的自由。以上内容完全是复制粘贴,请自行跨省追捕原作者,谢谢!
&文章标题 : Re: Perl 如何获取当前程序文件的绝对目录?发表于 :
21:55帖子: 58428地址: 长沙
$0 包含正在执行的脚本的文件名 ?
_________________● 鸣学
&文章标题 : Re: Perl 如何获取当前程序文件的绝对目录?发表于 :
19:51帖子: 972
送出感谢: 0 次
接收感谢: 0 次
eexpress 写道:$0 包含正在执行的脚本的文件名 ?$0的值取决于运行程序是输入的路径 (相对路径和绝对路径)我想要的是绝对路径。。。。。。。。。。。。
_________________宪法 写道:第三十五条
中华人民共和国公民有言论、出版、集会、结社、囗囗、示威的自由。以上内容完全是复制粘贴,请自行跨省追捕原作者,谢谢!
&文章标题 : Re: Perl 如何获取当前程序文件的绝对目录?发表于 :
11:46帖子: 84
送出感谢: 0 次
接收感谢: 0 次
`pwd`行不行?
&文章标题 : Re: Perl 如何获取当前程序文件的绝对目录?发表于 :
20:46帖子: 2393地址: 湖南长沙
送出感谢: 0 次
接收感谢: 0 次
这样可以吗:代码:use File::Spec::Functions qw(rel2abs);use File::Basename qw(dirname);print dirname( rel2abs( __FILE__ ) );
&文章标题 : Re: Perl 如何获取当前程序文件的绝对目录?发表于 :
21:55帖子: 58428地址: 长沙
use Cwd qw(abs_path);
_________________● 鸣学
显示帖子 : 全部帖子1天7天2周1个月3个月6个月1年&排序 作者发表时间文章标题 升序降序&
&[ 7 篇帖子 ]&
正在浏览此版面的用户:没有注册用户 和 0 位游客
您 不能 在这个版面发表主题您 不能 在这个版面回复主题您 不能 在这个版面编辑帖子您 不能 在这个版面删除帖子您 不能 在这个版面提交附件
选择一个版面
------------------
公告/注意事项
& &新闻和通知
& &校园社团支持
& && &华东校区
& && &华南校区
& && &华北校区
& && &华中校区
& && &东北校区
& && &西北校区
& && &港澳台校区
& && &国外校区
& &软件推荐
& &非常任务
系统安装区
& &教学和常见问答
& && &课堂教学和培训
& &初学者园地 - 17.04 - Zesty Zapus
& &系统安装和升级
& && &新立得和软件源
& && &Wubi安装讨论
& &启动和引导
& &网卡问题以及网络和拨号
& && &校园网拨号
& &笔记本、UMPC支持
& &手机和平板
& && &Ubuntu移动应用开发
& &常用硬件支持
& &系统架构支持
配置美化区
& &字体美化和中文支持
& && &个人配置文件存放点
& &桌面特效
& &窗口管理器
& &屏幕抓图
& &办公、图像、机械电子设计等
& && &Vim和Emacs
& &因特网相关软件
& &影音多媒体
& &Wine及其分支
& &游戏和游戏模拟器
& &虚拟机和虚拟化
& &其它类软件
& &开源模板库
服务器管理
& &服务器基础应用
& &数据库管理
& &服务器维护和硬件相关
& &Ubuntu VPS
参与Ubuntu开发
& &软件和文档翻译
& &编译或打包
& &Ubuntu错误报告
程序设计区
& &Shell脚本
& &GTK+和QT
& &软件/网站开发
& && &Python/Php/Perl
& && &C/C++/Java
& &内核及嵌入式开发
& &开源小工具
& &Ubuntu 17.10
& &Ubuntu 16.04 LTS
& &Ubuntu 14.04 LTS
& &Ubuntu 12.04 LTS
& &Ubuntu 10.04 LTS
& &老旧版本支持
& && &Ubuntu 15.10
& && &Ubuntu 15.04
& && &Ubuntu 14.10
衍生发行版
& &Ubuntu GNOME
& &Kubuntu
& &Xubuntu & Lubuntu
& &Ubuntu中文衍生版
& && &UbuntuKylin
& &Ubuntu国外衍生版
& && &Mint
& &Ubuntu衍生版制作
& &其它类Unix OS发行版
& && &Arch发行版
& && &Debian发行版
& && &OpenSUSE发行版
& && &Deepin
& &深度PK版
& &Ubuntu故事和感慨
& &Full Circle开源杂志
分享交流区
& &同城交流
& &线下活动专版
& &Ubuntu宣传推广
& &论坛管理
& && && &Ubuntu中文网上商店本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 美女 的文章

 

随机推荐