#!/usr/bin/perl
# 
# Parser for DAS information- gets the
# XML from MIT via a DAS query and 
# parses it, returning each sequence 
# and storing it in a .csv next to the
# biobrick ID number.
#

use LWP::Simple; # For url access
use XML::Parser; # For parsing XML!

$F_OUT = open(FILEOUT, ">Sequences.txt");
$F_IN  = open(FILEIN, "<AllParts.txt");

my $parser = new XML::Parser(ErrorContext => 2);
$parser->setHandlers(Start => \&handle_start,
					 Char => \&handle_char,
					 End => \&handle_end);


for $line(<FILEIN>){
	
	$WebIN  = get("http://partsregistry.org/das/parts/dna/?segment=$line");
	$line =~ s/^\s+|\s+$//g ;  
	print FILEOUT "$line, ";
	$parser->parse($WebIN);
}

close(FILEIN);
close(FILEOUT);

sub handle_start{
    my ($p, $elt, %attr) = @_;
	return unless $elt eq 'DNA';
}

sub handle_char{
    my ($p, $string) = @_;
	$string =~ s/^\s+|\s+$//g;  
	print FILEOUT "$string";
}

sub handle_end{
	my ($p, $elt) = @_;
	return unless $elt eq 'DNA';
	print FILEOUT "\n";
}