Надеюсь, вы сможете помочь ученому расшифровать, что не так с кодом, который я пытаюсь запустить, чтобы очистить некоторые результаты NGS. Сам файл Perl взят из https://github.com/mtokuyama/ERVmap, хотя я публикую приведенный ниже код для справки. Другие файлы Perl в пакете работают просто отлично, и, хотя я создал возможность передачи для использования терминала linux, Perl немного за мной.
Терминал linux I я сейчас использую: Ubuntu 16.04.6 LTS
Это код Perl, который я пытаюсь запустить, используя следующую командную строку на linux, как указано на странице GitHub:
perl clean_htseq.pl ./ c c2 __
#!/usr/bin/env perl
#$Id: run_clean_htseq.pl,v 1.2 2015/03/02 17:24:35 yk336 Exp $
#
# create pbs file
#
use warnings;
use strict;
use File::Basename;
use POSIX;
my $dir = shift;
my $e1 = shift;
my $e2 = shift;
my $stop = shift;
die "$e1 eq $e2" if ($e1 eq $e2);
my $find = "find $dir -name \"*${e1}\"";
my $out = `$find`;
my @files = split(/\n/, $out);
for my $f (@files) {
my $o = $f;
$o =~ s/${e1}$/$e2/;
my $cmd = "./clean_htseq.pl $stop $f > $o";
print "$cmd\n";
system($cmd);
}
Первая ошибка, которая у меня возникла, заключалась в том, что _clean_htseq.pl_ не был найден (строка 30, уже изменена для решения), которую я решил, добавив перед ней ./
и указав разрешение на использование файла сценария.
Моя текущая проблема с кодом / командной строкой заключается в следующей ошибке:
Use of uninitialized value $e2 in string eq at ./clean_htseq.pl line 18.
find: warning: Unix filenames usually don't contain slashes (though pathnames do). That means that '-name ‘*./SRR7251667.c’' will probably evaluate to false all the time on this system. You might find the '-wholename' test more useful, or perhaps '-samefile'. Alternatively, if you are using GNU grep, you could use 'find ... -print0 | grep -FzZ ‘*./SRR7251667.c’'.
Это было отслежено до "__" в конце командной строки, в то время как я ' Я уверен, что это должно что-то значить для сценария, который я удалил, и привел к следующей ошибке:
Use of uninitialized value $stop in concatenation (.) or string at clean_htseq.pl line 30.
./clean_htseq.pl ./SRR7251667.c > ./SRR7251667.c2
Use of uninitialized value $e1 in string eq at ./clean_htseq.pl line 18.
Use of uninitialized value $e2 in string eq at ./clean_htseq.pl line 18.
Use of uninitialized value $e1 in concatenation (.) or string at ./clean_htseq.pl line 18.
Use of uninitialized value $e2 in concatenation (.) or string at ./clean_htseq.pl line 18.
eq at ./clean_htseq.pl line 18.
Ошибка также возникает при удалении "." из "./", но возвращается с ошибкой о невозможности найти файл _clean_htseq.pl_, который находится в рабочем каталоге.