- 浏览: 231730 次
- 性别:
- 来自: 天朝帝都
文章分类
最新评论
-
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 1069This is a C++ demo for pan-geno ... -
绦虫基因组研究方法
2012-12-21 21:21 973今天跟一个同学讨论了绦虫基因组研究方法,同时我也看到一些同学在 ... -
PyDev,在Eclipse中运行python
2012-04-20 10:38 2404最近学python做高精度运算。 虽然网上有很多高精度运算的 ... -
并行计算的强大
2012-04-17 10:36 1547最近在处理一批数据,10的8次方,处理完毕大概要一个月,并且这 ... -
生物信息学工具使用的经验之谈
2012-01-16 18:08 1559荣耀归于上帝, ... -
如何保持开放的头脑
2012-01-07 15:14 1218世界向我打开一扇大门,我却选择转过身,背对这个世界。 ... -
ortholog/inparalog/coortholog
2012-01-04 16:52 1836Homologs which originat ... -
非root权限用户安装perl模块
2012-01-04 09:36 3098网上有很多说非root权限怎么安装perl模块的帖子,我觉 ... -
非root权限安装perl
2012-01-03 21:18 1664在使用Linux或是unix ... -
运行interproscan/iprscan会遇到的问题
2012-01-01 21:28 16391. 运行iprscan的时候,一般需要根据机器的能力和安装i ... -
Interproscan性能测试
2011-12-28 20:50 1632interproscan的安装和运行,很多网站都有介绍,这里主 ... -
华大的生物信息培训教材
2011-12-19 15:45 1263LOL... -
PAML中文文档/计算分子进化
2011-12-12 16:14 2788先说PAML中文文档,PA ... -
Qt程序在windows下的发布
2011-12-02 14:21 1571这个问题,其实 Qt 的 manual 中解释的已经比较 ... -
【原创】用C++(QT)写跨平台GUI详解
2011-12-02 10:53 2399你还不知道什么是Qt?... ...什么?你还不知道C++能快 ... -
数据可视化之美
2011-12-01 20:08 2304最近越来越对数据可视化感兴趣了,正因为此我学习了R,excel ... -
Perl也可以读写excel哦
2011-12-01 15:32 1691perl 里面用Spreadsheet::WriteExcel ... -
R语言学习入门
2011-12-01 15:28 2895R语言是很多统计学和数据可视化的常用工具。 R语言也是生物信 ... -
R语言绘制heatmap热图
2011-11-22 10:40 16103介绍如何使用 R 绘制 heatmap 的文章。 今天无意间 ... -
使用Vienna RNA进行RNA二级结构预测
2011-11-07 15:50 3217现在比较准确,比较流行的RNA二级结构预测软件就是Vi ...
相关推荐
BLOSUM62是一个经过统计分析的矩阵,它给出了不同氨基酸之间替换的得分,用于衡量蛋白质序列的相似性。 在序列比对中,打分矩阵的使用至关重要。比对的目标是找出两个序列中最可能的对应关系,以揭示它们的相似性和...
2. 序列操作:Perl提供了丰富的字符串处理功能,使得对DNA、RNA和蛋白质序列的分析变得简单。例如,可以方便地进行序列比对、翻译、寻找编码区域等。 3. 脚本自动化:在生物信息学中,常常需要执行一系列重复性的...
- **4.7 蛋白质、文件和数组**:讨论如何使用Perl处理蛋白质数据,以及如何操作文件和数组。 - **4.8 读取蛋白质文件**:提供示例代码展示如何从文件中读取蛋白质数据。 - **4.9 数组**:深入讲解Perl中的数组...
- **Perl概念**:书中还介绍了实现解决方案所需的Perl编程概念,包括数据结构、控制流等。 2. **序列比对** - **Pairwise Sequence Alignment**(两两序列比对):介绍了如何通过动态规划算法来进行两个序列之间...
随机化是生物信息学中常用的技术之一,可用于模拟基因突变、生成随机DNA序列以及进行统计分析。书中提供了具体的示例程序,演示了如何在Perl中使用随机数生成器。此外,还讲解了如何构建和分析遗传密码,使用哈希表...
**定义:** 生物信息学是一门综合计算机科学、生物学、数学以及统计学等多个领域的交叉学科。它主要关注于对生物数据进行收集、处理、存储、分析和解释的方法和技术。随着高通量测序技术的发展,大量的生物数据被...
- **案例1:序列比对**:介绍如何使用Perl进行DNA或蛋白质序列的比对,这在进化关系研究和功能预测中非常重要。 - **案例2:微阵列数据分析**:展示了如何利用Perl处理大规模的基因表达数据,包括数据清洗、统计...
例如,我们可以编写一个Perl脚本来搜索SWISS-PROT格式的数据库,通过用户输入的ID码找到特定的蛋白质序列。下面是一个简单的示例: ```perl #!/usr/bin/perl # Look for aminoacid sequence in a database # SWISS-...
这个工具集可能包含了一系列的Perl脚本来处理这些数据,例如对原始测序数据进行质量检查、过滤、比对、变异检测、注释等步骤。 在实际操作中,使用这些工具通常会涉及以下步骤: 1. **质量控制**:使用FastQC等工具...
标题 "gdc_download_20180802_005928.tar_mRNAmerge_merge_mrna_Perl_" 提供的信息表明,这是一个与基因表达数据分析相关的项目,具体涉及的是mRNA(信使核糖核酸)数据的处理。在生物信息学中,mRNA数据通常来源于...
- 例如,`Bio::Seq`是一个接口对象,`Bio::Seq::RichSeq`则是一个实现了`Bio::Seq`接口的具体类。 #### III. 使用BioPerl - **访问序列数据:** - **远程数据库访问:** 通过`Bio::DB::GenBank`等模块可以从NCBI...
Samtools是一个用于处理SAM和BAM文件的开源工具包,它提供了查看、操作和分析这些文件的能力,包括排序、索引、统计、比对查询等。因此,为了运行这些Perl脚本,用户需要先安装Perl和Samtools。 在“utilities-...
在提供的"Calculate_SS"压缩包中,很可能包含了一个实现这一功能的程序,可能用Python、Perl或R等编程语言编写。用户需要按照文档指示运行该程序,输入相应的PDB文件路径,然后程序将自动生成统计结果。 在实际应用...
例如,按 IP 地址查找主机名,按身份证号找出姓名,按单词统计其出现次数,按基因名查找 ORF,按蛋白质 ID 查找氨基酸序列或结构等等。 2. 哈希赋值 哈希赋值类似于数组,不同的是用于赋值的列表是一些“键 / 值”...
生物信息学是生物学与计算机科学的交叉学科,它利用计算机和统计方法来处理生物数据,尤其是在基因组、蛋白质组和进化分析方面。 描述中提到的基础介绍可能涉及生物信息学的基本概念,如基因序列、DNA测序、基因...
综上所述,MDisProtein是一个基于Perl的蛋白质亚细胞定位预测工具,它结合了生物信息学方法和机器学习技术,为我们揭示蛋白质在亚细胞和亚细胞器水平上的分布规律,对于理解细胞功能和生物学过程具有重要意义。
可以从比对中收集有关进化过程的信息,总共可以计算出16个摘要统计量。 然后,ProteinEvolverABC可以通过拒绝和回归方法在近似贝叶斯计算(ABC)下估计参数。 该框架已通过广泛的计算机仿真进行了验证。 该软件包...
总结来说,这个项目通过Perl编程实现了对hg19参考基因组的CDS长度计算,这对于深入理解人类基因组的结构和功能具有重要意义。在实际应用中,这种计算方法可扩展到其他物种的基因组,为基因功能研究、疾病关联分析和...