1 2
my @test = ("mafft", "$file.fasta", "infile", "5", "1", "\n", "y", "q"); system(@test);
1 2
my @befehle = ("$file.fasta", "infile", "5", "1", "\n", "y", "q"); system("mafft", @befehle);
1
2
3
4
5
6
7
8
9
unknown option: Persicaria_ITS.fasta.fasta
Unknown option: infile
Unknown option: 5
Unknown option: 1
Unknown option:
Unknown option: y
/usr/local/bin/mafft: Cannot open q.
system("mafft", "$file.fasta");
1 2 3
my $execstr = "mafft $file.fasta infile 5 1"; print "$execstr\n"; # system($execstr);
2016-07-03T17:39:50 hlubenowWeiß' nicht, ob man auch ein Array übergeben kann, aber ich würde lieber einen String übergeben und den vorher genau im einzelnen zusammenbauen.
Code (perl): (dl )1 2 3my $execstr = "mafft $file.fasta infile 5 1"; print "$execstr\n"; # system($execstr);
1 2
my @mafft = ("mafft", "--auto", "--phylipout", "--reorder", "$file.fasta > infile"); system(@mafft) == 0 or die "system @mafft failed: $?";
mafft --auto --phylipout --reorder file.fasta > infile
Guest LordKCode: (dl )mafft ... > infile
1 2
my @mafft = ("mafft", "--auto", "--phylipout", "--reorder", "infile > outfile"); system(@mafft) == 0 or die "system @mafft failed: $?";
system("mafft --auto --phylipout --reorder file.fasta > infile");
1
2
with open('/tmp/outfile', 'w') as f:
subprocess.check_call(['command', 'arg1', 'arg2'], stdout=f)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
my $outfile = 'infile'; my @cmd = ("mafft", "--auto", "--phylipout", "--reorder", "$file.fasta" ); open my $out_fh, '>', $outfile or die "open($outfile, w) failed: $!"; open( my $pipe, '-|', @cmd ) or die sprintf "Could not open pipe from '%s': $!", join( ' ', @cmd); while ( my $line =<$pipe> ) { print $out_fh $line or die "Write to '$outfile' failed: $!"; } close $pipe; close $out_fh or die "close($outfile) failed: $!";