免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 321wangke321
打印 上一主题 下一主题

有个脚本一运行就报错,大家看看是什么问题?在线等 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2014-09-11 18:31 |只看该作者
我囧

你的用法要

到資料夾底下

然後執行"perl get_TF_seq.pl gene_annotation.gff3 query_ID.txt genome_sequence.fa"

這樣懂了嗎?

论坛徽章:
0
12 [报告]
发表于 2014-09-11 18:39 |只看该作者
afukada 发表于 2014-09-11 18:31
我囧

你的用法要


是的,放在同一个文件夹下,cmd运行perl脚本。

论坛徽章:
0
13 [报告]
发表于 2014-09-11 18:53 |只看该作者
本帖最后由 afukada 于 2014-09-11 19:02 编辑

我剛剛試了一下

依照這個寫法

在query_ID.txt內如果有不存在的ID

或是超過genome_sequence.fa定義的長度

是會有錯

但是跟你敘述的狀況完全不同

你貼上來的圖看起來是你使用方法有錯

所以你到底是哪個部份的問題?

论坛徽章:
0
14 [报告]
发表于 2014-09-11 19:11 |只看该作者
afukada 发表于 2014-09-11 18:53
我剛剛試了一下

依照這個寫法


你试了不是这样报错,这就奇怪了。是perl版本的问题吗?

论坛徽章:
1
程序设计版块每日发帖之星
日期:2015-10-07 06:20:00
15 [报告]
发表于 2014-09-12 00:43 |只看该作者
1.
提供测试文件,请自己检查是否给对了...
那个query gene ID 就不在你给的GFF注释里!!!

2.
问题已经找出,你准备的Genome文件是在Windows下生成的,给你写代码的人用的是Linux.....
换行符不一致....Line 69 加个chop就好..
  1.     while(<FILE>)
  2.     {
  3.         chomp;chop; #Line 69
复制代码

论坛徽章:
0
16 [报告]
发表于 2014-09-12 15:06 |只看该作者
chenhao392 发表于 2014-09-12 00:43
1.
提供测试文件,请自己检查是否给对了...
那个query gene ID 就不在你给的GFF注释里!!!


高人!!!我是在windows下运行的perl,程序也是在linux系统下编写的,但是perl脚本应该是跨平台运行的。我按照你说的在line67加了chop了,还是出现相同的报错。求进一步指点。

9ZQC4DXW}BCCRK]UDX@@I(0.jpg (2.14 KB, 下载次数: 42)

修改

修改

6_UGQ7(]IJM4}EPW]O9P`P5.jpg (23.4 KB, 下载次数: 32)

报错

报错

论坛徽章:
0
17 [报告]
发表于 2014-09-12 15:17 |只看该作者
本帖最后由 afukada 于 2014-09-12 15:25 编辑

Use of uninitialized value $ARGV[0] in string at get_TF_seq.pl line 5.
readline() on closed filehandle GFF at get_TF_seq.pl line 7.
Use of uninitialized value $file in open at get_TF_seq.pl line 63.
readline() on closed filehandle FILE at get_TF_seq.pl line 65.
Use of uninitialized value in open at get_TF_seq.pl line 19.
readline() on closed filehandle TF at get_TF_seq.pl line 20.

這是你的錯誤訊息

第一行 Use of uninitialized value $ARGV[0] in string at get_TF_seq.pl line 5.

意思是你沒有給他參數

這樣你懂我在說什麼嗎?

這是你要用這個東西的正確方法: get_TF_seq.pl gene_annotation.gff3 query_ID.txt genome_sequence.fa
                                                              $ARGV[0]                    $ARGV[1]      $ARGV[2]

你是用: get_TF_seq.pl

這樣比較你知道你問題出在哪裡了嗎?

為了讓你更清楚

給你圖

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
18 [报告]
发表于 2014-09-12 15:33 |只看该作者
回复 16# 321wangke321

you need to study how to use program ...

C:\bat>type hello.pl

use strict;
use warnings;

print "Hello $ARGV[0]\n";

C:\bat>perl hello.pl
Use of uninitialized value $ARGV[0] in concatenation (.) or string at hello.pl l
ine 5.
Hello

C:\bat>perl hello.pl world
Hello world

   

论坛徽章:
0
19 [报告]
发表于 2014-09-12 16:42 |只看该作者
afukada 发表于 2014-09-12 15:17
Use of uninitialized value $ARGV[0] in string at get_TF_seq.pl line 5.
readline() on closed filehan ...


你的意思是说:程序中标量$ARGV[0]本应该指定的是gene_annotation.gff3,所以才会有出现未定义变量报错。虽然知道问题出在哪,但是不知如何修改程序,perl新手,见谅!

论坛徽章:
0
20 [报告]
发表于 2014-09-12 16:44 |只看该作者
afukada 发表于 2014-09-12 15:17
Use of uninitialized value $ARGV[0] in string at get_TF_seq.pl line 5.
readline() on closed filehan ...



谢谢,终于看懂了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP