perl怎么提取基因组所有基因的启动子序列
发表于:2025-02-20 作者:千家信息网编辑
千家信息网最后更新 2025年02月20日,这篇"perl怎么提取基因组所有基因的启动子序列"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来
千家信息网最后更新 2025年02月20日perl怎么提取基因组所有基因的启动子序列
这篇"perl怎么提取基因组所有基因的启动子序列"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"perl怎么提取基因组所有基因的启动子序列"文章吧。
脚本运行命令:
perl gene_promoter.pl -fa Donkey_Hic_genome.20180408.fa -gff Donkey_Hic_genome.20180408.gff3 -out gene_promoter.fa -n 2000
其中 -fa 后跟基因组染色体序列;-gff 后跟基因组gff文件;-n后跟数字,表示要提取基因上游多少bp的序列。
脚本代码:
#!/usr/bin/perl -wuse strict;use warnings;use Getopt::Long;use Data::Dumper;use Config::General;use Cwd qw(abs_path getcwd);use FindBin qw($Bin $Script);use File::Basename qw(basename dirname);use Bio::SeqIO;use Bio::Seq;my $version = "1.3";## prepare parameters ######################################################################### -------------------------------------------------------------------------------------------## GetOptionsmy %opts;GetOptions(\%opts, "gff=s","fa=s", "out=s", "n=s","h");if(!defined($opts{out}) || !defined($opts{gff}) || || !defined($opts{fa}) ||defined($opts{h})){print <<"Usage End.";Description:$version:lefse analysisUsageForced parameter:-gff gff filemust be given-out outdir must be given-n num -fa genome fasta file must be givenOther parameter:-h Help documentUsage End.exit;}$opts{n} ||= 2000;my $n = $opts{n};my $in = Bio::SeqIO->new(-file => "$opts{fa}" , -format => 'Fasta');my %fasta;while ( my $seq = $in->next_seq() ) {my($id,$sequence)=($seq->id,$seq->seq);$fasta{$id}=$sequence;}open(IN,"$opts{gff}") ||die "open file $opts{gff} faild.\n";open(OUT,">$opts{out}") ||die "open file $opts{out} faild.\n";while( ){next if(/^#/);my @line = split ("\t",$_);if($line[2] eq "gene"){$line[8] =~ /ID=([^;]*);/;my $name = $1;if($line[6] eq "+"){my $gene = substr( $fasta{$line[0]},$line[3]-$n-1, $n);print OUT ">$name\n$gene\n";}elsif($line[6] eq "-"){my $gene = substr( $fasta{$line[0]},$line[4], $n);$gene = &reverse_complement_IUPAC($gene);print OUT ">$name\n$gene\n";}}}close(OUT);close(IN);sub reverse_complement_IUPAC { my $dna = shift; # reverse the DNA sequence my $revcomp = reverse($dna); # complement the reversed DNA sequence $revcomp =~ tr/ABCDGHMNRSTUVWXYabcdghmnrstuvwxy/TVGHCDKNYSAABWXRtvghcdknysaabwxr/; return $revcomp;}sub reverse_complement { my $dna = shift; # reverse the DNA sequence my $revcomp = reverse($dna); # complement the reversed DNA sequence $revcomp =~ tr/ACGTacgt/TGCAtgca/; return $revcomp;}
以上就是关于"perl怎么提取基因组所有基因的启动子序列"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
基因
基因组
序列
内容
后跟
文章
知识
篇文章
脚本
代码
价值
命令
大部分
就是
数字
文件
更多
染色体
步骤
知识点
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
大学生网络安全活动策划书
飞腾服务器英文
重庆hp服务器维修维保哪家便宜
虚拟专用网络服务器
西安超融合服务器公司
软件开发工作计划与展望
数据库 招聘
软件开发wbs分解图
就业政策网络安全宣传周
lol美测更新服务器不可用
怎么看数据库正在执行的事
数据库哪个是属于多文档插入方法
数据库安全操作论文
万樱网络技术有限公司电话
数据库中照片存储类型
新一代软件开发过程推广
新冠肺炎数据库
威尼特互联网科技公司
无锡网络营销软件开发条件
博尔塔拉软件开发技巧
大学生网络安全活动策划书
崇明区微型网络技术要多少钱
搭建中转服务器 端口转发
我的世界服务器月卡插件
网络安全排比句
网络技术人才从事职业
广州安卓客户管理软件开发
关于网络安全你应该知道的
移动网络技术分类
数据库链接网页代码