[Bioperl-l] MicroarrayIO proposal

Allen Day allenday@ucla.edu
Fri, 11 Oct 2002 18:26:45 -0700 (PDT)


BTW, if you or anyone else wants to see the code, it's in the 
bioperl-microarray CVS repository.

-Allen

On Fri, 11 Oct 2002, Chervitz, Steve wrote:

> Allen,
> 
> Looks like a good start. Here are some comments.
> 
> * IO classes typically indicate the format of the file. In this case,
> "affymetrix" is ambiguous since Affy produces more than one file type (e.g.,
> cdf, chp, cel, etc.) If you want, you could organize the modules within a
> subdir such as MicroarrayIO/affymetrix/cdf.pm, but this is probably not
> necessary.
> 
> * ProbeI should extend PrimarySeqI (unless you're using containment).
> Inheritance seems right to me though. (This may be an example of where
> you'll have a sequence object without sequence data.) What does
> $probe->value return?
> 
> * ProbeI appears twice, in Bio::Expression and Bio::Expression::Microarray.
> Or maybe, one is a subclass of the other? If so, I'd give it a different
> name, e.g., MicroarrayProbeI.pm. 
> 
> * Presumably, Affymetrix::Array ISA Bio::Expression::MicroarrayI. I think
> it's a good idea to make this relationship more obvious in the module name,
> e.g., Affymetrix::AffyMicroarray. Similarly for Affymetrix::AffyData and
> Affymetrix::AffyProbe. It may seem redundant, but it helps.
> 
> Steve
> 
> > -----Original Message-----
> > From: Allen Day [mailto:allenday@ucla.edu] 
> > Sent: Friday, October 11, 2002 5:05 PM
> > To: Bioperl
> > Subject: [Bioperl-l] MicroarrayIO proposal
> > 
> > 
> > Hi all,
> > 
> > I'm getting ready to commit some MicroarrayIO classes to 
> > bioperl-live, but 
> > first I'd like to get some feedback on how I've set them up.  
> > See below:
> > 
> > Hierarchy is like this:
> > 
> > Bio/
> > 	Expression/
> > 		Microarray/
> > 			ProbeI.pm
> > 			Probeset.pm
> > 			Affymetrix/
> > 				Array.pm
> > 				Data.pm
> > 				Probe.pm
> > 		MicroarrayI.pm
> > 		MicroarrayIO.pm
> > 		MicroarrayIO/
> > 			affymetrix.pm
> > 		ProbeI.pm
> > 
> > 
> > 
> > 
> > And usage is like this:
> > 
> > use Bio::Expression::MicroarrayIO;
> > 
> > # create an IO object.  an array object is created
> > # based on -template
> > my $mio = Bio::Expression::MicroarrayIO->new(
> >              -file     => 'path/to/datafile',
> >              -format   => 'affymetrix',
> >              -template => 'path/to/template',
> >           );
> > 
> > # fill the array object created by the constructor
> > # with data from the next array.  returns a
> > # Bio::Expression::MicroarrayI compliant object
> > my $array = $mio->next_array;
> > 
> > # this will write affy-format files, given
> > # a MicroarrayI compliant object
> > my $out = Bio::Expression::MicroarrayIO->new(
> >              -file     => '>path/to/outputfile',
> >              -format   => 'affymetrix',
> >           );
> > 
> > #write $array to file
> > $out->write_array($array);
> > 
> > #print a list of outliers and masked probes
> > foreach my $probeset ($array->each_probeset){
> > 	foreach my $probe ($probeset->each_probe){
> > 		next unless $probe->is_outlier or $probe->is_masked;
> > 		print join "\t", (
> > 			$probeset->id,
> > 			$probe->x,
> > 			$probe->y,
> > 			$probe->value,
> > 			$probe->is_outlier,
> > 			$probe->is_masked,
> > 			"\n";
> > 		)
> > 	}
> > }
> > 
> > 
> > Comments appreciated.  Enjoy the weekend.
> > 
> > -Allen
> > 
> > 
> > _______________________________________________
> > Bioperl-l mailing list
> > Bioperl-l@bioperl.org http://bioperl.org/mailman/listinfo/bioperl-l
> > 
>