⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formattest.pl

📁 hmmer源程序
💻 PL
字号:
#! /usr/local/bin/perl$binpath = shift;		# Suck in the regression data on our file format test suite.#print "Format test suite...\t";open(DAT,"regression.dat") || die "failed to open regression.dat";$nfiles = 0;while (<DAT>) {    if (/^\#/) { next; }    if (/^(\S+)\s+(\S+)\s+(\S+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\S+)\s+(\S+)\s+(\S+)/) {	$filename[$nfiles] = $1;	$format[$nfiles]   = $2;	$seqtype[$nfiles]  = $3;	$nseq[$nfiles]     = $4;	$nres[$nfiles]     = $5;	$shortest[$nfiles] = $6;	$longest[$nfiles]  = $7;	if ($8  eq "yes") { $autodetect[$nfiles]   = 1; } else { $autodetect[$nfiles]   = 0; }	if ($9  eq "yes") { $is_alignment[$nfiles] = 1; } else { $is_alignment[$nfiles] = 0; }	if ($10 eq "yes") { $is_singleseq[$nfiles] = 1; } else { $is_singleseq[$nfiles] = 0; }	$nfiles++;    }}close(DAT);# Test 1.# Run seqstat on every file in two modes;# autodetecting (if format allows it), then forcing a format with --informat.#for ($i = 0; $i < $nfiles; $i++) {    if ($autodetect[$i]) {	$output = `$binpath/seqstat $filename[$i]`;	if ($? != 0) { die "seqstat failed, autodetecting, on $filename[$i]"; }	($ns, $nr, $fr, $to) = &parse_seqstat($output);	if ($ns != $nseq[$i] ||	    $nr != $nres[$i] ||	    $fr != $shortest[$i] ||	    $to != $longest[$i])	{ die "seqstat regression failed, autodetecting, on $filename[$i]"; }    }    $output = `$binpath/seqstat --informat $format[$i] $filename[$i]`;	if ($? != 0) { die "seqstat failed, using --informat, on $filename[$i]"; }	($ns, $nr, $fr, $to) = &parse_seqstat($output);	if ($ns != $nseq[$i] ||	    $nr != $nres[$i] ||	    $fr != $shortest[$i] ||	    $to != $longest[$i])	{ die "seqstat regression failed, using --informat, on $filename[$i]"; }}# Test 2.# Reformatting tests.#for ($i = 0; $i < $nfiles; $i++) {    for ($j = 0; $j < $nfiles; $j++) {	if (! $is_alignment[$i] && $is_alignment[$j]) { next; } # can't convert unaligned to aligned	if (! $is_singleseq[$i] && $is_singleseq[$j]) { next; } # can't convert multiple seqs to single seq format	`$binpath/sreformat --informat $format[$i] $format[$j] $filename[$i] > formattest.tmp`;	if ($? != 0) { die "sreformat failed ($format[$i] to $format[$j]) on $filename[$i]"; }	$output = `$binpath/seqstat --informat $format[$j] formattest.tmp`;	if ($? != 0) { die "seqstat failed after sreformat ($format[$i] to $format[$j]) on $filename[$i]"; }	($ns, $nr, $fr, $to) = &parse_seqstat($output);	if ($ns != $nseq[$i] ||	    $nr != $nres[$i] ||	    $fr != $shortest[$i] ||	    $to != $longest[$i])	{ die "seqstat regression failed after sreformat ($format[$i] to $format[$j]) on $filename[$i]"; }    }}print "passed.\n";unlink "formattest.tmp";# Function: parse_seqstat(file)## Returns the number of sequences in the file,# and their maximum and minimum length, and their avg. len.# Dies if 'seqstat' fails.#sub parse_seqstat {    local($output) = shift;    my ($nseq, $nres, $fromlen, $tolen);	    if ($output =~ /Number of sequences:\s+(\d+)/)      {$nseq    = $1; }    if ($output =~ /Total # residues:\s+(\d+)/)         {$nres    = $1; }    if ($output =~ /Smallest:\s+(\d+)/)                 {$fromlen = $1; }    if ($output =~ /Largest:\s+(\d+)/)                  {$tolen   = $1; }    ($nseq, $nres, $fromlen, $tolen);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -