[BioC] Distinguish Synonymous vs. Non-synonymous SNPs

Michael Dondrup Michael.Dondrup at uni.no
Mon Feb 1 12:11:27 CET 2010


Hi Xiwei,

as you asked for a way to do this in R, the Biostrings package might also do what you want. You can use the translate() function in Biostrings
and simply compare the output of both alleles. Btw, Biomart contains data from various databases, so this doesn't apply to your setting where you discover a new 
variation, eg. by sequencing  and then want to examine the effect. I didn't get this first. Here is a little toy example inspired from the example how this could be done:

> library(Biostrings)
Loading required package: IRanges


> allele1 <- DNAString("TTGAAAACTCCC")
> allele2 <- allele1
> # add a "snp" in 3rd pos of first codon
> allele2[3] = "C"
> translate(allele1)
  4-letter "AAString" instance
seq: LKTP
> translate(allele2)
  4-letter "AAString" instance
seq: FKTP
>  
> translate(allele1) == translate(allele2)
[1] FALSE
# or look at the codons
> codons(allele1)
  Views on a 12-letter DNAString subject
subject: TTGAAAACTCCC
views:
    start end width
[1]     1   3     3 [TTG]
[2]     4   6     3 [AAA]
[3]     7   9     3 [ACT]
[4]    10  12     3 [CCC]

The problem here will be to get the frame of the translation right, therefore you need the correct start of the sequence and 
to  mask/splice out the introns correctly. There is a good example in ?translate 
And of course there could be more complicated cases e.g. interactions of 2 or SNPs, or SNPs changing the exon/intron boundaries.
Maybe there are more refined solutions for this.

Hope this helped
Michael



Am Jan 29, 2010 um 7:23 PM schrieb michael watson (IAH-C):

> I'm not sure BioC is the tool you want to use.
> 
> Have you tried something like BioPerl:
> 
> http://www.bioperl.org/Core/Latest/bioscripts.html#scripts_utilities_pairwise_kaks_pls
> 
> "Takes DNA sequences as input, aligns them as proteins, projects the alignment back into DNA and estimates the Ka (non-synonymous) and Ks (synonymous) substitutions."
> ________________________________________
> From: bioconductor-bounces at stat.math.ethz.ch [bioconductor-bounces at stat.math.ethz.ch] On Behalf Of Wu, Xiwei [XWu at coh.org]
> Sent: 29 January 2010 17:26
> To: Michael Dondrup
> Cc: bioconductor at stat.math.ethz.ch
> Subject: Re: [BioC] Distinguish Synonymous vs. Non-synonymous SNPs
> 
> Michael,
> 
> Thanks a lot for your help. I will give it a try. Is it good for novel
> SNPs not in the dbSNP? The SNPs I got are from a sequencing project,
> many of them are not in dbSNP.
> 
> Xiwei
> 
> -----Original Message-----
> From: Michael Dondrup [mailto:Michael.Dondrup at uni.no]
> Sent: Friday, January 29, 2010 3:11 AM
> To: Wu, Xiwei
> Cc: bioconductor at stat.math.ethz.ch
> Subject: Re: [BioC] Distinguish Synonymous vs. Non-synonymous SNPs
> 
> Hi Xiwei,
> do you mean SNPs that result in non-synonymous vs  synonymous coding?
> Then a biomart query might do the
> job and therefore the package biomaRt could be used to query from within
> R.  There is a filter in biomart for different
> consequence types of SNPs, one of which is NON_SYNONYMOUS_CODING. You
> can check which filter seems appropriate
> This lengthy Url represents a possible query in the biomart web
> interface:
> 
> http://www.biomart.org/biomart/martview?VIRTUALSCHEMANAME=default&ATTRIB
> UTES=hsapiens_snp.default.snp.refsnp_id|hsapiens_snp.default.snp.chr_nam
> e|hsapiens_snp.default.snp.chrom_start|hsapiens_snp.default.snp.conseque
> nce_type_tv|hsapiens_snp.default.snp.ensembl_type|hsapiens_snp.default.s
> np.ensembl_peptide_shift|hsapiens_snp.default.snp.phenotype_description|
> hsapiens_snp.default.snp.phenotype_name&FILTERS=hsapiens_snp.default.fil
> ters.consequence_type."NON_SYNONYMOUS_CODING"&VISIBLEPANEL=resultspanel
> 
> 
> it should be possible to set identical parameters in the bioconductor
> package biomaRt although I didn't try this yet.
> 
> Best
> Michael
> 
> 
> Am Jan 29, 2010 um 1:57 AM schrieb Wu, Xiwei:
> 
>> Dear list,
>> 
>> I have a list of SNPs with chromosome location, and trying to see
> which
>> ones are non-synonymous. Are there any packages/functions that can
>> distinguish synonymous and non-synonymous SNPs? I tried to search the
>> list, but could not find anything related. Thanks in advance.
>> 
>> Xiwei
>> 
>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> SECURITY/CONFIDENTIALITY WARNING:  \ This message and
> ...{{dropped:30}}
>> 
>> _______________________________________________
>> Bioconductor mailing list
>> Bioconductor at stat.math.ethz.ch
>> https://stat.ethz.ch/mailman/listinfo/bioconductor
>> Search the archives:
> http://news.gmane.org/gmane.science.biology.informatics.conductor
> 
> _______________________________________________
> Bioconductor mailing list
> Bioconductor at stat.math.ethz.ch
> https://stat.ethz.ch/mailman/listinfo/bioconductor
> Search the archives: http://news.gmane.org/gmane.science.biology.informatics.conductor



More information about the Bioconductor mailing list