Just ran a little test and you do need to make the last change (&Getopts() to getopts()) or you will get a warning.
Hi all,
I'm trying to use GapFiller for closing gaps in the scaffold resulted from transcriptome assembly. But, it fail to run. Based on its manual, I typed ./GapFiller that the following error appeared:
-bash: ./GapFiller.pl: /usr/bin/perl^M: bad interpreter: No such file or directory
And with the command of perl GapFiller.pl the error is below:
Can't locate getopts.pl in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.18.2 /usr/local/share/perl/5.18.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.18 /usr/share/perl/5.18 /usr/local/lib/site_perl .) at GapFiller.pl line 51.
As far as I read the manual of software, we have to just type ./GapFiller.pl or perl GapFiller. There is no make file or configure file in the package. Could anybody please let me know how to solve the error?
1 answer
There are two errors here, neither of which you can help. To solve the first issue, run the program with "perl GapFiller.pl" instead of "./GapFiller.pl" to fix the interpreter error (use full path to the program obviously). The second issue can be solved by replacing the line that says:
require 'getopts.pl';
with
use Getopt::Std;
The former is such an ancient library you won't find it on a modern computer and there is no reason to use that. You might see a line that says something like "&Getopts(...);" and you should replace that with "getopts(...)" or just leave it alone. It may work without the last modification.
Many thanks for your reply. It works with your suggested modifications
Glad to hear and thanks for your response. That will help people in the future since they can quickly tell that this is a solution to the problem. Also, you may want to make this solved because that would help others find the right answer.
No problem and thanks again, SES. Just one thing about GapFiller, how the deviation of the mean distance was determined in the software? It's 0.25 for example provided by developers. Actually, for my data, standard deviation is 67, which is not a decimal number.
That refers to the deviation in insert size between the reads. So, if you specify an insert size of 200 and set the allowed deviation of 0.25 then the actual allowable deviation in mapping will be 50 (200*0.25). I think this is for determining what is good vs. bad mappings to reduce spurious joining of contigs.
Thank you so much. So, the allowed error of 0.38 should be set for standard deviation of 67, yes?
SES, please advise me regarding the libraries txt file, for example "lib 1 file1_1.fq file1_2.fq etc", this means lib1 composed of two paired end files (1_1 and 1_2), my means is if they have to merged as one library? In fact, I have two separate files, one is forward reads and another reverse ones, please kindly let me know how to merged them for this purpose?
Please create a new post for these questions, more people will see it that way. Thanks.
Log in to answer this question.
And what happened when you googled and researched the "Can't locate getopts.pl in @INC" error?
So sorry, I got it. The problem is the lack of getopts.pl that should be installed.