Open dwzhan opened 1 month ago
看一下你输入序列里面是不是有X,lstm和attention无法识别带有X的序列
这个脚本的目的是处理三个模型对同一天序列的预测结果是否一致(都大于0.5)。 是需要行数相等的,因为是用这三个模型对同样的数据进行预测。理论上来说行数都是一样的。不过在Lstm和attention模型进行预测时会删除一些有特殊字符(非天然氨基酸的序列,参考这部分的perl脚本:Prepare input data format for LSTM and Attention models)所以在用bert进行预测时使用的序列需要和用Lstm和attention模型预测时的序列相同。
不过这个脚本的意义不是很大,其实也可以把每个模型的预测值和序列都放到excel里进行一样的操作。
谢谢您!想确认一下 Prepare input data format for LSTM and Attention models这一步给lstm和attention的是数字文件,bert我之前输入的是前一步“ remove redundant sORF and known AMPs ”后的蛋白序列文件,所以bert需要输入format的数字文件吗(可以接收数字文件)?还是说您只是让我参考一下怎么format 如果您方便的话,能否冒昧加个微信?我是中农的博士,我的微信是YXTlimbo。再次谢谢您的答疑!
mayuefine @.***> 于2024年10月19日周六 17:56写道:
这个脚本的目的是处理三个模型对同一天序列的预测结果是否一致(都大于0.5)。 是需要行数相等的,因为是用这三个模型对同样的数据进行预测。理论上来说行数都是一样的。不过在Lstm和attention模型进行预测时会删除一些有特殊字符(非天然氨基酸的序列,参考这部分的perl脚本:Prepare input data format for LSTM and Attention models)所以在用bert进行预测时使用的序列需要和用Lstm和attention模型预测时的序列相同。
不过这个脚本的意义不是很大,其实也可以把每个模型的预测值和序列都放到excel里进行一样的操作。
— Reply to this email directly, view it on GitHub https://github.com/mayuefine/c_AMPs-prediction/issues/14#issuecomment-2423731808, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMNLWPXPUWEOM5OLQCCBYITZ4IUFDAVCNFSM6AAAAABOM2RS52VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIMRTG4ZTCOBQHA . You are receiving this because you authored the thread.Message ID: @.***>
马博士您好 @mayuefine 非常感谢您的文章和代码给我的启发!我有个问题,就是用result_modif.pl整合att、lstm和bert模型出来的结果时,遇到$h{$i}是不是需要att/lstm和bert行数要相等?就是在这个代码中: my $att = $ARGV[0]; # result from attention model prediction my $lstm = $ARGV[1]; # result from LSTM model prediction my $bert = $ARGV[2]; # result from BERT model prediction my $seq = $ARGV[3]; my $a; my $l; my $b; my $i = 1; my %h; open ATT, "<$att"; while(defined($a=)){
$a =~ s/\s//igm;
my $tmp;
if($a > 0.5){
$tmp = 1;
}else{
$tmp = 0;
}
$h{$i} = $tmp;
$i++;
}
close ATT;
$i = 1; open LSTM, "<$lstm"; while(defined($l=)){
$l =~ s/\s//igm;
my $tmp;
if($l > 0.5){
$tmp = 1;
}else{
$tmp = 0;
}
$h{$i} = $h{$i} + $tmp;
$i++;
}
close LSTM;
$i = 1; open BERT, "<$bert"; while(defined($b=)){
$b =~ s/\s//igm;
my $tmp;
if($b > 0.5){
$tmp = 1;
}else{
$tmp = 0;
}
$h{$i} = $h{$i} + $tmp;
$i++;
}
close BERT;
会遇到这样的问题:
Use of uninitialized value in addition (+) at /date/zdw/c_AMP/code/result_modif.pl line 51, line 14905496.
Use of uninitialized value in addition (+) at /date/zdw/c_AMP/code/result_modif.pl line 51, line 14905497.
Use of uninitialized value in addition (+) at /date/zdw/c_AMP/code/result_modif.pl line 51, line 14905498.
Use of uninitialized value in addition (+) at /date/zdw/c_AMP/code/result_modif.pl line 51, line 14905499.
Use of uninitialized value in addition (+) at /date/zdw/c_AMP/code/result_modif.pl line 51, line 14905500.
Use of uninitialized value in addition (+) at /date/zdw/c_AMP/code/result_modif.pl line 51, line 14905501.
Use of uninitialized value in addition (+) at /date/zdw/c_AMP/code/result_modif.pl line 51, line 14905502.
Use of uninitialized value in addition (+) at /date/zdw/c_AMP/code/result_modif.pl line 51, line 14905503.
Use of uninitialized value in addition (+) at /date/zdw/c_AMP/code/result_modif.pl line 51, line 14905504.
Use of uninitialized value in addition (+) at /date/zdw/c_AMP/code/result_modif.pl line 51, line 14905505.
Use of uninitialized value in addition (+) at /date/zdw/c_AMP/code/result_modif.pl line 51, line 14905506.
但是实际上也能生成结果,就是想确认是不是att/lstm和bert都得同行,可是我run这三个model也没报错啊...
也期待跪求各位同行大佬们的解答!Thanks!