- 浏览: 224658 次
- 性别:
- 来自: 天朝帝都
文章分类
最新评论
-
hanmiao:
CSDN 博客地址是这個?http://blog.csdn.n ...
将博客搬至CSDN -
chenwq:
下载了,谢谢分享!
R语言学习入门 -
bbsunchen:
今天跟英姐聊天,她verbal考了151,不够啊,数学也不高。 ...
跟我一起考GRE(三) -
bbsunchen:
qinger说得对我今年只做三件事情:考好GRE,考好TOEF ...
IT行业成功必备的素质 -
bbsunchen:
还有8天就考试了,哥还在过单词啊
跟我一起考GRE(三)
这个程序,用perl语言实现了RNA序列翻译蛋白质序列的过程。
考虑了AG GU alternative splicing influence and start coden, stop coden
统计了RNA序列可生产蛋白质长度
引用请注明出处
#!/usr/bin/perl -w # Program name: statProtein_splicing.pl # Author : sunchen # Contact : bbsunchen@gmail.com # Date : 10/22/2011 # Last Update : 10/27/2011 # Reference : Please cite our following papers when you are using this script. # Description : #=============================================================================================================== use warnings; use strict; use Getopt::Long; #my %opts; #GetOptions(\%opts,"dir:s"); #my $usage= <<"USAGE"; # Program: $0 # INPUT: # -dir full path of file # OUTPUT: #USAGE #die $usage unless ($opts{dir} && -e $opts{dir}); #open DIR, $opts{dir}; #create a hash table contain the coden and Aa my %Aa= ( "UUU"=>"F", "UUC"=>"F", "UUA"=>"L", "UUG"=>"L", "CUU"=>"L", "CUC"=>"L", "CUA"=>"L", "CUG"=>"L", "AUU"=>"I", "AUC"=>"I", "AUA"=>"I", "AUG"=>"START", "GUU"=>"V", "GUC"=>"V", "GUA"=>"V", "GUG"=>"V", "UCU"=>"S", "UCC"=>"S", "UCA"=>"S", "UCG"=>"S", "CCU"=>"P", "CCC"=>"P", "CCA"=>"P", "CCG"=>"P", "ACU"=>"T", "ACC"=>"T", "ACA"=>"T", "ACG"=>"T", "GCU"=>"A", "GCC"=>"A", "GCA"=>"A", "GCG"=>"A", "UAU"=>"Y", "UAC"=>"Y", "UAA"=>"END", "UAG"=>"END", "CAU"=>"H", "CAC"=>"H", "CAA"=>"Q", "CAG"=>"Q", "AAU"=>"N", "AAC"=>"N", "AAA"=>"K", "AAG"=>"K", "GAU"=>"D", "GAC"=>"D", "GAA"=>"E", "GAG"=>"E", "UGU"=>"C", "UGC"=>"C", "UGA"=>"END", "UGG"=>"W", "CGU"=>"R", "CGC"=>"R", "CGA"=>"R", "CGG"=>"R", "AGU"=>"S", "AGC"=>"S", "AGA"=>"R", "AGG"=>"R", "GGU"=>"G", "GGC"=>"G", "GGA"=>"G", "GGG"=>"G", ); open DIR, "<E:/lab/4_AUG"; open OUT, ">E:/lab/out.txt"; my $protein = 0; my $coden = 0; my @array; my $array_len = 0; my $if_exist = 0;#$if_exist my $seq = ""; my $start_point = 0; my $end_point = 0; my $order = 0; my @coden_size; sub detect_protein { if($if_exist == 1) { goto END_OF_SUB; } $coden = 0; my($string) = @_; @array=split "", $string; $array_len = @array; my $position = -1; $position = index($string,"AUG"); my $if_start = 0; my $to_print = ""; if($position == -1) { goto END_OF_SUB; }else { $to_print = $to_print."M"; $if_start = 1; $coden++; } my $pro = ""; for(my $i = $position+3; $i < $array_len-2; $i=$i+3) { $pro = $array[$i].$array[$i+1].$array[$i+2]; #print OUT $pro."\n"; #print OUT $Aa{$pro}."\n"; if($Aa{$pro} eq "START") { $coden++; $to_print = $to_print."M"; }elsif($Aa{$pro} eq "END") { $if_start = 2; $to_print = $to_print."\n"; $coden++; last; }else { $coden++; $to_print = $to_print.$Aa{$pro}; } } if($if_start == 1) { $to_print = $to_print."\n"; } if($if_start==2 && $if_exist == 0) { $protein++; $if_exist = 1; #print OUT $order."\n"; if($coden == 72) { print $to_print."\n"; } #print OUT $to_print; $coden_size[$coden]++; #print OUT $string."\n"; } END_OF_SUB: } while(<DIR>) { $order ++; $seq = $_; $if_exist = 0; my $splicing_site_ag = 0; $splicing_site_ag = index($seq,"AG"); my @ag_site=(); push(@ag_site,$splicing_site_ag); while($splicing_site_ag != -1) { #print "$splicing_site_ag\n"; $splicing_site_ag = index($seq,"AG",$splicing_site_ag+2); push(@ag_site,$splicing_site_ag); } my $splicing_site_gu = 0; $splicing_site_gu = rindex($seq,"GU"); my @gu_site=(); push(@gu_site,$splicing_site_gu); while($splicing_site_gu != -1) { #print "$splicing_site_gu\n"; $splicing_site_gu = rindex($seq,"GU",$splicing_site_gu-1); if($splicing_site_gu != -1 && defined($splicing_site_gu)) { push(@gu_site,$splicing_site_gu); }else { last; } } for(my $j = 0; $j < @ag_site;$j++) { if($ag_site[$j] > 270) { last; } if($if_exist == 1) { last; } for(my $k = @gu_site-1; $k >= 0;$k--) { #print JK "J:$ag_site[$j]##########K:$gu_site[$k]\n"; #print OUT "$ag_site[$j] < $gu_site[$k]\n"; if($ag_site[$j] < $gu_site[$k]) { if(($gu_site[$k] - $ag_site[$j] - 2) >= 30) { my $substr = substr($seq, $ag_site[$j]+2, $gu_site[$k] - $ag_site[$j] - 2); #print OUT2 "$substr\n"; my @sub_array = split "",$substr; my $final_length = @sub_array; detect_protein($substr); last; } } } } } for(my $i = 0; $i < @coden_size; $i++) { print "$i\n"; } print "###########################################\n"; for(my $i = 0; $i < @coden_size; $i++) { if(defined($coden_size[$i])) { print "$coden_size[$i]\n"; }else { print "0\n"; } } close DIR; close OUT;
发表评论
-
pan-genome analysis sample code
2012-12-25 12:50 1033This is a C++ demo for pan-geno ... -
绦虫基因组研究方法
2012-12-21 21:21 898今天跟一个同学讨论了绦虫基因组研究方法,同时我也看到一些同学在 ... -
PyDev,在Eclipse中运行python
2012-04-20 10:38 2319最近学python做高精度运算。 虽然网上有很多高精度运算的 ... -
并行计算的强大
2012-04-17 10:36 1495最近在处理一批数据,10的8次方,处理完毕大概要一个月,并且这 ... -
生物信息学工具使用的经验之谈
2012-01-16 18:08 1480荣耀归于上帝, ... -
如何保持开放的头脑
2012-01-07 15:14 1014世界向我打开一扇大门,我却选择转过身,背对这个世界。 ... -
ortholog/inparalog/coortholog
2012-01-04 16:52 1760Homologs which originat ... -
非root权限用户安装perl模块
2012-01-04 09:36 3043网上有很多说非root权限怎么安装perl模块的帖子,我觉 ... -
非root权限安装perl
2012-01-03 21:18 1609在使用Linux或是unix ... -
运行interproscan/iprscan会遇到的问题
2012-01-01 21:28 15871. 运行iprscan的时候,一般需要根据机器的能力和安装i ... -
Interproscan性能测试
2011-12-28 20:50 1576interproscan的安装和运行,很多网站都有介绍,这里主 ... -
华大的生物信息培训教材
2011-12-19 15:45 1228LOL... -
PAML中文文档/计算分子进化
2011-12-12 16:14 2724先说PAML中文文档,PA ... -
Qt程序在windows下的发布
2011-12-02 14:21 1507这个问题,其实 Qt 的 manual 中解释的已经比较 ... -
【原创】用C++(QT)写跨平台GUI详解
2011-12-02 10:53 2350你还不知道什么是Qt?... ...什么?你还不知道C++能快 ... -
数据可视化之美
2011-12-01 20:08 2245最近越来越对数据可视化感兴趣了,正因为此我学习了R,excel ... -
Perl也可以读写excel哦
2011-12-01 15:32 1651perl 里面用Spreadsheet::WriteExcel ... -
R语言学习入门
2011-12-01 15:28 2833R语言是很多统计学和数据可视化的常用工具。 R语言也是生物信 ... -
R语言绘制heatmap热图
2011-11-22 10:40 16004介绍如何使用 R 绘制 heatmap 的文章。 今天无意间 ... -
使用Vienna RNA进行RNA二级结构预测
2011-11-07 15:50 3081现在比较准确,比较流行的RNA二级结构预测软件就是Vi ...
相关推荐
统计分词数 perl程序 hash表取词 用贝叶斯算概率
perl实现报表功能
使用perl的基本函数实现下载百度top100的歌曲到本地。
用 perl 实现文件上传
用perl 统计日志信息
《使用perl实现系统管理自动化.第二版(中文版)》不仅提供了可用于工作的恰当工具,还给出了许多建议,帮助你解决特定问题以及安全地自动处理重复事务。 这一版的“水獭书”经过更新和扩充,涵盖了最新的操作系统、...
perl 实现的rpc-server源码 有POE技术
搜索分词:perl实现代码,perl代码
用PERL实现一个简单的NIDS 用PERL实现一个简单的NIDS
使用Perl实现系统管理自动化(第二版) 中文版
用perl语言实现统计学生成绩 Nol 25 Ben 76 Clementine 49 Norm 66 Chris 92 Doug 42 Carol 25 Ben 12 Clementine 0 Norm 67
perl实现的中文词性标注 读入按“中国/n 人民/n”方式分好词的文件训练 再读入分词文件测试 输出标好词性的文件
perl脚本perl脚本perl脚本perl脚本
轻松学用Perl(perl for dummies中文翻译版) 通俗易懂的perl语言入门
perl实现多线程详解[整理].pdf
文档包括Linux系统中用 Perl 实现的有用单行程序, 适合用于无法用简单shell语句完成的命令. 包括文本处理, 系统命令, 字符串处理... 比如: # 判断一个数是否是质数: perl -lne '(1x$_) !~ /^1?$|^(11+?)\1+$/ && print
文档包括Linux系统中用 Perl 实现的有用单行程序, 适合用于无法用简单shell语句完成的命令. 包括文本处理, 系统命令, 字符串处理等. 比如: # 判断一个数是否是质数: perl -lne '(1x$_) !~ /^1?$|^(11+?)\1+$/ && ...
它包括perl二进制文件,编译器(gcc)+相关工具,所有外部库(加密,数学,图形,xml等),所有捆绑的数据库客户端以及对Strawberry Perl的期望。 在Linux和大多数类似UNIX的系统(包括Mac OS X)下,perl与系统...
Perl DBI手册中文翻译版 pdf,Perl DBI中文帮助文档,内容涉及Perl DBI名称、概述、描述、DBI类、处理器通用方法、通用属性、DBI数据库处理对象、数据库处理方法等。
Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0版本,Perl-5.10.0...