2013-05-01 27 views
0

我有一个perl脚本,它从输入文本文件中获取一些字段并将其转换为生成更有用的(对于我)文本文件。Perl脚本在我的计算机上正常工作,而不是在远程服务器上

当我在我的Mac上运行它(有一个非常小的文件由真实文件中的几行构成)时,它会生成正确的输出。它会产生一些警告,粘贴在下面,但输出是可以的。

当我在我的机构的服务器上运行这个完全相同的脚本时,它会返回很多“使用未初始化值”的警告,虽然它创建一个输出文件,但它的内容完全一致,作为输入文件。我也用我在我的电脑上测试过的小文件来尝试它。

我有一种感觉,这与perl的版本有关?我不是管理员,那我该如何解决这个问题?

警告返回服务器上:

Use of uninitialized value $Read_Cigar in pattern match (m//) at ../perl/R2_Warrior.pl line 48, <R2_FILE> line 1. 
Use of uninitialized value $Clipped in substr at ../perl/R2_Warrior.pl line 53, <R2_FILE> line 1. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 53, <R2_FILE> line 1. 
Use of uninitialized value $Read_Cigar in pattern match (m//) at ../perl/R2_Warrior.pl line 59, <R2_FILE> line 1. 
Use of uninitialized value $Matched in negation (-) at ../perl/R2_Warrior.pl line 64, <R2_FILE> line 1. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 64, <R2_FILE> line 1. 
Use of uninitialized value $Read_Info in pattern match (m//) at ../perl/R2_Warrior.pl line 73, <R2_FILE> line 1. 
Use of uninitialized value $X2 in substr at ../perl/R2_Warrior.pl line 91, <R2_FILE> line 1. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 91, <R2_FILE> line 1. 
Use of uninitialized value $X2 in addition (+) at ../perl/R2_Warrior.pl line 97, <R2_FILE> line 1. 
Use of uninitialized value $Matched in addition (+) at ../perl/R2_Warrior.pl line 97, <R2_FILE> line 1. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 1. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 1. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 1. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 1. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 1. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 1. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 1. 
Use of uninitialized value $Read_Cigar in pattern match (m//) at ../perl/R2_Warrior.pl line 48, <R2_FILE> line 2. 
Use of uninitialized value $Clipped in substr at ../perl/R2_Warrior.pl line 53, <R2_FILE> line 2. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 53, <R2_FILE> line 2. 
Use of uninitialized value $Read_Cigar in pattern match (m//) at ../perl/R2_Warrior.pl line 59, <R2_FILE> line 2. 
Use of uninitialized value $Matched in negation (-) at ../perl/R2_Warrior.pl line 64, <R2_FILE> line 2. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 64, <R2_FILE> line 2. 
Use of uninitialized value $Read_Info in pattern match (m//) at ../perl/R2_Warrior.pl line 73, <R2_FILE> line 2. 
Use of uninitialized value $X2 in substr at ../perl/R2_Warrior.pl line 91, <R2_FILE> line 2. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 91, <R2_FILE> line 2. 
Use of uninitialized value $X2 in addition (+) at ../perl/R2_Warrior.pl line 97, <R2_FILE> line 2. 
Use of uninitialized value $Matched in addition (+) at ../perl/R2_Warrior.pl line 97, <R2_FILE> line 2. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 2. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 2. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 2. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 2. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 2. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 2. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 2. 
Use of uninitialized value $Read_Cigar in pattern match (m//) at ../perl/R2_Warrior.pl line 48, <R2_FILE> line 3. 
Use of uninitialized value $Clipped in substr at ../perl/R2_Warrior.pl line 53, <R2_FILE> line 3. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 53, <R2_FILE> line 3. 
Use of uninitialized value $Read_Cigar in pattern match (m//) at ../perl/R2_Warrior.pl line 59, <R2_FILE> line 3. 
Use of uninitialized value $Matched in negation (-) at ../perl/R2_Warrior.pl line 64, <R2_FILE> line 3. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 64, <R2_FILE> line 3. 
Use of uninitialized value $Read_Info in pattern match (m//) at ../perl/R2_Warrior.pl line 73, <R2_FILE> line 3. 
Use of uninitialized value $X2 in substr at ../perl/R2_Warrior.pl line 91, <R2_FILE> line 3. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 91, <R2_FILE> line 3. 
Use of uninitialized value $X2 in addition (+) at ../perl/R2_Warrior.pl line 97, <R2_FILE> line 3. 
Use of uninitialized value $Matched in addition (+) at ../perl/R2_Warrior.pl line 97, <R2_FILE> line 3. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 3. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 3. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 3. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 3. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 3. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 3. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 3. 
Use of uninitialized value $Read_Cigar in pattern match (m//) at ../perl/R2_Warrior.pl line 48, <R2_FILE> line 4. 
Use of uninitialized value $Clipped in substr at ../perl/R2_Warrior.pl line 53, <R2_FILE> line 4. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 53, <R2_FILE> line 4. 
Use of uninitialized value $Read_Cigar in pattern match (m//) at ../perl/R2_Warrior.pl line 59, <R2_FILE> line 4. 
Use of uninitialized value $Matched in negation (-) at ../perl/R2_Warrior.pl line 64, <R2_FILE> line 4. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 64, <R2_FILE> line 4. 
Use of uninitialized value $Read_Info in pattern match (m//) at ../perl/R2_Warrior.pl line 73, <R2_FILE> line 4. 
Use of uninitialized value $X2 in substr at ../perl/R2_Warrior.pl line 91, <R2_FILE> line 4. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 91, <R2_FILE> line 4. 
Use of uninitialized value $X2 in addition (+) at ../perl/R2_Warrior.pl line 97, <R2_FILE> line 4. 
Use of uninitialized value $Matched in addition (+) at ../perl/R2_Warrior.pl line 97, <R2_FILE> line 4. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 4. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 4. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 4. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 4. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 4. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 4. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 4. 
Use of uninitialized value $Read_Cigar in pattern match (m//) at ../perl/R2_Warrior.pl line 48, <R2_FILE> line 5. 
Use of uninitialized value $Clipped in substr at ../perl/R2_Warrior.pl line 53, <R2_FILE> line 5. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 53, <R2_FILE> line 5. 
Use of uninitialized value $Read_Cigar in pattern match (m//) at ../perl/R2_Warrior.pl line 59, <R2_FILE> line 5. 
Use of uninitialized value $Matched in negation (-) at ../perl/R2_Warrior.pl line 64, <R2_FILE> line 5. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 64, <R2_FILE> line 5. 
Use of uninitialized value $Read_Info in pattern match (m//) at ../perl/R2_Warrior.pl line 73, <R2_FILE> line 5. 
Use of uninitialized value $X2 in substr at ../perl/R2_Warrior.pl line 91, <R2_FILE> line 5. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 91, <R2_FILE> line 5. 
Use of uninitialized value $X2 in addition (+) at ../perl/R2_Warrior.pl line 97, <R2_FILE> line 5. 
Use of uninitialized value $Matched in addition (+) at ../perl/R2_Warrior.pl line 97, <R2_FILE> line 5. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 5. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 5. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 5. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 5. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 5. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 5. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 5. 
Use of uninitialized value $Read_Cigar in pattern match (m//) at ../perl/R2_Warrior.pl line 48, <R2_FILE> line 6. 
Use of uninitialized value $Clipped in substr at ../perl/R2_Warrior.pl line 53, <R2_FILE> line 6. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 53, <R2_FILE> line 6. 
Use of uninitialized value $Read_Cigar in pattern match (m//) at ../perl/R2_Warrior.pl line 59, <R2_FILE> line 6. 
Use of uninitialized value $Matched in negation (-) at ../perl/R2_Warrior.pl line 64, <R2_FILE> line 6. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 64, <R2_FILE> line 6. 
Use of uninitialized value $Read_Info in pattern match (m//) at ../perl/R2_Warrior.pl line 73, <R2_FILE> line 6. 
Use of uninitialized value $X2 in substr at ../perl/R2_Warrior.pl line 91, <R2_FILE> line 6. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 91, <R2_FILE> line 6. 
Use of uninitialized value $X2 in addition (+) at ../perl/R2_Warrior.pl line 97, <R2_FILE> line 6. 
Use of uninitialized value $Matched in addition (+) at ../perl/R2_Warrior.pl line 97, <R2_FILE> line 6. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 6. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 6. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 6. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 6. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 6. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 6. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 6. 
Use of uninitialized value $Read_Cigar in pattern match (m//) at ../perl/R2_Warrior.pl line 48, <R2_FILE> line 7. 
Use of uninitialized value $Clipped in substr at ../perl/R2_Warrior.pl line 53, <R2_FILE> line 7. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 53, <R2_FILE> line 7. 
Use of uninitialized value $Read_Cigar in pattern match (m//) at ../perl/R2_Warrior.pl line 59, <R2_FILE> line 7. 
Use of uninitialized value $Matched in negation (-) at ../perl/R2_Warrior.pl line 64, <R2_FILE> line 7. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 64, <R2_FILE> line 7. 
Use of uninitialized value $Read_Info in pattern match (m//) at ../perl/R2_Warrior.pl line 73, <R2_FILE> line 7. 
Use of uninitialized value $X2 in substr at ../perl/R2_Warrior.pl line 91, <R2_FILE> line 7. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 91, <R2_FILE> line 7. 
Use of uninitialized value $X2 in addition (+) at ../perl/R2_Warrior.pl line 97, <R2_FILE> line 7. 
Use of uninitialized value $Matched in addition (+) at ../perl/R2_Warrior.pl line 97, <R2_FILE> line 7. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 7. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 7. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 7. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 7. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 7. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 7. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 7. 
Use of uninitialized value $Read_Cigar in pattern match (m//) at ../perl/R2_Warrior.pl line 48, <R2_FILE> line 8. 
Use of uninitialized value $Clipped in substr at ../perl/R2_Warrior.pl line 53, <R2_FILE> line 8. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 53, <R2_FILE> line 8. 
Use of uninitialized value $Read_Cigar in pattern match (m//) at ../perl/R2_Warrior.pl line 59, <R2_FILE> line 8. 
Use of uninitialized value $Matched in negation (-) at ../perl/R2_Warrior.pl line 64, <R2_FILE> line 8. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 64, <R2_FILE> line 8. 
Use of uninitialized value $Read_Info in pattern match (m//) at ../perl/R2_Warrior.pl line 73, <R2_FILE> line 8. 
Use of uninitialized value $X2 in substr at ../perl/R2_Warrior.pl line 91, <R2_FILE> line 8. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 91, <R2_FILE> line 8. 
Use of uninitialized value $X2 in addition (+) at ../perl/R2_Warrior.pl line 97, <R2_FILE> line 8. 
Use of uninitialized value $Matched in addition (+) at ../perl/R2_Warrior.pl line 97, <R2_FILE> line 8. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 8. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 8. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 8. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 8. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 8. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 8. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 8. 
Use of uninitialized value $Read_Cigar in pattern match (m//) at ../perl/R2_Warrior.pl line 48, <R2_FILE> line 9. 
Use of uninitialized value $Clipped in substr at ../perl/R2_Warrior.pl line 53, <R2_FILE> line 9. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 53, <R2_FILE> line 9. 
Use of uninitialized value $Read_Cigar in pattern match (m//) at ../perl/R2_Warrior.pl line 59, <R2_FILE> line 9. 
Use of uninitialized value $Matched in negation (-) at ../perl/R2_Warrior.pl line 64, <R2_FILE> line 9. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 64, <R2_FILE> line 9. 
Use of uninitialized value $Read_Info in pattern match (m//) at ../perl/R2_Warrior.pl line 73, <R2_FILE> line 9. 
Use of uninitialized value $X2 in substr at ../perl/R2_Warrior.pl line 91, <R2_FILE> line 9. 
Use of uninitialized value $Read_Seq in substr at ../perl/R2_Warrior.pl line 91, <R2_FILE> line 9. 
Use of uninitialized value $X2 in addition (+) at ../perl/R2_Warrior.pl line 97, <R2_FILE> line 9. 
Use of uninitialized value $Matched in addition (+) at ../perl/R2_Warrior.pl line 97, <R2_FILE> line 9. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 9. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 9. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 9. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 9. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 9. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 9. 
Use of uninitialized value in concatenation (.) or string at ../perl/R2_Warrior.pl line 104, <R2_FILE> line 9. 

脚本:

use strict; 
use warnings; 


my ($Line) = ""; 
my (@Split_Line) =(); 
my (%All_read_and_info_HASH) =(); 


open(R2_FILE,"R2_Sample.txt") || die "Sorry I couldn't open the INPUT file: $!\n"; 
open(OUTPUT, ">R2_Output.txt") || die "Sorry I couldnt create the OUTPUT file: $!\n"; 

while(<R2_FILE>){ 

    ### Elimina los \n 
    ### Parte cada linea por tabuladores 
    chomp; 
    $Line = $_; 
    @Split_Line = split(/\t+/, $Line); 


    ### Guarda los campos de donde se obtiene el resto de la informacion 
    my $Read_Name = $Split_Line[0]; 
    my $Read_ID = $Split_Line[3]; 
    my $Read_Cigar = $Split_Line[5]; 
    my $Read_Seq = $Split_Line[9]; 
    my $Read_Info = $Split_Line[14]; 


    #print "$Read_Name\t$Read_Cigar\t$Read_Seq\t$Read_Info\n"; 
    #<STDIN>; 


    ########################################################## 
    ### Llena el hash de hashes       ### 
    ### Key = $Read_Name         ### 
    ### La segunda llave, i.e. 'Sequence' son cada uno de ### 
    ### los campos del 0 al 8 del PDF      ### 
    ########################################################## 

    my($Clipped, $Matched, $X1, $X2, $Temporal_Seq); 

    ### [0]: Guarda la secuencia del read 
    $All_read_and_info_HASH{$Read_Name}{'Sequence'} = $Read_Seq; 


    ### [1]: Guarda el numero de nt 'clipeados' 
    if ($Read_Cigar =~ /(\d+)S\d+M/){ $Clipped = $1; } 
    $All_read_and_info_HASH{$Read_Name}{'Clipped_Nt'} = $Clipped; 


    ### [2]: Guarda los primeros N nt de la secuencia completa del read 
    $Temporal_Seq = substr($Read_Seq, 0, $Clipped); 
    $All_read_and_info_HASH{$Read_Name}{'Non_R2_Sequence'} = $Temporal_Seq; 
    $Temporal_Seq = ""; 


    ### [3]: Guarda el numero de nt matcheados a R2 
    if ($Read_Cigar =~ /\d+S(\d+)M/){ $Matched = $1; } 
    $All_read_and_info_HASH{$Read_Name}{'R2_Matched_Nt'} = $Matched; 


    ### [4]: Guarda los ultimos N nt de la secuencia completa del read (Las bases matcheadas a R2) 
    $Temporal_Seq = substr($Read_Seq, -$Matched); 
    $All_read_and_info_HASH{$Read_Name}{'R2_Matched_Sequence'} = $Temporal_Seq; 
    $Temporal_Seq = ""; 


    ### [5]: Guarda el CIGAR string 
    $All_read_and_info_HASH{$Read_Name}{'CIGAR'} = $Read_Cigar; 


    if ($Read_Info =~ /\+(\d+),(\d+)M/){ 
    $X1 = $1; 
    $X2 = $2; 

    #print "$X1\t$X2\n"; 
    #<STDIN>; 
    } 


    ### [6]: Guarda el numero X1 
    $All_read_and_info_HASH{$Read_Name}{'28s_Start'} = $X1; 


    ### [7]: Guarda el numero X2 
    $All_read_and_info_HASH{$Read_Name}{'28s_Matched_NT'} = $X2; 


    ### [8]: Guarda los primeros X2 nt de la secuencia completa del read 
    $Temporal_Seq = substr($Read_Seq, 0, $X2); 
    $All_read_and_info_HASH{$Read_Name}{'28s_Matched_Sequence'} = $Temporal_Seq; 
    $Temporal_Seq = ""; 


    ### [9]: Calcula 144-([3] + [7]) 
    $All_read_and_info_HASH{$Read_Name}{'Result'} = (144 - ($Matched + $X2)); 


    ### [10]: Guarda el sitio de R2 Truncation 
    $All_read_and_info_HASH{$Read_Name}{'R2_Truncation'} = $Read_ID; 


    print OUTPUT $Read_Name."\t".$All_read_and_info_HASH{$Read_Name}{'Sequence'}."\t".$All_read_and_info_HASH{$Read_Name}{'Clipped_Nt'}."\t".$All_read_and_info_HASH{$Read_Name}{'Non_R2_Sequence'}."\t".$All_read_and_info_HASH{$Read_Name}{'R2_Matched_Nt'}."\t".$All_read_and_info_HASH{$Read_Name}{'R2_Matched_Sequence'}."\t".$All_read_and_info_HASH{$Read_Name}{'CIGAR'}."\t".$All_read_and_info_HASH{$Read_Name}{'28s_Start'}."\t".$All_read_and_info_HASH{$Read_Name}{'28s_Matched_NT'}."\t".$All_read_and_info_HASH{$Read_Name}{'28s_Matched_Sequence'}."\t".$All_read_and_info_HASH{$Read_Name}{'Result'}."\t".$All_read_and_info_HASH{$Read_Name}{'R2_Truncation'}."\n"; 


    #print $Read_Name."\n".$All_read_and_info_HASH{$Read_Name}{'Sequence'}."\n".$All_read_and_info_HASH{$Read_Name}{'First_N'}."\n".$All_read_and_info_HASH{$Read_Name}{'Sequence'}."\n".$All_read_and_info_HASH{$Read_Name}{'Last_N'}."\n"; 

    #<STDIN>; 
} 
close(R2_FILE); 
close(OUTPUT); 
+0

你有没有比较的Perl的版本?脚本在服务器上的较小文件上使用时是否提供正确的输出?警告你的意思是'@Split_Line = split(/ \ t + /,$ Line);'没有按预期工作,并且没有变量被初始化。 – 2013-05-01 19:23:16

+0

这个问题是关闭的话题在这里(不要担心,它可能会自动迁移)。你的问题几乎可以肯定的是,服务器上存在与你本地尝试的文件不同的文件,所以你的'split'失败了@AlexeyIvanov的建议。另外,当问这种问题时,包含一个示例输入文件是一个好主意。 – terdon 2013-05-01 19:38:23

+1

一个经常被忽视的陷阱是,你有错误的行尾(特别是邮寄脚本时)。根据我的经验,可能会产生最多的错误。那么,您是如何将脚本传输到您的服务器以及您的计算机和机构的服务器上运行哪个操作系统的? – mpy 2013-05-01 20:03:36

回答

2

尝试使用

​​

,因为你是在循环的块外设置它。

您还可以设置您的变量是这样的...

my($Read_Name, $Read_ID ,$Read_Cigar , $Read_Seq , $Read_Info) = 
     split(/\t+/, $Line); 
+0

是的,'@ Split_Line'声明可能是原因。您可能需要在'while'结尾处清除数组。但是,我不确定。 – 2013-05-02 13:42:44

+0

如果仔细观察上面的脚本,会看到有些索引被跳过,所以表达式my($ Read_Name,...)不起作用。要跳过某个值,请使用'undef':'my($ Read_Name,undef,undef,$ Read_ID,...)= split(/ \ t + /,$ Line);'。 – 2013-05-02 13:46:44

相关问题