perl - 如何使用包含元字符的参数使用 Perl(系统)执行外部程序“

标签 perl

我正在尝试从 Perl 代码执行外部程序,即 cutadapt ( https://cutadapt.readthedocs.io/en/stable/guide.html )。

但是,一旦我添加了我想要的 ;required,我就会收到来自 cutadapt 的错误消息。

所有打印的命令在终端中运行良好。

我的perl代码如下:

#string without ;
my $cutadapt_cmd1 = '/home/USER/miniconda3/bin/cutadapt -a "GAGGAAGTAAAAGTCRTAACAAGGT...ATCGATGAAGAACGCAGCGAA" --discard-untrimmed -q 20 -m 200 -o SAMPLE_NAME_401.IonXpress_0401.trim.fq IonXpress_0401_rawlib.basecaller.fq';
#string with ;
my $cutadapt_cmd2 = '/home/USER/miniconda3/bin/cutadapt -a "GAGGAAGTAAAAGTCRTAACAAGGT;required...ATCGATGAAGAACGCAGCGAA" --discard-untrimmed -q 20 -m 200 -o SAMPLE_NAME_401.IonXpress_0401.trim.fq IonXpress_0401_rawlib.basecaller.fq';
#array without ;
my @cutadapt_cmd3 = ('/home/USER/miniconda3/bin/cutadapt', '-a', 'GAGGAAGTAAAAGTCRTAACAAGGT...ATCGATGAAGAACGCAGCGAA', '--discard-untrimmed' ,'-q' ,'20', '-m', '200', '-o' ,'SAMPLE_NAME_401.IonXpress_0401.trim.fq', 'IonXpress_0401_rawlib.basecaller.fq');
#array with ;
my @cutadapt_cmd4 = ('/home/USER/miniconda3/bin/cutadapt', '-a', 'GAGGAAGTAAAAGTCRTAACAAGGT;required...ATCGATGAAGAACGCAGCGAA', '--discard-untrimmed' ,'-q' ,'20', '-m', '200', '-o' ,'SAMPLE_NAME_401.IonXpress_0401.trim.fq', 'IonXpress_0401_rawlib.basecaller.fq');
#array with ; and with integers
my @cutadapt_cmd5 = ('/home/USER/miniconda3/bin/cutadapt', '-a', 'GAGGAAGTAAAAGTCRTAACAAGGT;required...ATCGATGAAGAACGCAGCGAA', '--discard-untrimmed' ,'-q' ,20, '-m', 200, '-o' ,'SAMPLE_NAME_401.IonXpress_0401.trim.fq', 'IonXpress_0401_rawlib.basecaller.fq');
#Works
print("\n\ncmd1\n\n");
system $cutadapt_cmd1;
#Fails
print("\n\ncmd2\n\n");
system $cutadapt_cmd2;
#Works
print("\n\ncmd3\n\n");
system @cutadapt_cmd3;
#Fails
print("\n\ncmd4\n\n");
system @cutadapt_cmd4;
#Fails
print("\n\ncmd5\n\n");
system @cutadapt_cmd5;

输出如下:

cmd1

This is cutadapt 1.18 with Python 3.7.1
Command line parameters: -a GAGGAAGTAAAAGTCRTAACAAGGT...ATCGATGAAGAACGCAGCGAA --discard-untrimmed -q 20 -m 200 -o SAMPLE_NAME_401.IonXpress_0401.trim.fq IonXpress_0401_rawlib.basecaller.fq
Processing reads on 1 core in single-end mode ...
Finished in 0.47 s (11 us/read; 5.67 M reads/minute).

=== Summary ===

Total reads processed:                  44,086
Reads with adapters:                         0 (0.0%)
Reads that were too short:               7,268 (16.5%)
Reads written (passing filters):             0 (0.0%)

Total basepairs processed:    11,458,046 bp
Quality-trimmed:                 371,723 bp (3.2%)
Total written (filtered):              0 bp (0.0%)

=== Adapter 2 ===

Sequence: GAGGAAGTAAAAGTCRTAACAAGGT...ATCGATGAAGAACGCAGCGAA; Type: linked; Length: 25+21; 5' trimmed: 0 times; 3' trimmed: 0 times



cmd2

Traceback (most recent call last):
  File "/home/USER/miniconda3/bin/cutadapt", line 12, in <module>
    sys.exit(main())
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/__main__.py", line 741, in main
    pipeline = pipeline_from_parsed_args(options, paired, pair_filter_mode, quality_filename, is_interleaved_output)
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/__main__.py", line 614, in pipeline_from_parsed_args
    adapters = adapter_parser.parse_multi(options.adapters, options.anywhere, options.front)
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/adapters.py", line 335, in parse_multi
    adapters.extend(self.parse(spec, cmdline_type))
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/adapters.py", line 322, in parse
    yield self._parse(spec, cmdline_type, name=None)
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/adapters.py", line 237, in _parse
    name1, front1, sequence1, back1, parameters1 = self._parse_not_linked(spec1, 'front')
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/adapters.py", line 170, in _parse_not_linked
    parameters = AdapterParser._parse_parameters(parameters_spec)
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/adapters.py", line 132, in _parse_parameters
    raise KeyError('Unknown parameter {}'.format(key))
KeyError: 'Unknown parameter required'


cmd3

This is cutadapt 1.18 with Python 3.7.1
Command line parameters: -a GAGGAAGTAAAAGTCRTAACAAGGT...ATCGATGAAGAACGCAGCGAA --discard-untrimmed -q 20 -m 200 -o SAMPLE_NAME_401.IonXpress_0401.trim.fq IonXpress_0401_rawlib.basecaller.fq
Processing reads on 1 core in single-end mode ...
Finished in 0.50 s (11 us/read; 5.27 M reads/minute).

=== Summary ===

Total reads processed:                  44,086
Reads with adapters:                         0 (0.0%)
Reads that were too short:               7,268 (16.5%)
Reads written (passing filters):             0 (0.0%)

Total basepairs processed:    11,458,046 bp
Quality-trimmed:                 371,723 bp (3.2%)
Total written (filtered):              0 bp (0.0%)

=== Adapter 2 ===

Sequence: GAGGAAGTAAAAGTCRTAACAAGGT...ATCGATGAAGAACGCAGCGAA; Type: linked; Length: 25+21; 5' trimmed: 0 times; 3' trimmed: 0 times



cmd4

Traceback (most recent call last):
  File "/home/USER/miniconda3/bin/cutadapt", line 12, in <module>
    sys.exit(main())
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/__main__.py", line 741, in main
    pipeline = pipeline_from_parsed_args(options, paired, pair_filter_mode, quality_filename, is_interleaved_output)
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/__main__.py", line 614, in pipeline_from_parsed_args
    adapters = adapter_parser.parse_multi(options.adapters, options.anywhere, options.front)
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/adapters.py", line 335, in parse_multi
    adapters.extend(self.parse(spec, cmdline_type))
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/adapters.py", line 322, in parse
    yield self._parse(spec, cmdline_type, name=None)
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/adapters.py", line 237, in _parse
    name1, front1, sequence1, back1, parameters1 = self._parse_not_linked(spec1, 'front')
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/adapters.py", line 170, in _parse_not_linked
    parameters = AdapterParser._parse_parameters(parameters_spec)
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/adapters.py", line 132, in _parse_parameters
    raise KeyError('Unknown parameter {}'.format(key))
KeyError: 'Unknown parameter required'


cmd5

Traceback (most recent call last):
  File "/home/USER/miniconda3/bin/cutadapt", line 12, in <module>
    sys.exit(main())
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/__main__.py", line 741, in main
    pipeline = pipeline_from_parsed_args(options, paired, pair_filter_mode, quality_filename, is_interleaved_output)
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/__main__.py", line 614, in pipeline_from_parsed_args
    adapters = adapter_parser.parse_multi(options.adapters, options.anywhere, options.front)
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/adapters.py", line 335, in parse_multi
    adapters.extend(self.parse(spec, cmdline_type))
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/adapters.py", line 322, in parse
    yield self._parse(spec, cmdline_type, name=None)
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/adapters.py", line 237, in _parse
    name1, front1, sequence1, back1, parameters1 = self._parse_not_linked(spec1, 'front')
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/adapters.py", line 170, in _parse_not_linked
    parameters = AdapterParser._parse_parameters(parameters_spec)
  File "/home/USER/miniconda3/lib/python3.7/site-packages/cutadapt/adapters.py", line 132, in _parse_parameters
    raise KeyError('Unknown parameter {}'.format(key))
KeyError: 'Unknown parameter required'

根据我想要如何处理数据,我确实需要告诉 cutadapt 需要适配器。

最佳答案

我无法使用 conda(来自 bioconda channel 的 cutadapt-2.5 软件包)安装的最新 cutadapt 版本(带有 Python 3.7.3 的 cutadapt 2.5)重现您的问题。所有 5 个命令均成功,给出了预期的输出(修剪 1 或 2 个读取,将 1 或 2 个读取写入输出)。我使用 bash 和 zsh shell 以及 perl v5.18.2 没有出现问题。 根据您的输出,您使用的是较旧的 cutadapt 版本(cutadapt 1.18 和 Python 3.7.1)。

尝试使用 conda 安装最新的 cutadapt 版本,请参阅下面的说明。这是导致您的问题最有可能的原因。

使用 conda 安装 cutadapt(假设 conda 已安装并且 bioconda 包含在 channel 中):

conda update conda

conda search cutadapt

conda create --name cutadapt cutadapt

# Enable conda cutadapt environment:
source activate cutadapt

# ... run cutadapt ...

# At the end, exit the conda cutadapt environment:
source deactivate

从 Perl 脚本运行 cutadapt:

cat > IonXpress_0401_rawlib.basecaller.fq <<EOF
@HWI-EAS209_0006_FC706VJ:5:58:5894:21141#ATCACG/1
GAGGAAGTAAAAGTCATAACAAGGTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTATCGATGAAGAACGCAGCGAA
+
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
@HWI-EAS209_0006_FC706VJ:5:58:5895:21142#ATCACG/1
CCCCCCCCCCCCCCCCCCCCCCCCTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTATCGATGAAGAACGCAGCGAA
+
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
EOF

编辑问题中显示的脚本:

  • 删除硬编码的 cutadapt 路径(使用 conda env 不需要)。

  • 将 -m 200 更改为 -m 2 以查看修剪中的差异 非常短的阅读示例。

  • 将输出(修剪后的)文件内容打印到 STDOUT 中。

    ./cutadapt.pl &> cutadapt.log

./cutadapt.pl:

#!/usr/bin/env perl

# string without ;
my $cutadapt_cmd1 = 'cutadapt -a "GAGGAAGTAAAAGTCRTAACAAGGT...ATCGATGAAGAACGCAGCGAA" --discard-untrimmed -q 20 -m 2 -o SAMPLE_NAME_401.IonXpress_0401.trim.fq IonXpress_0401_rawlib.basecaller.fq';

# string with ;
my $cutadapt_cmd2 = 'cutadapt -a "GAGGAAGTAAAAGTCRTAACAAGGT;required...ATCGATGAAGAACGCAGCGAA" --discard-untrimmed -q 20 -m 2 -o SAMPLE_NAME_401.IonXpress_0401.trim.fq IonXpress_0401_rawlib.basecaller.fq';

# array without ;
my @cutadapt_cmd3 = ('cutadapt', '-a', 'GAGGAAGTAAAAGTCRTAACAAGGT...ATCGATGAAGAACGCAGCGAA', '--discard-untrimmed' ,'-q' ,'20', '-m', '2', '-o' ,'SAMPLE_NAME_401.IonXpress_0401.trim.fq', 'IonXpress_0401_rawlib.basecaller.fq');

# array with ;
my @cutadapt_cmd4 = ('cutadapt', '-a', 'GAGGAAGTAAAAGTCRTAACAAGGT;required...ATCGATGAAGAACGCAGCGAA', '--discard-untrimmed' ,'-q' ,'20', '-m', '2', '-o' ,'SAMPLE_NAME_401.IonXpress_0401.trim.fq', 'IonXpress_0401_rawlib.basecaller.fq');

# array with ; and with integers
my @cutadapt_cmd5 = ('cutadapt', '-a', 'GAGGAAGTAAAAGTCRTAACAAGGT;required...ATCGATGAAGAACGCAGCGAA', '--discard-untrimmed' ,'-q' ,20, '-m', 2, '-o' ,'SAMPLE_NAME_401.IonXpress_0401.trim.fq', 'IonXpress_0401_rawlib.basecaller.fq');

# Works
print("\n\ncmd1\n\n");
system $cutadapt_cmd1;
system "cat SAMPLE_NAME_401.IonXpress_0401.trim.fq";

# Fails
print("\n\ncmd2\n\n");
system $cutadapt_cmd2;
system "cat SAMPLE_NAME_401.IonXpress_0401.trim.fq";

# Works
print("\n\ncmd3\n\n");
system @cutadapt_cmd3;
system "cat SAMPLE_NAME_401.IonXpress_0401.trim.fq";

# Fails
print("\n\ncmd4\n\n");
system @cutadapt_cmd4;
system "cat SAMPLE_NAME_401.IonXpress_0401.trim.fq";

# Fails
print("\n\ncmd5\n\n");
system @cutadapt_cmd5;
system "cat SAMPLE_NAME_401.IonXpress_0401.trim.fq";

cutadapt.log:



cmd1

This is cutadapt 2.5 with Python 3.7.3
Command line parameters: -a GAGGAAGTAAAAGTCRTAACAAGGT...ATCGATGAAGAACGCAGCGAA --discard-untrimmed -q 20 -m 2 -o SAMPLE_NAME_401.IonXpress_0401.trim.fq IonXpress_0401_rawlib.basecaller.fq
WARNING: You specified a linked adapter as '-a ADAPTER1...ADAPTER2'. The
interpretation of what this means has changed in Cutadapt 2.0. (The 5'
adapter is now no longer anchored by default.) To get results consist
with the old behavior, you need to anchor the 5' adapter explicitly as
in '-a ^ADAPTER1...ADAPTER2'.
Processing reads on 1 core in single-end mode ...
Finished in 0.00 s (1803 us/read; 0.03 M reads/minute).

=== Summary ===

Total reads processed:                       2
Reads with adapters:                         2 (100.0%)
Reads that were too short:                   0 (0.0%)
Reads written (passing filters):             2 (100.0%)

Total basepairs processed:           152 bp
Quality-trimmed:                       0 bp (0.0%)
Total written (filtered):             85 bp (55.9%)

=== Adapter 1 ===

Sequence: GAGGAAGTAAAAGTCRTAACAAGGT...ATCGATGAAGAACGCAGCGAA; Type: linked; Length: 25+21; 5' trimmed: 1 times; 3' trimmed: 2 times

No. of allowed errors:
0-9 bp: 0; 10-19 bp: 1; 20-25 bp: 2

No. of allowed errors:
0-9 bp: 0; 10-19 bp: 1; 20-21 bp: 2

Overview of removed sequences at 5' end
length  count   expect  max.err error counts
25  1   0.0 2   1



Overview of removed sequences at 3' end
length  count   expect  max.err error counts
21  2   0.0 2   2
@HWI-EAS209_0006_FC706VJ:5:58:5894:21141#ATCACG/1
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
+
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
@HWI-EAS209_0006_FC706VJ:5:58:5895:21142#ATCACG/1
CCCCCCCCCCCCCCCCCCCCCCCCTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
+
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE


cmd2

This is cutadapt 2.5 with Python 3.7.3
Command line parameters: -a GAGGAAGTAAAAGTCRTAACAAGGT;required...ATCGATGAAGAACGCAGCGAA --discard-untrimmed -q 20 -m 2 -o SAMPLE_NAME_401.IonXpress_0401.trim.fq IonXpress_0401_rawlib.basecaller.fq
WARNING: You specified a linked adapter as '-a ADAPTER1...ADAPTER2'. The
interpretation of what this means has changed in Cutadapt 2.0. (The 5'
adapter is now no longer anchored by default.) To get results consist
with the old behavior, you need to anchor the 5' adapter explicitly as
in '-a ^ADAPTER1...ADAPTER2'.
Processing reads on 1 core in single-end mode ...
Finished in 0.00 s (1747 us/read; 0.03 M reads/minute).

=== Summary ===

Total reads processed:                       2
Reads with adapters:                         1 (50.0%)
Reads that were too short:                   0 (0.0%)
Reads written (passing filters):             1 (50.0%)

Total basepairs processed:           152 bp
Quality-trimmed:                       0 bp (0.0%)
Total written (filtered):             30 bp (19.7%)

=== Adapter 1 ===

Sequence: GAGGAAGTAAAAGTCRTAACAAGGT...ATCGATGAAGAACGCAGCGAA; Type: linked; Length: 25+21; 5' trimmed: 1 times; 3' trimmed: 1 times

No. of allowed errors:
0-9 bp: 0; 10-19 bp: 1; 20-25 bp: 2

No. of allowed errors:
0-9 bp: 0; 10-19 bp: 1; 20-21 bp: 2

Overview of removed sequences at 5' end
length  count   expect  max.err error counts
25  1   0.0 2   1



Overview of removed sequences at 3' end
length  count   expect  max.err error counts
21  1   0.0 2   1
@HWI-EAS209_0006_FC706VJ:5:58:5894:21141#ATCACG/1
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
+
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE


cmd3

This is cutadapt 2.5 with Python 3.7.3
Command line parameters: -a GAGGAAGTAAAAGTCRTAACAAGGT...ATCGATGAAGAACGCAGCGAA --discard-untrimmed -q 20 -m 2 -o SAMPLE_NAME_401.IonXpress_0401.trim.fq IonXpress_0401_rawlib.basecaller.fq
WARNING: You specified a linked adapter as '-a ADAPTER1...ADAPTER2'. The
interpretation of what this means has changed in Cutadapt 2.0. (The 5'
adapter is now no longer anchored by default.) To get results consist
with the old behavior, you need to anchor the 5' adapter explicitly as
in '-a ^ADAPTER1...ADAPTER2'.
Processing reads on 1 core in single-end mode ...
Finished in 0.00 s (1845 us/read; 0.03 M reads/minute).

=== Summary ===

Total reads processed:                       2
Reads with adapters:                         2 (100.0%)
Reads that were too short:                   0 (0.0%)
Reads written (passing filters):             2 (100.0%)

Total basepairs processed:           152 bp
Quality-trimmed:                       0 bp (0.0%)
Total written (filtered):             85 bp (55.9%)

=== Adapter 1 ===

Sequence: GAGGAAGTAAAAGTCRTAACAAGGT...ATCGATGAAGAACGCAGCGAA; Type: linked; Length: 25+21; 5' trimmed: 1 times; 3' trimmed: 2 times

No. of allowed errors:
0-9 bp: 0; 10-19 bp: 1; 20-25 bp: 2

No. of allowed errors:
0-9 bp: 0; 10-19 bp: 1; 20-21 bp: 2

Overview of removed sequences at 5' end
length  count   expect  max.err error counts
25  1   0.0 2   1



Overview of removed sequences at 3' end
length  count   expect  max.err error counts
21  2   0.0 2   2
@HWI-EAS209_0006_FC706VJ:5:58:5894:21141#ATCACG/1
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
+
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
@HWI-EAS209_0006_FC706VJ:5:58:5895:21142#ATCACG/1
CCCCCCCCCCCCCCCCCCCCCCCCTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
+
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE


cmd4

This is cutadapt 2.5 with Python 3.7.3
Command line parameters: -a GAGGAAGTAAAAGTCRTAACAAGGT;required...ATCGATGAAGAACGCAGCGAA --discard-untrimmed -q 20 -m 2 -o SAMPLE_NAME_401.IonXpress_0401.trim.fq IonXpress_0401_rawlib.basecaller.fq
WARNING: You specified a linked adapter as '-a ADAPTER1...ADAPTER2'. The
interpretation of what this means has changed in Cutadapt 2.0. (The 5'
adapter is now no longer anchored by default.) To get results consist
with the old behavior, you need to anchor the 5' adapter explicitly as
in '-a ^ADAPTER1...ADAPTER2'.
Processing reads on 1 core in single-end mode ...
Finished in 0.00 s (1732 us/read; 0.03 M reads/minute).

=== Summary ===

Total reads processed:                       2
Reads with adapters:                         1 (50.0%)
Reads that were too short:                   0 (0.0%)
Reads written (passing filters):             1 (50.0%)

Total basepairs processed:           152 bp
Quality-trimmed:                       0 bp (0.0%)
Total written (filtered):             30 bp (19.7%)

=== Adapter 1 ===

Sequence: GAGGAAGTAAAAGTCRTAACAAGGT...ATCGATGAAGAACGCAGCGAA; Type: linked; Length: 25+21; 5' trimmed: 1 times; 3' trimmed: 1 times

No. of allowed errors:
0-9 bp: 0; 10-19 bp: 1; 20-25 bp: 2

No. of allowed errors:
0-9 bp: 0; 10-19 bp: 1; 20-21 bp: 2

Overview of removed sequences at 5' end
length  count   expect  max.err error counts
25  1   0.0 2   1



Overview of removed sequences at 3' end
length  count   expect  max.err error counts
21  1   0.0 2   1
@HWI-EAS209_0006_FC706VJ:5:58:5894:21141#ATCACG/1
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
+
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE


cmd5

This is cutadapt 2.5 with Python 3.7.3
Command line parameters: -a GAGGAAGTAAAAGTCRTAACAAGGT;required...ATCGATGAAGAACGCAGCGAA --discard-untrimmed -q 20 -m 2 -o SAMPLE_NAME_401.IonXpress_0401.trim.fq IonXpress_0401_rawlib.basecaller.fq
WARNING: You specified a linked adapter as '-a ADAPTER1...ADAPTER2'. The
interpretation of what this means has changed in Cutadapt 2.0. (The 5'
adapter is now no longer anchored by default.) To get results consist
with the old behavior, you need to anchor the 5' adapter explicitly as
in '-a ^ADAPTER1...ADAPTER2'.
Processing reads on 1 core in single-end mode ...
Finished in 0.00 s (1796 us/read; 0.03 M reads/minute).

=== Summary ===

Total reads processed:                       2
Reads with adapters:                         1 (50.0%)
Reads that were too short:                   0 (0.0%)
Reads written (passing filters):             1 (50.0%)

Total basepairs processed:           152 bp
Quality-trimmed:                       0 bp (0.0%)
Total written (filtered):             30 bp (19.7%)

=== Adapter 1 ===

Sequence: GAGGAAGTAAAAGTCRTAACAAGGT...ATCGATGAAGAACGCAGCGAA; Type: linked; Length: 25+21; 5' trimmed: 1 times; 3' trimmed: 1 times

No. of allowed errors:
0-9 bp: 0; 10-19 bp: 1; 20-25 bp: 2

No. of allowed errors:
0-9 bp: 0; 10-19 bp: 1; 20-21 bp: 2

Overview of removed sequences at 5' end
length  count   expect  max.err error counts
25  1   0.0 2   1



Overview of removed sequences at 3' end
length  count   expect  max.err error counts
21  1   0.0 2   1
@HWI-EAS209_0006_FC706VJ:5:58:5894:21141#ATCACG/1
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
+
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEE

关于perl - 如何使用包含元字符的参数使用 Perl(系统)执行外部程序“,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58324322/

相关文章:

linux - 如何使用 File::stat 模块在 Perl 中查找文件夹大小?

perl - 一个数组和一个变量作为 Perl 子程序中的参数

perl - Perl中的FTP上传目录和子目录

perl - 我可以使用 Perl 中的 Exporter 导出结构吗?

perl - Perl Catalyst 操作是如何实现的?

bash - 跨多个脚本定义公共(public)变量?

algorithm - 使用perl查找数组中值的算法 - 绝对面试题

perl - 如何使用 key 将一个 Perl 散列转换为另一个?

perl - 我如何运行 Perl 测试并将结果与​​ Ant 中的 JUnit 报告合并?

regex - Perl 忽略正则表达式替换的替换侧的空格