Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用子例程在perl中编写代码_Perl - Fatal编程技术网

如何使用子例程在perl中编写代码

如何使用子例程在perl中编写代码,perl,Perl,我需要按照某些标准为我的字符串修补程序评分: 第1列:B为埋入式,E为外露式-阈值:25% 第2栏:氨基酸 第3列:序列名称 第4列:氨基酸编号 第5列:相对表面可达性-RSA 第6栏:绝对表面可达性 第7列:RSA预测的Z拟合分数 第8列:α螺旋的概率 第9列:β链的概率 第10栏:线圈的概率 E K 132L_A_PDBID_CHAIN_SEQUENCE 1 0.716 147.261 1.150 0.016 0.005 0.979 E V 132L_A

我需要按照某些标准为我的字符串修补程序评分:

第1列:B为埋入式,E为外露式-阈值:25%
第2栏:氨基酸
第3列:序列名称
第4列:氨基酸编号
第5列:相对表面可达性-RSA
第6栏:绝对表面可达性
第7列:RSA预测的Z拟合分数
第8列:α螺旋的概率
第9列:β链的概率
第10栏:线圈的概率

E K  132L_A_PDBID_CHAIN_SEQUENCE     1    0.716 147.261   1.150   0.016   0.005   0.979  
E V  132L_A_PDBID_CHAIN_SEQUENCE     2    0.514  79.033   1.252   0.191   0.086   0.723  
B F  132L_A_PDBID_CHAIN_SEQUENCE     3    0.134  26.793  -0.325   0.191   0.086   0.723  
E G  132L_A_PDBID_CHAIN_SEQUENCE     4    0.570  44.835   1.012   0.354   0.048   0.598  
记住,最后三列是螺旋/薄板/线圈的概率

因此,首先我们需要使用一些标准函数对某个残留物是否属于螺旋/薄片/线圈进行分类…基于最后3列中的最大概率

然后,我们得到结构偏好,我们需要对序列进行评分,将其分为10块

我的评分标准是:

EXPOSED     = 1; # +1 for letters that exposed  
BURIED      = 0; #  0 for letters that are buried  
COIL        = 3; # +3 for any coil  
HELIX       = 2; # +2 for any helix  
SHEET       = 1; # +1 for any sheet  
下面的链接是用来把一根绳子分成10~11块的

我面临的问题是,我已经像上面的链接一样将字符串分割为水平面片,但文件是垂直对齐的


谢谢你的帮助。。。。。。。等待答复

这应该会让您开始:

open my $fh, "<", "input.txt";

my @data;
while(my $line = <$fh>) # If we got line from file
{
    chomp $line; # remove carraigereturn/linefeed
    my @parts = split /\s+/, $line; # split based on values seperated by one or more spaces
    push @data, [@parts] # Add array of split parts to data array
}
然后你可以这样分类。(示例按Col1排序,然后按Col5排序(RSA):)

输出为:

B   F   132L_A_PDBID_CHAIN_SEQUENCE 3   0.134   26.793  -0.325  0.191   0.086   0.723   
E   V   132L_A_PDBID_CHAIN_SEQUENCE 2   0.514   79.033  1.252   0.191   0.086   0.723   
E   G   132L_A_PDBID_CHAIN_SEQUENCE 4   0.570   44.835  1.012   0.354   0.048   0.598   
E   K   132L_A_PDBID_CHAIN_SEQUENCE 1   0.716   147.261 1.150   0.016   0.005   0.979   

到目前为止,您尝试了什么,它做了什么,没有做什么?Stackoverflow不是代码编写服务。请显示您编写的代码,并解释代码的问题所在。上面提到的链接。问题应该是自包含的。链接到其他网站的信息可能会消失,在未来将是无用的。Pastebin常见问题解答说“Pastebin.com是一个网站,您可以在其中存储文本一段时间”,这表明这些条目的生命周期有限。请重新阅读我的第一条评论。
    @data = sort { if ( $a->[0] eq $b->[0] ) { $a->[4] <=> $b->[4] } else { $a->[0] cmp $b->[0] } } @data;
foreach my $line (@data)
{   
    foreach my $field (@$line)
    {
        print $field."\t";
    }
    print "\n";
}
B   F   132L_A_PDBID_CHAIN_SEQUENCE 3   0.134   26.793  -0.325  0.191   0.086   0.723   
E   V   132L_A_PDBID_CHAIN_SEQUENCE 2   0.514   79.033  1.252   0.191   0.086   0.723   
E   G   132L_A_PDBID_CHAIN_SEQUENCE 4   0.570   44.835  1.012   0.354   0.048   0.598   
E   K   132L_A_PDBID_CHAIN_SEQUENCE 1   0.716   147.261 1.150   0.016   0.005   0.979