#!/usr/bin/perl -w # # Splits multi-contig-ace file into several single-contig-ace files # # Author: Bernd Senf ( bsenf@fli-leibniz.de ), 2008 # # Syntax: perl ace_split.pl < 454Contigs.ace # my $cnt=1; my $in_contig=0; my @lines; sub print_contig { my $ace; my $rd=0; foreach ( @lines ) { $rd++ if /^AF /; } return if ( ! $rd ); $ace=sprintf("contig_%5.5d.ace",$cnt); $lst=sprintf("contig_%5.5d.lst",$cnt); $cnt++; print STDERR "Write $ace and $lst with $rd traces ...\n"; open(ACE,">$ace") || die "Can't create $ace : $!\n"; print ACE "AS 1 $rd\n\n"; print ACE @lines; close(ACE); open(LST,">$lst") || die "Can't create $lst : $!\n"; foreach (@lines) { if ( /^RD (\S+) / ) { my @A=split(/\./,$1); print LST "$A[0]\n"; }; } close(LST) } while (<>) { if (/^CO/) { $in_contig=1; print_contig(); @lines=(); } push (@lines,$_) if ( $in_contig); } print_contig();