Probeset - A module to handle Affymetrix probes and store informations. This module follow the Class::Struct OO-Perl structure, implements AUTOLOAD. To use some methods you need to feed your object with required informations (coming from AffyDB and mySQL tables).
use Probeset;
my $obj= Probeset -> new (
probe_id => "1443133_at",
chipcode => "ET_U133A"
);
print "PROBE ID: ", $obj-> get_probe_id, "\n";
print "CHIPCODE", $obj-> get_chipcode, "\n";
$obj -> set_organism("");
$obj -> set_affy_date("1/1/2005");
my $obj2 = $obj -> clone (
probe_id => "3334567_at",
chipcode => "GZ_U122B",
)
print "\n\nCount is ", Probeset -> get_count(), "\n\n";
This perl library uses perl5 objects to make it easy to create and query a Probeset object. Probeset.pm is a class to handle probesets of a genechip. It support objects construction, objects cloning, read/write permissions of the attributes, attributes required and attributes no init (can't be initialized after a cloning of the first object). This package defines a hash structure to store and use information about a probeset. Using a AffyDB.pm you can create and query a mySQL database, with Probeset.pm you recall this informations and use it. With methods make_absolute_map and make_cdna_absolute_map you can cross information coming from: Affymetrix, Ludwing Institute of cancer research and UCSC exon maps to retrive target sequences absolute positions on the genome and generate original data about ProbePairs position.
use Probeset;
print $VERSION;
Display current Module Version
use Probeset;
$obj = Probeset -> new (...)
Create a new object with two arguments:
probe_id
chipcode
[ any other optional argument ]
Attributes are checked and initialized one by one. A check id made to verify attribute permission.
use Probeset;
$obj = Probeset -> clone ($obj_temp);
Clone an esistent object, mantain only the attributes with init permission
use Probeset;
$obj -> get_probe_id();
$obj -> set_seq_src("GENBANK");
Get and Set methods depens by AUTOLOAD. AUTOLOAD verify is we want access or change data and make check on your request. After this step you retrive informations (get) or set information in the hash (set)
use AffyDB; use Probeset;
New AffyDB connection
my $affydb = AffyDB -> new (
mysql => 'affy:localhost',
chip => "$chipcode",
refseqcode => "$refseq_code"
);
my $probeset_name = '1007_s_at';
New Probeset object
my $probeset = Probeset -> new (
probeset_id => $probeset_name,
chipcode => $chipcode
);
Take informations from AffyDB
my @locations = $affydb -> get_locations($probeset_name); my @targets = $affydb -> get_distinct_licr($probeset_name);
SET infos in my object as reference to an array
$probeset -> set_locations(\@locations); $probeset -> set_licr_info(\@targets);
LOOP for every REFSEQ
for (my $n = 0; $n<=$#targets; $n++) {
my @refseq_map = $affydb -> get_refseq_map ($targets[$n][0]);
$probeset -> make_absolute_map ($targets[$n][0], @refseq_map);
}
List of all the attributes that came from AFFI with def value and permissions read/write/requiredi/noinit You can add attributes in his hash without change the code. First value is the default value. Second value stock permissions and type we can have a SCALAR or an ANONYMOUS ARRAY or an HASH as value.
my %_attribute_properties = (
_probeset_id => [ '????' , 'read.required' ], # Single Probeset ID
_chipcode => [ '????' , 'read.required' ], # Chip small name as into mysql table (ABBR)
_genechip => [ '????' , 'read.write' ], # Genechip complete name
_organism => [ '????' , 'read.write' ], # Organism
_affy_date => [ '????' , 'read.write' ], # Annotation date
_public_id => [ '????' , 'read.write.noinit' ], # Public_id from affy tables
_seq_type => [ '????' , 'read.write.noinit' ], # Affy seq_type
_seq_src => [ '????' , 'read.write.noinit' ], # Affy seq_source
_trans_id => [ '????' , 'read.write.noinit' ], # Affy Cluster Transcript ID
_target_des => [ '????' , 'read.write.noinit' ], # U48705 /FEATURE=mRNA /DEFINITION=HSU48705 Human receptor tyrosine kinase DDR gene, complete cds
_arch_unigene => [ '????' , 'read.write.noinit' ], # Original unigene ID
_description => [ '????' , 'read.write.noinit' ], # Probe method annotation description
_cluster => [ '????' , 'read.write.noinit' ], # ID of the transcripts sed to annotate the probeset
_assignments => [ '????' , 'read.write.noinit' ], # mRNA assignments
_notes => [ '????' , 'read.write.noinit' ], # Annotation Notes
_affy_align => [ ['????'] , 'read.write.noinit.array' ], # alignments from affy format (VERSION: | ALIGNMENTS: | OVERLAPS: )
_affy_note => [ ['????'] , 'read.write.noinit.array' ], # annotation affymetrix format (PUBLIC ID: | header: value)
_affy_func => [ ['????'] , 'read.write.noinit.array' ], # functional annotation from affymetrix
_probes => [ ['????'] , 'read.write.noinit.array' ], # List of probes id with X and Y and oligo (probe_id | X: |Y: |oligo)
_locations => [ ['????'] , 'read.write.noinit.array' ], # List of matching positions with licr_id and strands (set_id | probe | licr_id | position | strand )
_cdna_locations => [ ['????'] , 'read.write.noinit.array' ], # List of matching locations with cDNA licr id
_licr_info => [ ['????'] , 'read.write.noinit.array' ], # List of DISTINCT licr matching ID for this probe_set (licr_id | seq_type | gene_symbol | unigene | band)
_cdna_licr_info => [ ['????'] , 'read.write.noinit.array' ], # List of DISTINCT cDNA matching this probeset
_refseqposition => [ { } , 'read.write.noinit.hash' ], # RefSeq position on the genome (REFSEQ_ID => Chromosome| strand| TxStart| TxEnd| CdsStart| CdsEnd)
_cdnaposition => [ { } , 'read.write.noinit.hash' ], # Cdna Position on the Genome (REFSEQ_ID => Chromosome| strand| TxStart| TxEnd| CdsStart| CdsEnd)
_exons_map => [ { } , 'read.write.noinit.hash' ], # exon map created from method make_exon_map
_cdna_map => [ { } , 'read.write.noinit.hash' ], # exon map or blocks for cDNA
_exons_num => [ { } , 'read.write.noinit.hash' ], # Number of exons for every licr_id as ARRAY
_cdna_exons_num => [ { } , 'read.write.noinit.hash' ], # Number of exons (blocks) for cDNA
_abs_locations => [ { } , 'read.write.noinit.hash' ], # List of Probes locations over chromosome () per ogni REFSEQ
_cdna_abs_locations => [ { } , 'read.write.noinit.hash' ] # List of ProbePairs locations over Chr for cDNA
);
1.10
AffyDB.pm
http://bio.ifom-ieo-campus.it/splicy
Rambaldi, <davide.rambaldi@ifom-ieo-campus.it>
Copyright 2005 by Rrambaldi
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.