Summary | Included libraries | Package variables | Synopsis | Description | General documentation | Methods |
WebCvs | Raw content |
#get Bio::Variant::VariantI somehow
print $var->restriction_changes, "\n";
foreach $allele ($var->each_Allele) {
#work on Bio::Variation::Allele objects
}
SeqDiff | Description | Code |
_enzymes | No description | Code |
_revcompl | No description | Code |
add_Allele | Description | Code |
add_DBLink | Description | Code |
allele_mut | Description | Code |
allele_ori | Description | Code |
dnStreamSeq | Description | Code |
each_Allele | Description | Code |
each_DBLink | Description | Code |
id | Description | Code |
isMutation | Description | Code |
label | Description | Code |
length | Description | Code |
mut_number | Description | Code |
numbering | Description | Code |
proof | Description | Code |
region | Description | Code |
region_dist | Description | Code |
region_value | Description | Code |
restriction_changes | Description | Code |
status | Description | Code |
upStreamSeq | Description | Code |
SeqDiff | code | next | Top |
Title : SeqDiffSee Bio::Variation::SeqDiff for more information. |
add_Allele | code | prev | next | Top |
Title : add_Allele |
add_DBLink | code | prev | next | Top |
Title : add_DBLink |
allele_mut | code | prev | next | Top |
Title : allele_mutSee Bio::Variation::Allele for more. |
allele_ori | code | prev | next | Top |
Title : allele_oriSee Bio::Variation::Allele for more. |
dnStreamSeq | code | prev | next | Top |
Title : dnStreamSeq |
each_Allele | code | prev | next | Top |
Title : alleles |
each_DBLink | code | prev | next | Top |
Title : each_DBLink |
id | code | prev | next | Top |
Title : id |
isMutation | code | prev | next | Top |
|
label | code | prev | next | Top |
Title : label |
length | code | prev | next | Top |
Title : length |
mut_number | code | prev | next | Top |
Title : mut_number |
numbering | code | prev | next | Top |
Title : numbering |
proof | code | prev | next | Top |
Title : proof |
region | code | prev | next | Top |
Title : region |
region_dist | code | prev | next | Top |
Title : region_dist |
region_value | code | prev | next | Top |
Title : region_value |
restriction_changes | code | prev | next | Top |
Title : restriction_changes |
status | code | prev | next | Top |
Title : status |
upStreamSeq | code | prev | next | Top |
Title : upStreamSeq |
SeqDiff | description | prev | next | Top |
my ($self,$value) = @_; if (defined $value) { if( ! $value->isa('Bio::Variation::SeqDiff') ) { $self->throw("Is not a Bio::Variation::SeqDiff object but a [$value]"); return (undef); } else { $self->{'seqDiff'} = $value; } } unless (exists $self->{'seqDiff'}) { return (undef); } else { return $self->{'seqDiff'}; }}
_enzymes | description | prev | next | Top |
#REBASE version 005 type2.005}
my %enzymes = ( 'AarI' => 'cacctgc', 'AatII' => 'gacgtc', 'AccI' => 'gt[ac][gt]ac', 'AceIII' => 'cagctc', 'AciI' => 'ccgc', 'AclI' => 'aacgtt', 'AcyI' => 'g[ag]cg[ct]c', 'AflII' => 'cttaag', 'AflIII' => 'ac[ag][ct]gt', 'AgeI' => 'accggt', 'AhaIII' => 'tttaaa', 'AloI' => 'gaac[acgt][acgt][acgt][acgt][acgt][acgt]tcc', 'AluI' => 'agct', 'AlwNI' => 'cag[acgt][acgt][acgt]ctg', 'ApaBI' => 'gca[acgt][acgt][acgt][acgt][acgt]tgc', 'ApaI' => 'gggccc', 'ApaLI' => 'gtgcac', 'ApoI' => '[ag]aatt[ct]', 'AscI' => 'ggcgcgcc', 'AsuI' => 'gg[acgt]cc', 'AsuII' => 'ttcgaa', 'AvaI' => 'c[ct]cg[ag]g', 'AvaII' => 'gg[at]cc', 'AvaIII' => 'atgcat', 'AvrII' => 'cctagg', 'BaeI' => 'ac[acgt][acgt][acgt][acgt]gta[ct]c', 'BalI' => 'tggcca', 'BamHI' => 'ggatcc', 'BbvCI' => 'cctcagc', 'BbvI' => 'gcagc', 'BbvII' => 'gaagac', 'BccI' => 'ccatc', 'Bce83I' => 'cttgag', 'BcefI' => 'acggc', 'BcgI' => 'cga[acgt][acgt][acgt][acgt][acgt][acgt]tgc', 'BciVI' => 'gtatcc', 'BclI' => 'tgatca', 'BetI' => '[at]ccgg[at]', 'BfiI' => 'actggg', 'BglI' => 'gcc[acgt][acgt][acgt][acgt][acgt]ggc', 'BglII' => 'agatct', 'BinI' => 'ggatc', 'BmgI' => 'g[gt]gccc', 'BplI' => 'gag[acgt][acgt][acgt][acgt][acgt]ctc', 'Bpu10I' => 'cct[acgt]agc', 'BsaAI' => '[ct]acgt[ag]', 'BsaBI' => 'gat[acgt][acgt][acgt][acgt]atc', 'BsaXI' => 'ac[acgt][acgt][acgt][acgt][acgt]ctcc', 'BsbI' => 'caacac', 'BscGI' => 'cccgt', 'BseMII' => 'ctcag', 'BsePI' => 'gcgcgc', 'BseRI' => 'gaggag', 'BseSI' => 'g[gt]gc[ac]c', 'BsgI' => 'gtgcag', 'BsiI' => 'cacgag', 'BsiYI' => 'cc[acgt][acgt][acgt][acgt][acgt][acgt][acgt]gg', 'BsmAI' => 'gtctc', 'BsmI' => 'gaatgc', 'Bsp1407I' => 'tgtaca', 'Bsp24I' => 'gac[acgt][acgt][acgt][acgt][acgt][acgt]tgg', 'BspGI' => 'ctggac', 'BspHI' => 'tcatga', 'BspLU11I' => 'acatgt', 'BspMI' => 'acctgc', 'BspMII' => 'tccgga', 'BsrBI' => 'ccgctc', 'BsrDI' => 'gcaatg', 'BsrI' => 'actgg', 'BstEII' => 'ggt[acgt]acc', 'BstXI' => 'cca[acgt][acgt][acgt][acgt][acgt][acgt]tgg', 'BtrI' => 'cacgtc', 'BtsI' => 'gcagtg', 'Cac8I' => 'gc[acgt][acgt]gc', 'CauII' => 'cc[cg]gg', 'Cfr10I' => '[ag]ccgg[ct]', 'CfrI' => '[ct]ggcc[ag]', 'CjeI' => 'cca[acgt][acgt][acgt][acgt][acgt][acgt]gt', 'CjePI' => 'cca[acgt][acgt][acgt][acgt][acgt][acgt][acgt]tc', 'ClaI' => 'atcgat', 'CviJI' => '[ag]gc[ct]', 'CviRI' => 'tgca', 'DdeI' => 'ct[acgt]ag', 'DpnI' => 'gatc', 'DraII' => '[ag]gg[acgt]cc[ct]', 'DraIII' => 'cac[acgt][acgt][acgt]gtg', 'DrdI' => 'gac[acgt][acgt][acgt][acgt][acgt][acgt]gtc', 'DrdII' => 'gaacca', 'DsaI' => 'cc[ag][ct]gg', 'Eam1105I' => 'gac[acgt][acgt][acgt][acgt][acgt]gtc', 'EciI' => 'ggcgga', 'Eco31I' => 'ggtctc', 'Eco47III' => 'agcgct', 'Eco57I' => 'ctgaag', 'EcoNI' => 'cct[acgt][acgt][acgt][acgt][acgt]agg', 'EcoRI' => 'gaattc', 'EcoRII' => 'cc[at]gg', 'EcoRV' => 'gatatc', 'Esp3I' => 'cgtctc', 'EspI' => 'gct[acgt]agc', 'FauI' => 'cccgc', 'FinI' => 'gggac', 'Fnu4HI' => 'gc[acgt]gc', 'FnuDII' => 'cgcg', 'FokI' => 'ggatg', 'FseI' => 'ggccggcc', 'GdiII' => 'cggcc[ag]', 'GsuI' => 'ctggag', 'HaeI' => '[at]ggcc[at]', 'HaeII' => '[ag]gcgc[ct]', 'HaeIII' => 'ggcc', 'HaeIV' => 'ga[ct][acgt][acgt][acgt][acgt][acgt][ag]tc', 'HgaI' => 'gacgc', 'HgiAI' => 'g[at]gc[at]c', 'HgiCI' => 'gg[ct][ag]cc', 'HgiEII' => 'acc[acgt][acgt][acgt][acgt][acgt][acgt]ggt', 'HgiJII' => 'g[ag]gc[ct]c', 'HhaI' => 'gcgc', 'Hin4I' => 'ga[cgt][acgt][acgt][acgt][acgt][acgt][acg]tc', 'HindII' => 'gt[ct][ag]ac', 'HindIII' => 'aagctt', 'HinfI' => 'ga[acgt]tc', 'HpaI' => 'gttaac', 'HpaII' => 'ccgg', 'HphI' => 'ggtga', 'Hpy178III' => 'tc[acgt][acgt]ga', 'Hpy188I' => 'tc[acgt]ga', 'Hpy99I' => 'cg[at]cg', 'KpnI' => 'ggtacc', 'Ksp632I' => 'ctcttc', 'MaeI' => 'ctag', 'MaeII' => 'acgt', 'MaeIII' => 'gt[acgt]ac', 'MboI' => 'gatc', 'MboII' => 'gaaga', 'McrI' => 'cg[ag][ct]cg', 'MfeI' => 'caattg', 'MjaIV' => 'gt[acgt][acgt]ac', 'MluI' => 'acgcgt', 'MmeI' => 'tcc[ag]ac', 'MnlI' => 'cctc', 'MseI' => 'ttaa', 'MslI' => 'ca[ct][acgt][acgt][acgt][acgt][ag]tg', 'MstI' => 'tgcgca', 'MwoI' => 'gc[acgt][acgt][acgt][acgt][acgt][acgt][acgt]gc', 'NaeI' => 'gccggc', 'NarI' => 'ggcgcc', 'NcoI' => 'ccatgg', 'NdeI' => 'catatg', 'NheI' => 'gctagc', 'NlaIII' => 'catg', 'NlaIV' => 'gg[acgt][acgt]cc', 'NotI' => 'gcggccgc', 'NruI' => 'tcgcga', 'NspBII' => 'c[ac]gc[gt]g', 'NspI' => '[ag]catg[ct]', 'PacI' => 'ttaattaa', 'Pfl1108I' => 'tcgtag', 'PflMI' => 'cca[acgt][acgt][acgt][acgt][acgt]tgg', 'PleI' => 'gagtc', 'PmaCI' => 'cacgtg', 'PmeI' => 'gtttaaac', 'PpiI' => 'gaac[acgt][acgt][acgt][acgt][acgt]ctc', 'PpuMI' => '[ag]gg[at]cc[ct]', 'PshAI' => 'gac[acgt][acgt][acgt][acgt]gtc', 'PsiI' => 'ttataa', 'PstI' => 'ctgcag', 'PvuI' => 'cgatcg', 'PvuII' => 'cagctg', 'RleAI' => 'cccaca', 'RsaI' => 'gtac', 'RsrII' => 'cgg[at]ccg', 'SacI' => 'gagctc', 'SacII' => 'ccgcgg', 'SalI' => 'gtcgac', 'SanDI' => 'ggg[at]ccc', 'SapI' => 'gctcttc', 'SauI' => 'cct[acgt]agg', 'ScaI' => 'agtact', 'ScrFI' => 'cc[acgt]gg', 'SduI' => 'g[agt]gc[act]c', 'SecI' => 'cc[acgt][acgt]gg', 'SexAI' => 'acc[at]ggt', 'SfaNI' => 'gcatc', 'SfeI' => 'ct[ag][ct]ag', 'SfiI' => 'ggcc[acgt][acgt][acgt][acgt][acgt]ggcc', 'SgfI' => 'gcgatcgc', 'SgrAI' => 'c[ag]ccgg[ct]g', 'SimI' => 'gggtc', 'SmaI' => 'cccggg', 'SmlI' => 'ct[ct][ag]ag', 'SnaBI' => 'tacgta', 'SnaI' => 'gtatac', 'SpeI' => 'actagt', 'SphI' => 'gcatgc', 'SplI' => 'cgtacg', 'SrfI' => 'gcccgggc', 'Sse232I' => 'cgccggcg', 'Sse8387I' => 'cctgcagg', 'Sse8647I' => 'agg[at]cct', 'SspI' => 'aatatt', 'Sth132I' => 'cccg', 'StuI' => 'aggcct', 'StyI' => 'cc[at][at]gg', 'SwaI' => 'atttaaat', 'TaqI' => 'tcga', 'TaqII' => 'gaccga', 'TatI' => '[at]gtac[at]', 'TauI' => 'gc[cg]gc', 'TfiI' => 'ga[at]tc', 'TseI' => 'gc[at]gc', 'Tsp45I' => 'gt[cg]ac', 'Tsp4CI' => 'ac[acgt]gt', 'TspEI' => 'aatt', 'TspRI' => 'ca[cg]tg[acgt][acgt]', 'Tth111I' => 'gac[acgt][acgt][acgt]gtc', 'Tth111II' => 'caa[ag]ca', 'UbaGI' => 'cac[acgt][acgt][acgt][acgt]gtg', 'UbaPI' => 'cgaacg', 'VspI' => 'attaat', 'XbaI' => 'tctaga', 'XcmI' => 'cca[acgt][acgt][acgt][acgt][acgt][acgt][acgt][acgt][acgt]tgg', 'XhoI' => 'ctcgag', 'XhoII' => '[ag]gatc[ct]', 'XmaIII' => 'cggccg', 'XmnI' => 'gaa[acgt][acgt][acgt][acgt]ttc' ); return %enzymes; } 1;
_revcompl | description | prev | next | Top |
# side effect: lower case letters}
my ($seq) = shift; $seq = lc $seq; $seq =~ tr/acgtrymkswhbvdnx/tgcayrkmswdvbhnx/; return CORE::reverse $seq;
add_Allele | description | prev | next | Top |
my ($self,$value) = @_; if (defined $value) { if( ! $value->isa('Bio::Variation::Allele') ) { my $com = ref $value; $self->throw("Is not a Allele object but a [$com]"); return 0; } else { if ( $self->isa('Bio::Variation::AAChange') ) { $value->seq( uc $value->seq) if $value->seq; } else { $value->seq( lc $value->seq) if $value->seq; } push(@{$self->{'alleles'}},$value); $self->allele_mut($value); #????}
return 1; } } else { return 0; }
add_DBLink | description | prev | next | Top |
my ($self,$com) = @_; if( $com && ! $com->isa('Bio::Annotation::DBLink') ) { $self->throw("Is not a link object but a [$com]"); } $com && push(@{$self->{'link'}},$com);}
allele_mut | description | prev | next | Top |
my ($self,$value) = @_; if( defined $value) { if ( ! ref $value || ! $value->isa('Bio::Variation::Allele')) { $self->throw("Value is not Bio::Variation::Allele but [$value]"); } else { if ( $self->isa('Bio::Variation::AAChange') ) { $value->seq( uc $value->seq) if $value->seq; } else { $value->seq( lc $value->seq) if $value->seq; } $self->{'allele_mut'} = $value; } } return $self->{'allele_mut'};}
allele_ori | description | prev | next | Top |
my ($self,$value) = @_; if( defined $value) { if ( ! ref $value || ! $value->isa('Bio::Variation::Allele')) { $self->throw("Value is not Bio::Variation::Allele but [$value]"); } else { if ( $self->isa('Bio::Variation::AAChange') ) { $value->seq( uc $value->seq) if $value->seq; } else { $value->seq( lc $value->seq) if $value->seq; } $self->{'allele_ori'} = $value; } } return $self->{'allele_ori'};}
dnStreamSeq | description | prev | next | Top |
my ($self,$value) = @_; if( defined $value) { $self->{'dnstreamseq'} = $value; } return $self->{'dnstreamseq'};}
each_Allele | description | prev | next | Top |
my ($self,@args) = @_; return @{$self->{'alleles'}};}
each_DBLink | description | prev | next | Top |
my ($self) = @_; return @{$self->{'link'}};}
id | description | prev | next | Top |
my ($self) = @_; my @ids = $self->each_DBLink; my $id = $ids[0] if scalar @ids > 0; return $id->database. "::". $id->primary_id if $id;}
isMutation | description | prev | next | Top |
my ($self,$value) = @_; if (defined $value) { if ($value ) { $self->{'isMutation'} = 1; } else { $self->{'isMutation'} = 0; } } return $self->{'isMutation'};}
label | description | prev | next | Top |
my ($self,$value) = @_; $self->throw("[$self] has not implemeted method 'label'");}
length | description | prev | next | Top |
my ($self,$value) = @_; if ( defined $value) { $self->{'length'} = $value; } if ( ! exists $self->{'length'} ) { return 0; } return $self->{'length'};}
mut_number | description | prev | next | Top |
my ($self,$value) = @_; if (defined $value) { $self->{'mut_number'} = $value; } unless (exists $self->{'mut_number'}) { return (''); } else { return $self->{'mut_number'}; }}
numbering | description | prev | next | Top |
my ($self,$value) = @_; my %numbering = (entry => 1, coding => 1 ); if( defined $value) { $value = lc $value; if ($numbering{$value}) { $self->{'numbering'} = $value; } else { $self->throw("'$value' is not a valid for numbering!"); } } if( ! exists $self->{'numbering'} ) { return "$self"; } return $self->{'numbering'};}
proof | description | prev | next | Top |
my ($self,$value) = @_; my %proof = (computed => 1, experimental => 1 ); if( defined $value) { $value = lc $value; if ($proof{$value}) { $self->{'proof'} = $value; } else { $self->throw("$value is not valid proof value!"); } } return $self->{'proof'};}
region | description | prev | next | Top |
my ($self,$value) = @_; if( defined $value) { $self->{'region'} = $value; } return $self->{'region'};}
region_dist | description | prev | next | Top |
my ($self,$value) = @_; if( defined $value) { if ( not $value =~ /^[+-]?\d+$/ ) { $self->throw("[$value] for region_dist has to be an integer\n"); } else { $self->{'region_dist'} = $value; } } return $self->{'region_dist'};}
region_value | description | prev | next | Top |
my ($self,$value) = @_; if( defined $value) { $self->{'region_value'} = $value; } return $self->{'region_value'};}
restriction_changes | description | prev | next | Top |
my ($self) = @_; if (not $self->{'re_changes'}) { my %re = &_enzymes; # complain if used on AA data}
if ($self->isa('Bio::Variation::AAChange')) { $self->throw('Restriction enzymes do not bite polypeptides!'); } #sanity checks
$self->warn('Upstream sequence is empty!') if $self->upStreamSeq eq ''; $self->warn('Downstream sequence is empty!') if $self->dnStreamSeq eq ''; # $self->warn('Original allele sequence is empty!')
# if $self->allele_ori eq '';
# $self->warn('Mutated allele sequence is empty!')
# if $self->allele_mut eq '';
#reuse the non empty DNA level list at RNA level if the flanks are identical
#Hint: Check DNAMutation object first
if ($self->isa('Bio::Variation::RNAChange') and $self->DNAMutation and $self->upStreamSeq eq $self->DNAMutation->upStreamSeq and $self->dnStreamSeq eq $self->DNAMutation->dnStreamSeq and $self->DNAMutation->restriction_changes ne '' ) { $self->{'re_changes'} = $self->DNAMutation->restriction_changes; } else { #maximum length of a type II restriction site in the current REBASE
my ($le_dn) = 15; my ($le_up) = $le_dn; #reduce the flank lengths if the desired length is not available
$le_dn = CORE::length ($self->dnStreamSeq) if $le_dn > CORE::length ($self->dnStreamSeq); $le_up = CORE::length ($self->upStreamSeq) if $le_up > CORE::length ($self->upStreamSeq); #Build sequence strings to compare
my ($oriseq, $mutseq); $oriseq = $mutseq = substr($self->upStreamSeq, -$le_up, $le_up); $oriseq .= $self->allele_ori->seq if $self->allele_ori->seq; $mutseq .= $self->allele_mut->seq if $self->allele_mut->seq; $oriseq .= substr($self->dnStreamSeq, 0, $le_dn); $mutseq .= substr($self->dnStreamSeq, 0, $le_dn); # ... and their reverse complements
my $oriseq_rev = _revcompl ($oriseq); my $mutseq_rev = _revcompl ($mutseq); # collect results into a string
my $rec = ''; foreach my $enz (sort keys (%re)) { my $site = $re{$enz}; my @ori = ($oriseq=~ /$site/g); my @mut = ($mutseq=~ /$site/g); my @ori_r = ($oriseq_rev =~ /$site/g); my @mut_r = ($mutseq_rev =~ /$site/g); $rec .= '+'. $enz. ", " if (scalar @ori < scalar @mut) or (scalar @ori_r < scalar @mut_r); $rec .= '-'. $enz. ", " if (scalar @ori > scalar @mut) or (scalar @ori_r > scalar @mut_r); } $rec = substr($rec, 0, CORE::length($rec) - 2) if $rec ne ''; $self->{'re_changes'} = $rec; } } return $self->{'re_changes'}
status | description | prev | next | Top |
my ($self,$value) = @_; my %status = (suspected => 1, proven => 1 ); if( defined $value) { $value = lc $value; if ($status{$value}) { $self->{'status'} = $value; } else { $self->throw("$value is not valid status value!"); } } if( ! exists $self->{'status'} ) { return "$self"; } return $self->{'status'};}
upStreamSeq | description | prev | next | Top |
my ($self,$value) = @_; if( defined $value) { $self->{'upstreamseq'} = $value; } return $self->{'upstreamseq'};}
FEEDBACK | Top |
Mailing Lists | Top |
bioperl-l@bioperl.org - General discussion
http://bio.perl.org/MailList.html - About the mailing lists
Reporting Bugs | Top |
bioperl-bugs@bio.perl.org
http://bugzilla.bioperl.org/
AUTHOR - Heikki Lehvaslaiho | Top |
EMBL Outstation, European Bioinformatics Institute
Wellcome Trust Genome Campus, Hinxton
Cambs. CB10 1SD, United Kingdom
APPENDIX | Top |