Project idea... 23andMe too!

26 views
Skip to first unread message

Dan Bolser

unread,
Jul 10, 2011, 12:15:53 PM7/10/11
to google-summer-o...@googlegroups.com
Summary: Use the EnsEMBL variation API [1] to build a Chrome extension
[2] to add population allele frequencies to 23andMe reports [3].

Skills required: Javascript.

Details: Looking at the table in [3], we only see personal genome
data, lacking population context. Looking up the allele frequency for
rs762551 in the EnsEMBL variation API, we could add data to the table
(via a browser extension) for the frequency of each allele in a
(selected) population.


Good luck!
Dan.

[1] http://www.ensembl.org/info/docs/api/index.html
[1] http://www.ensembl.org/info/docs/api/variation/index.html#api
[2] http://code.google.com/chrome/extensions/devguide.html
[3] https://www.23andme.com/health/Caffeine-Metabolism/

Matthew

unread,
Jul 13, 2011, 3:09:13 AM7/13/11
to GSoD
This is a fascinating project!! I will be reorganizing my schedule to
apply to this project. I propose a start date of late July to mid
August.

What else do I need to know?

Dan Bolser

unread,
Jul 13, 2011, 4:08:22 AM7/13/11
to google-summer-o...@googlegroups.com
On 13 July 2011 08:09, Matthew <mmle...@gmail.com> wrote:
> This is a fascinating project!!  I will be reorganizing my schedule to
> apply to this project.  I propose a start date of late July to mid
> August.
>
> What else do I need to know?

If you've read and understood the links I provided, you're well on
your way. Else, please start there and let me know if you have any
questions. I'm relatively inexperienced with extension building in
chrome, but the docs look good and there are plenty of examples, so
I'm sure we can work it out.

The biggest unknown for me is how to query the EnsEMBL API from
JavaScript, and how to modify the DOM to display the results.

You could read up about the 1000 genomes and the HapMap project to
understand the EnsEMBL variation data better.


Thanks for your interest!
Dan.

Matthew

unread,
Jul 14, 2011, 2:39:54 AM7/14/11
to GSoD
Dear Dan,

What is needed is an intermediate website location to provide an
adapter, of sorts, to modify JavaScript queries from the Chrome
Extension, to allow for queries to be sent to EnsEMBL, in Perl.

Jumping right into the biggest unknown, to summarize the points in
question:
-the first application is the 23andMe report.
-the second would be a Chrome Extension to find allele frequencies.

These two applications would not communicate directly with each other.

Information on alleles would be read from the report page, and
inputted into the Chrome Extension.

The Chrome Extension would securely query EnsEMBL and display allele
frequencies, alongside and separate from the 23andMe report.

A dedicated intermediary website location can be created, installing
the EnsEMBL Perl API into that site.

To recap, the Chrome Extension can call the intermediate site,
questioning allele variation using JavaScript. The intermediate site,
in turn, queries EnsEMBL, in Perl. The results are passed back, in
turn, to the Chrome Extension.

I hope to investigate the Perl Allele variation API, tomorrow. I also
have experience in JavaScript DOM modification. Building the Chrome
Extension would take some learning, but it doesn't seem too difficult.

Thank you for the opportunity!





Sincerely,
Matthew


On Jul 13, 1:08 am, Dan Bolser <dan.bol...@gmail.com> wrote:

Dan Bolser

unread,
Jul 14, 2011, 4:47:59 AM7/14/11
to google-summer-o...@googlegroups.com
On 14 July 2011 07:39, Matthew <mmle...@gmail.com> wrote:
> Dear Dan,
>
> What is needed is an intermediate website location to provide an
> adapter, of sorts, to modify JavaScript queries from the Chrome
> Extension, to allow for queries to be sent to EnsEMBL, in Perl.

Right.


> Jumping right into the biggest unknown, to summarize the points in
> question:
> -the first application is the 23andMe report.
> -the second would be a Chrome Extension to find allele frequencies.
>
> These two applications would not communicate directly with each other.
>
> Information on alleles would be read from the report page, and
> inputted into the Chrome Extension.
>
> The Chrome Extension would securely query EnsEMBL and display allele
> frequencies, alongside and separate from the 23andMe report.

That sounds about right, but (just to clarify) the chrome extension
can manipulate the DOM of the report page, so (ideally) the user would
just see one table in the web page with a new column giving the
population frequencies (the appropriate reference population could be
picked up from the users settings in 23andMe, or we could present data
for all available populations). I made a little mockup (attached).


> A dedicated intermediary website location can be created, installing
> the EnsEMBL Perl API into that site.
>
> To recap, the Chrome Extension can call the intermediate site,
> questioning allele variation using JavaScript.  The intermediate site,
> in turn, queries EnsEMBL, in Perl.  The results are passed back, in
> turn, to the Chrome Extension.

Yup, that sounds like a really good solution to the problem of
querying the EnsEMBL variation API from within JavaScript. I was
thinking the best way to do this is to wrap the EnsEMBL Perl API
functions we as some kind of web service. This has a number of
advantages. 1) By making our intermediate site use standard
web-service protocols, it can serve a broader function than just our
little chrome extension, providing EnsEMBL data to a larger community
of developers. 2) Their should be existing Perl modules for creating
web services (SOAP, REST, etc) from the underlying Perl functions,
which means it should be easier to code up.


> I hope to investigate the Perl Allele variation API, tomorrow.  I also
> have experience in JavaScript DOM modification.  Building the Chrome
> Extension would take some learning, but it doesn't seem too difficult.

The tutorial for the variation API seems pretty good. Let me know if
you get stuck on any part of that.

Yup, if I can write an extension
(https://chrome.google.com/webstore/detail/gjenoaajcdepabdfmbeffflggenahedp),
it has to be easy!


> Thank you for the opportunity!

Thank you for your interest!

Once we write the extension, lets offer a commercial version to sell
to the 23andMe users :-D We can have two versions, one with marketing
(for a cost) and one without (free).


All the best,
Dan.

Dan Bolser

unread,
Jul 14, 2011, 4:48:02 AM7/14/11
to google-summer-o...@googlegroups.com
On 14 July 2011 07:39, Matthew <mmle...@gmail.com> wrote:
> Dear Dan,
>
> What is needed is an intermediate website location to provide an
> adapter, of sorts, to modify JavaScript queries from the Chrome
> Extension, to allow for queries to be sent to EnsEMBL, in Perl.

Right.


> Jumping right into the biggest unknown, to summarize the points in
> question:
> -the first application is the 23andMe report.
> -the second would be a Chrome Extension to find allele frequencies.
>
> These two applications would not communicate directly with each other.
>
> Information on alleles would be read from the report page, and
> inputted into the Chrome Extension.
>
> The Chrome Extension would securely query EnsEMBL and display allele
> frequencies, alongside and separate from the 23andMe report.

That sounds about right, but (just to clarify) the chrome extension


can manipulate the DOM of the report page, so (ideally) the user would
just see one table in the web page with a new column giving the
population frequencies (the appropriate reference population could be
picked up from the users settings in 23andMe, or we could present data
for all available populations). I made a little mockup (attached).

> A dedicated intermediary website location can be created, installing
> the EnsEMBL Perl API into that site.
>
> To recap, the Chrome Extension can call the intermediate site,
> questioning allele variation using JavaScript.  The intermediate site,
> in turn, queries EnsEMBL, in Perl.  The results are passed back, in
> turn, to the Chrome Extension.

Yup, that sounds like a really good solution to the problem of


querying the EnsEMBL variation API from within JavaScript. I was
thinking the best way to do this is to wrap the EnsEMBL Perl API
functions we as some kind of web service. This has a number of
advantages. 1) By making our intermediate site use standard
web-service protocols, it can serve a broader function than just our
little chrome extension, providing EnsEMBL data to a larger community
of developers. 2) Their should be existing Perl modules for creating
web services (SOAP, REST, etc) from the underlying Perl functions,
which means it should be easier to code up.

> I hope to investigate the Perl Allele variation API, tomorrow.  I also
> have experience in JavaScript DOM modification.  Building the Chrome
> Extension would take some learning, but it doesn't seem too difficult.

The tutorial for the variation API seems pretty good. Let me know if


you get stuck on any part of that.

Yup, if I can write an extension
(https://chrome.google.com/webstore/detail/gjenoaajcdepabdfmbeffflggenahedp),
it has to be easy!

> Thank you for the opportunity!

Thank you for your interest!

Once we write the extension, lets offer a commercial version to sell
to the 23andMe users :-D We can have two versions, one with marketing
(for a cost) and one without (free).


All the best,
Dan.

> Sincerely,

Dan Bolser

unread,
Jul 14, 2011, 4:49:27 AM7/14/11
to google-summer-o...@googlegroups.com, Robert Buels
I forgot to attach my mockup.
23andMe_currently.png
23andMe_idea.png
Reply all
Reply to author
Forward
0 new messages