#!/usr/bin/perl use strict; use Data::Dumper; require XML::Simple; my %params = getParams(); my $xml_file = new XML::Simple(); my $probes = $xml_file->XMLin($params{file}, keyattr => {}); for (my $i=0; $i<@{$probes->{probe}}; $i++) { printf " \n"; printf " \n", $probes->{probe}->[$i]->{time}; printf " %s\n",$probes->{probe}->[$i]->{date}; printf " %s_%d\n", $params{base},$i; printf " %d\n",$probes->{probe}->[$i]->{length}; printf " %d\n",$probes->{probe}->[$i]->{alignment_identity}; printf " %d\n",$probes->{probe}->[$i]->{probe_identity}; printf " %d\n", $probes->{probe}->[$i]->{transversions}; printf " %d\n",$probes->{probe}->[$i]->{transitions}; printf " %d\n", $probes->{probe}->[$i]->{species}->[0]->{gaps}; printf " %s\n", $probes->{probe}->[$i]->{probe_alignment}; printf " \n"; printf " \n"; printf " \n"; printf " \n"; printf " %d\n",$probes->{probe}->[$i]->{species}->[0]->{alignment_start}; printf " %d\n",$probes->{probe}->[$i]->{species}->[0]->{alignment_end}; printf " \n"; printf " \n"; printf " %d\n", $probes->{probe}->[$i]->{species}->[0]->{probe_start}; printf " %d\n", $probes->{probe}->[$i]->{species}->[0]->{probe_end}; printf " %s\n", $probes->{probe}->[$i]->{species}->[0]->{sequence}; printf " \n"; printf " \n"; printf " \n"; printf " \n"; printf " \n"; printf " %d\n",$probes->{probe}->[$i]->{species}->[1]->{alignment_start}; printf " %d\n", $probes->{probe}->[$i]->{species}->[1]->{alignment_end}; printf " \n"; printf " \n"; printf " %d\n",$probes->{probe}->[$i]->{species}->[1]->{probe_start}; printf " %d\n",$probes->{probe}->[$i]->{species}->[1]->{probe_end}; printf " %s\n", $probes->{probe}->[$i]->{species}->[1]->{sequence}; printf " \n"; printf " \n\n\n"; } ######################################################################### # getParams - gets all options from the command line or keeps defaults # dies if required options are not included # ######################################################################### sub getParams { my %opts; my $errstr = ""; use Getopt::Long; use Data::Dumper; GetOptions(\%opts, 'file=s','base=s'); if ($opts{help}) { $errstr = " "; } if ($errstr) { print <<"END_USAGE"; Description: This script will assign a "temp" name to each probe in the XML file based upon the base name given on the command line. Usage: name_probes.pl -file -base END_USAGE print "\n$errstr" if ($errstr); die("\n"); } return ( file => $opts{file}, base => $opts{base} ); }