如何使用子例程在perl中编写代码
我需要按照某些标准为我的字符串修补程序评分: 第1列:B为埋入式,E为外露式-阈值:25%如何使用子例程在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
第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