perl怎么提取基因组所有基因的启动子序列
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇"perl怎么提取基因组所有基因的启动子序列"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来
千家信息网最后更新 2025年01月16日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安全错误
数据库的锁怎样保障安全
杭州有朋网络技术有限公司融资
数据库多对多关系表
轻轨数据库格式
兆日科技网络安全问董秘
企业密信免费服务器id
手机连接不上服务器
小企业服务器需要双机热备吗
国外对于网络安全的政策
租服务器多少钱一名月
银之山网络技术服务有限公司
服务器宽带租用
数据库切片
华为48v服务器电源
我的世界服务器管理员等级
汉迪移动互联网科技有限公司
接受网络安全培训时间不得少于
网络安全维稳方案
深圳市明源云链互联网科技公司
数据库文字闪烁代码
大话西游2火爆的服务器有哪些
大数据带来解决网络安全新机遇
新乡市悦创网络技术
扫黄打非网络安全班会教案
西城区网络软件开发好处
数据库连接手机
数据库返回值811
码头网络技术
数据库工程师怎么样
win7能否安装数据库
数据库文字闪烁代码