#!/usr/bin/perl

use strict;
use warnings;
use Data::Dumper;

my $filePrefix = shift;

my $statusFile = "./454ReadStatus.txt";
my $layoutFile = "./454IsotigsLayout.txt";
my $membersFile = $filePrefix . "_members.txt";
my $countFile = $filePrefix . "_membersCount.txt";
my $totalCount;

open (MEMBERS, ">$membersFile");
open (COUNT, ">$countFile");
open (LAYOUT, "<$layoutFile");
while (<LAYOUT>) {
	if (m/^>(isogroup\d+)  numIsotigs=(\d+)  numContigs=\d+/) {
		my %memberReads;
		my $ig = $1;
		my $numIsotigs = $2;
		my $skipLine = <LAYOUT>;
		my $contigLine = <LAYOUT>;
		chomp $contigLine;
		$contigLine =~ s/.*Contig : ([\d ]+) Total:.*/$1/;
		my @contigs = split /\s+/, $contigLine;
		foreach my $contigID (@contigs) {
			my $search = "contig".$contigID;
			my @contigReads = split /\n/, `grep $search $statusFile | cut -f1`;
			foreach my $read (@contigReads) {
				$memberReads{$read}++;
			}
		}
	my $memberCount = scalar(keys %memberReads);
	my $readString = join ' ', (sort keys %memberReads);
	print MEMBERS ">$ig numreads=$memberCount\n$readString\n";
	print COUNT "$memberCount\n" x $numIsotigs;
	$totalCount += $memberCount;
	}
}
print "Total reads in Isotigs: $totalCount\n";
close LAYOUT;
close MEMBERS;
close COUNT;
