Командная строка для использования Perl Script на нескольких файлах -- perl поле с участием command-line поле с участием command-prompt поле с участием fastq пол Связанный проблема

Command line for using perl script on multiple files


0
vote

проблема

русский

Сценарий Perl, данный мне, содержит:

 <код> yaml4  

В начале и должен быть запущен на нескольких файлах FastQ. Я не уверен, какую командную строку использовать так, чтобы скрипт Perl проходит через несколько файлов в папке.

Одна из строк, которые я пробовал:

 <код> yaml5  
Английский оригинал

The perl script given to me contains:

use strict;  open(IN1, "<".$ARGV[0]); open(IN2, "<".$ARGV[1]); open(OUT, ">".$ARGV[2]); 

at the start and is supposed to be run on multiple fastq files. I'm not sure what command line to use so that the perl script goes through the multiple files in the folder.

One of the lines i tried is:

perl script.pl *.fastq.gz 
</div
           
   
   

Список ответов

2
 
vote

Эта программа ожидает, что будет называться так:

 <код> gulp-pluck3  

Так что вам в настоящее время нужно дать ему два входных файла и выходной файл.

Если вы хотите изменить его, чтобы обработать более двух входных файлов, то вы, по-прежнему) все еще нужно пройти его и выходной файл. Что-то вроде этого, возможно:

 <код> gulp-pluck4  

, а затем внутри вашего кода вы можете написать:

 <код> gulp-pluck5  

Вам также придется изменить код, который открывает файлы, так как в настоящее время он в данный момент вводится, чтобы использовать два входных файла и выходной файл.

Но вот что-то еще рассмотреть. Возможно, не открывайте какие-либо файлы вообще. Вместо этого напишите свой код в виде фильтра в стиле Unix.

 <код> gulp-pluck6  

Тогда просто прочитайте из <код> gulp-pluck7 (пустой оператор ввода файла) и напишите в <код> gulp-pluck8 .

 

This program is expecting to be called like this:

$ program.pl input1.dat input2.dat output.dat 

So you currently need to to give it two input files and an output file.

If you want to change it to process more than two input files, then you'll (presumably) still need to pass it an output file as well. Something like this, perhaps:

$ program.pl *.fastq.gz output.dat 

And then inside your code, you can write:

my $outfile = pop @ARGV; my @infiles = @ARGV; 

You would also have to change the code that opens filehandles as it's currently hard-coded to use two input files and an output file.

But, here's something else to consider. Perhaps, don't open any files at all. Instead, write your code as a Unix-style filter.

$ program.pl input_files* > output.dat 

Then simply read from <> (the empty file input operator) and write to STDOUT.

</div
 
 
1
 
vote

на основе трех строк кода в вопросе, вы должны дать ему ровно три параметра:

 <код> gulp-pluck9  

Использование подстановочного знака, когда вы пытались сделать, вряд ли будет работать должным образом (если правильные три файла не находятся в каталоге и , сортируют в правильном порядке в списке каталогов).

Хуже, есть вероятность того, что она может повредить третий подходящий файл <код> var gulp = require('gulp'); var data = require('gulp-data'); var pluck = require('gulp-pluck'); var frontMatter = require('gulp-front-matter'); gulp.task('front-matter-to-json', function(){ return gulp.src('./posts/*.md') .pipe(frontMatter({property: 'meta'})) .pipe(data(function(file){ file.meta.path = file.path; })) .pipe(pluck('meta', 'posts-metadata.json')) .pipe(data(function(file){ file.contents = new Buffer(JSON.stringify(file.meta)) })) .pipe(gulp.dest('dist')) }) 0 , поскольку скрипт, возможно, попытался написать вывод в него, если для скрипта не будет достаточной проверки ошибок, чтобы заметить, что она получила Неправильное количество аргументов и прерваний - и, учитывая, что в трех <код> var gulp = require('gulp'); var data = require('gulp-data'); var pluck = require('gulp-pluck'); var frontMatter = require('gulp-front-matter'); gulp.task('front-matter-to-json', function(){ return gulp.src('./posts/*.md') .pipe(frontMatter({property: 'meta'})) .pipe(data(function(file){ file.meta.path = file.path; })) .pipe(pluck('meta', 'posts-metadata.json')) .pipe(data(function(file){ file.contents = new Buffer(JSON.stringify(file.meta)) })) .pipe(gulp.dest('dist')) }) 1 нет проверки ошибок> var gulp = require('gulp'); var data = require('gulp-data'); var pluck = require('gulp-pluck'); var frontMatter = require('gulp-front-matter'); gulp.task('front-matter-to-json', function(){ return gulp.src('./posts/*.md') .pipe(frontMatter({property: 'meta'})) .pipe(data(function(file){ file.meta.path = file.path; })) .pipe(pluck('meta', 'posts-metadata.json')) .pipe(data(function(file){ file.contents = new Buffer(JSON.stringify(file.meta)) })) .pipe(gulp.dest('dist')) }) 1 , которые вы разместили, это кажется, что это сделает такой чек.

 

Based on the three lines of code in the question, you should give it exactly three parameters:

script.pl [input file 1] [input file 2] [output file] 

Using a wildcard as you attempted to do is unlikely to work properly (unless the correct three files are in the directory and sort into the correct order in the directory listing).

Worse, there's a possibility that it may have damaged the third file matching *.fastq.gz, as the script may have attempted to write output into it unless the script has sufficient error checking to have noticed that it got the wrong number of arguments and abort - and, given that there are no error checks in the three open statements you posted, it seems unlikely that it would make such a check.

</div
 
 
0
 
vote

Типичное использование для запуска скрипта, как это будет

 <код> perl script.pl in.1.fastq in.2.fastq out_file # or: perl script.pl in.1.fastq.gz in.2.fastq.gz out_file   
Часто два входных файла прочитаны 1 и читают 2 файла FastQ, результаты прогонов парной конечной секвенирования, например, на секвенсорах Illumina.

Использование <Код> * В этом контексте может быть проблематичным, так как он может расширяться в более чем 2 файла (не то, что вы хотите).

Чтобы запустить более одной пары файлов FastQ, сделайте что-то подобное. Сделайте файл с 1 образцом на одну строку, например файл <код> samples.txt , как это (я принимаю не пробелы в образцах):

 <код> sample_a sample_b ...   

Затем запустите скрипт на каждом образце, для чтения 1 и прочитайте 2:

 <код> cat samples.txt | xargs -n1 -I{} perl script.pl {}.1.fastq {}.2.fastq {}.out   

здесь,
<Код> xargs -n1 : выполняет команду для каждой 1 строки (здесь, для каждой строки),
<Код> -I{} : назначает слово <код> {} , который мы повторно используем для имени файлов.

 

A typical usage to run the script like this would be

perl script.pl in.1.fastq in.2.fastq out_file # or: perl script.pl in.1.fastq.gz in.2.fastq.gz out_file 

Often, the two input files are read 1 and read 2 fastq files, the results of paired end sequencing runs, for example on Illumina sequencers.

Using * in this context could be problematic, as it may expand into more that 2 files (not what you want).

To run for more than one pair of fastq files, do something like this. Make a file with 1 sample name per line, for example file samples.txt such as this (I am assuming no blanks in sample names):

sample_a sample_b ... 

Then run the script on each sample, for read 1 and read 2:

cat samples.txt | xargs -n1 -I{} perl script.pl {}.1.fastq {}.2.fastq {}.out 

Here,
xargs -n1 : executes the command for each 1 string (here, for each line),
-I{} : assigns the word to {}, which we then reuse for the file names.

</div
 
 

Связанный проблема

0  Заменив хеш-имя со скалярным в Perl  ( Replacing hash name with scalar in perl ) 
У меня есть хэш: <код> my $normal_hash = {a => '10',}; print $normal_hash; # prints HASH(0x......) Я хочу обратиться к этому хэш следующим образом: <...

2  Как сделать переводчик Mod_Perl Sticky по некоторым конвенциям?  ( How to make a mod perl interpreter sticky by some conventions ) 
Как кажется, что mod_perl только удается Perl Переводчики на VHOST Есть любой способ, которым я могу влиять, какой клонированный переводчик MOD_PERL Выбирае...

4  ДБИ :: Реализация CSV на основе SQLite  ( Dbicsv implementation based on sqlite ) 
У меня много текстовых файлов, сравнивая друг друга в «SQL манере». <Код> DBD::CSV , очевидно, хороший выбор, чтобы начать, так как я могу использовать синт...

1  Как мне позвонить сценарий Perl с моим контроллером Symfony2?  ( How do i call a perl script from my symfony2 controller ) 
Я пытаюсь реализовать автоматическую отправку в систему управления информацией из-за моего приложения Symfony2. Кто-то еще написал сценарий Perl для представл...

-1  Порядок персонажей строки в Perl  ( Order of characters of the string in perl ) 
Я хочу написать код, который рассматривает строки с символами в разном порядке, как равный, поскольку в строках помещают такие же символы. Например, предполож...

0  Импорт свободно структурированных данных в базу данных  ( Importing loosely structured data into database ) 
Я получаю ежедневные каналы передачи данных с данными, которые просто структурированы. Мне нужно импортировать его в базу данных, поэтому я могу запустить отч...

2  Перл Как распечатать хеш с несколькими ключами?  ( Perl how to print out a hash with multiple keys ) 
Я устанавливаю свой хэш в моей функции как <код> $hash{$loginId}{$month}=$hash{$loginId}{$month}+$time1; И я могу распечатать значение в одном месте как...

3  Ищите функцию, не работающие в Perl  ( Seek function not working in perl ) 
Я попробовал ниже фрагмент кода, и функция поиска, похоже, не работает. <код> funct("ls -ltr /scratch/dummy/dum*"); sub funct { print " Recording "; open(...

0  Проблема Regex Perl, последний символ усеченный  ( Perl regex issue last character truncated ) 
имеют странную проблему с моим регелем. Мое регулярное выражение сокращает последний символ, в приведенном ниже примере его следует вернуть значение 32, но ...

1  Настройка типа содержимого для файлов .mts  ( Content type setting for mts files ) 
В моем приложении я люблю предоставлять объект загрузки файлов. Как я могу установить типы содержимого для файлов .mts. Например: <код> if ($fileName =~ /...

19  Как я могу получить простоту PHP (развертывание), но мощность Perl?  ( How can i get phps deployment simplicity but perls power ) 
Я презираю язык PHP, и я совершенно уверен, что я не одинок. Но великая вещь о PHP - это способ, которым mod_php принимает и скрывает детали образования горы ...

3  Как я могу использовать Perl для проверки программ C?  ( How can i use perl to test c programs ) 
Я ищу некоторые учебные пособия, показывающие, как я могу проверить программы C, написав программы Perl для автоматизации тестирования. В основном я хочу из...

1  Одинокий Perl Regex для удаления сбежал Ampersands изнутри атрибутов Href, но не других  ( Single perl regex for removing escaped ampersands from inside href attributes bu ) 
Это больше вопрос головоломки для моего любопытства, чем что-либо еще. Я ищу единую замену регулярного выражения выражения, которые будут конвертировать сущно...

3  Perl: Как распечатать следующую строку после сопоставления шаблона?  ( Perl how to print next line after matching a pattern ) 
Я хотел бы распечатать определенные данные после сопоставления шаблона или строки. У меня есть такой файл: <код> #****************************** List : ...

4  Невозможно получить работу стада Perl  ( Unable to get perls flock working ) 
Я не могу сделать Perl's <код> flock Работа. Я блокирую файл, проверяя возврат, чтобы убедиться, что он на самом деле заблокирован, и я все еще могу открыт...

Связанный проблема

0  Заменив хеш-имя со скалярным в Perl 
2  Как сделать переводчик Mod_Perl Sticky по некоторым конвенциям? 
4  ДБИ :: Реализация CSV на основе SQLite 
1  Как мне позвонить сценарий Perl с моим контроллером Symfony2? 
-1  Порядок персонажей строки в Perl 
0  Импорт свободно структурированных данных в базу данных 
2  Перл Как распечатать хеш с несколькими ключами? 
3  Ищите функцию, не работающие в Perl 
0  Проблема Regex Perl, последний символ усеченный 
1  Настройка типа содержимого для файлов .mts 
19  Как я могу получить простоту PHP (развертывание), но мощность Perl? 
3  Как я могу использовать Perl для проверки программ C? 
1  Одинокий Perl Regex для удаления сбежал Ampersands изнутри атрибутов Href, но не других 
3  Perl: Как распечатать следующую строку после сопоставления шаблона? 
4  Невозможно получить работу стада Perl 



© 2021 www.qaru.top All Rights Reserved. Q&A House все права защищены


Licensed under cc by-sa 3.0 with attribution required.