Ya, here is a BioPerl solution to interleave to sequences:
#!/usr/bin/env perl
use strict;
use warnings;
use Bio::SeqIO;
my $fasta_in_1 = $ARGV[0];
my $fasta_in_2 = $ARGV[1];
my $fasta_out = ">interleave_1_2.fa";
my $seqio_in_1 = Bio::SeqIO->new(
-file => $fasta_in_1,
-format => 'Fasta',
);
my $seqio_in_2 = Bio::SeqIO->new(
-file => $fasta_in_2,
-format => 'Fasta',
);
my $seqio_out = Bio::SeqIO->new(
-file => $fasta_out,
-format => 'Fasta',
);
while ( my $seq_obj_1 = $seqio_in_1->next_seq() ) {
my $seq_obj_2 = $seqio_in_2->next_seq();
$seqio_out->write_seq($seq_obj_1);
$seqio_out->write_seq($seq_obj_2);
}
__END__
>qppq
ATATATTTATTATTATATATATTATATTATTA
>dfj
TATTATTATTTTATAT
>lsl
ATTATTATTATTATTAGGAGGAG
>ghg
ATATATAT
However, I'm not entirely sure of the best way to delimit the pairs with ============ using this approach. |