我有我編輯有點特等文件,但是當我嘗試運行它,我得到這個錯誤哈希表初始化
Use of uninitialized value within %dca in concatenation (.) or string at ./createWindow.pl line 65.
Use of uninitialized value in concatenation (.) or string at ./createWindow.pl line 64.
Use of uninitialized value in concatenation (.) or string at ./createWindow.pl line 64.
Use of uninitialized value within %dca in concatenation (.) or string at ./createWindow.pl line 65.
守則以下是
#!/usr/bin/perl -w
use strict;
my $window=$ARGV[0];
my $windowCentral=$ARGV[1];
my $sep=$ARGV[2];
my @pairs=`cat $ARGV[3]`;
chomp @pairs;
my @pssm=`cat $ARGV[4]`;
chomp @pssm;
my @predSS=`cat $ARGV[5] | cut -d, -f1`;
chomp @predSS;
my @predSA=`cat $ARGV[6]`;
chomp @predSA;
my @predRCH=`cat $ARGV[7]`;
chomp @predRCH;
my @predCN=`cat $ARGV[8]`;
chomp @predCN;
my @seq=`cat $ARGV[9]`;
chomp @seq;
my @prop=`cat ../propensity.txt | cut -d\\ -f1,3`;
chomp @prop;
my %prop;
foreach(@prop) {
my @v=split(/ /);
$prop{$v[0]}=$v[1];
}
my @dca=`cat $ARGV[10]`;
chomp @dca;
my %dca;
foreach(@dca) {
my @v=split(/ /);
$dca{"$v[0],$v[1]"}="$v[2],$v[3]";
}
my $count=0;
foreach my $pair (@pairs) {
my @values=split(/,/,$pair);
next if($values[2]<$sep);
$count++;
my $r1=$values[0]-1;
my $r2=$values[1]-1;
my $central=($r2-$r1)/2;
#separation between contactd
print "$values[2],";
#propensity
my $AApair=$seq[$r1].$seq[$r2];
print "$prop{$AApair},";
#sequence length
my [email protected];
print "$num,";
#dca
my $posPair="$values[0],$values[1]";
print "$dca{$posPair},";
#PredSS of windows around contact residues
&dumpWindow($r1,$window,@predSS);
&dumpWindow($r2,$window,@predSS);
休息的代碼工作正常,但我無法找出索引dca哈希表。 您需要文件的所有四列,而不僅僅是第一,第三和第四列,因此 不會執行剪切。
my @dca=`cat $ARGV[10]`;
> chomp @dca;
> my %dca;
> foreach(@dca) {
> my @v=split(/ /);
> $dca{$v[0]}=$v[1];
> }
的關鍵哈希表必須是2個殘留 指標的串聯,和值第3和第4列連接:
$dca{"$v[0],$v[1]"}="$v[2],$v[3]";
>
> my $AApair=$seq[$r1].$seq[$r2];
> print "$dca{$AApair},";
>
索引哈希表你需要r1和r2,而不是那些 職位中的氨基酸。
my $posPair="$values[0],$values[1]";
print "$dca{$posPair},";
以錯誤的方式索引dca哈希表。看看你是如何從.contact文件中填入上面幾行代碼的。 現在卡在這個年齡.....
1 2 0.311808 0.199348 1 3 0.310089 0.236611 1 4 0.344717 0.130342 1 5 0.449746 0.0971291 1 6 0.346515 0.194622 1 7 0.310089 0.207573 1 8 0.310452 0.195762 – user2689506
這需要由具有4列文件的輸入。現在要嘗試我們的代碼 – user2689506
全局符號「$ dca」需要在./createWindow.pl第43行顯式包名稱。 全局符號「$ dca」需要在./createWindow.pl第65行顯式包名。 執行。 /createWindow.pl由於編譯錯誤而中止。 – user2689506