Closed slacktracer closed 9 years ago
Hello, Welcome to the project and thanks for volunteering to help. I am going to wait a few days for a few more volunteers to join and then we can get rolling! In the meantime, if you have any questions I can start answering.
Ok, @ismailoglu
My first question is, do you have an attack plan? I mean, do you know exactly how you want to proceed and need people to make it happen? Or you're looking for help to "start from scratch", so to speak?
If it's the latter, my first suggestion is to make a Chrome App. This way we'll use all the traditional web development tools and techniques but will be able to run without a server and in every platform that has Google Chrome (Windows, Mac, Linux, at least).
It'll also be easily distributable by the Chrome App Store. And perhaps, if it all goes really well they can open a new category just for us there, Science! =P
And, if necessary, a Chrome App can be built to be easily used as a regular web app served by a conventional web server.
Aside all that, how about the heart of this app? Where are the specs you mentioned? I suppose it would nice to start with the algorithm that receives the csv a returns the solution. Even better if we have an example of input and corresponding output so we can do some test driven development.
I would be glad to start on this algorithm. it doesn't have to be definitive, but it would be a great primordial resource to have a first version of, at least.
I have a few other ideas and suggestions but that's enough for now, methinks. Let me know how are we going. Thank you! :)
Hi,
Making an app that runs in the browser is exactly what I was thinking. Do you think making a Chrome app would be easier or can we cover the big ones, IE, FireFox, Opera, Safari etc? I feel like once we get that working more or less everyone is covered.
As for specs, here is a Google Docs folder link that has demo data and a Readme that explains what the data files contain.
https://drive.google.com/folderview?id=0B4bpe172L9GSbndYRThFRGV2Zjg&usp=sharing
Looking back at this I realized that I didn't explain the technique (real-time PCR or RT-PCR) very well, but I can write something up this weekend. I can also work on some mockups on more specifically what the program will need to do.
Also, if there is anyone else observing this thread, please add a message so that we know you are with us :)
Best Ismail
I was starting to write a guide for RT-PCR, but then I remembered Wikipedia exists. Here's a great page that explains how RT-PCR works: http://en.wikipedia.org/wiki/Real-time_polymerase_chain_reaction
Especially Background and Basic Principles sections are useful.
I can also recommend this linked article about PCR: http://en.wikipedia.org/wiki/Polymerase_chain_reaction
If there are questions we can discuss further.
Hi,
Great, a web app is the primary idea. I do believe making a Chrome App will be slightly easier (it is still a web app of sorts), but something that works in the latest IE, Firefox, Opera, Safari and Chrome shall not be much more complicated. A Chrome App is just a little more straightforward I suppose. There is no need for a web server and there is a nice distribution channel, the Chrome App Store.
I'll try to keep both ideas in mind. =)
Anyway, I'll start by doing my homework, reading the links you sent. I'm hoping it'll be fun. I have no idea if it will be enough to start writing the main algorithm though. Let's see. =)
About mockups and more info, it's all very welcome! The very beginning of something can be a bit scary and it's easy to get a little lost.
All I can envision so far are three components (pieces). One that turn csv text into input data (something that the main algorithm consumes), the main algorithm, that turn input data into output data, and a component that consumes output data e uses some visualization library to turn it into some sort of graphics...
Well, I have a LOT of learning to do now. I'll be back with questions! =D
(Thinking about it, I guess that for the first component I mentioned we will just build up some already existing csv parser, It'll be nice... Also, I'm afraid we're pretty alone in this thread... =P)
Hi @slacktracer, @AEdwards92 and @marcocs ,
I was thinking for a way to describe the RT-PCR technique and here is a try.
Let's say you have a crowd of people. Millions and millions of people. And you want to find how many of them are named "Mike". You have a helicopter to see everyone from above, but it is of course useless because you don't know who is named "Mike" without some sort of marking.
The other resource you have in this imaginary world is an unlimited number of helpers, who are also named "Mike". You start by sending all your helpers into the crowd and tell them if they find someone named "Mike" put a bright light on "Mike"s head, another one on their own head and just stand there with him. The helpers, who couldn't find someone named "Mike" come back.
Now all your "Mike"s have lamps on their heads, but the light is still not bright enough for you to measure. You send the helpers again and repeat the process. So, now for each original "Mike" in your crowd, you have 4 total "Mike"s and 4 light sources (remember the helper from the first round was also named "Mike", so someone also stands by him after this round).
You keep doing this until the light is strong enough. Every round the intensity of light keeps doubling. 1, 2, 4, 8, 16..... So, the light intensity you get after X number of rounds is directly proportional to the initial number of "Mike"s in the crowd. If you had 100 "Mike"s at the beginning, after 4 rounds you would have 1600 lights. If you had 200, you would have 3200.
So, let's say you wanted to compare "Mike"s and "John"s in this crowd. You set a threshold light intensity.1600 units for example. You repeat the process for "Mike"s and "John"s separately. The "Mike"s reach 1600 units after 4 rounds. "John"s get there after 5 rounds. This means there were half as many "John"s in the beginning crowd compared to "Mike"s, because the number of round is proportional to initial number.
Replace the "Mike"s and "John"s with gene names and replace the word "round" with the word "cycle" and you have a basic description of how RT-PCR works.
I hope this helps. Let me know if you have questions.
Hi, @ismailoglu
I'm still at the polymerase chain reaction article at wikipedia, more precisely at Variations on the basic PCR technique (I spent the last week out of town so didn't had the time to read further, but I'm back now).
I liked your explanation. I guess it's starting to make sense in my head, just starting. =P
Also, I watched this video: https://www.youtube.com/watch?v=_YgXcJ4n-kQ (before start reading the article). It was a nice and friendly introduction to the subject to me. I hope it is reasonably correct. =)
The gist is, I don't have any news, but I'm still here. =) See you soon.
Hi!
Like @slacktracer, I like coding and find genetics interesting. I do not have experience with web development, but I am sure I could be useful in accomplishing some of the backend tasks. I have a good deal of scripting experience and am a senior undergraduate C.S. student, so at this point I feel pretty comfortable jumping into unknown programming language territory.
My housemate is a biology student and I have had the opportunity to meet the head scientist at his lab, who gave me a full explanation of the RT-PCR procedure. I also enjoyed your analogy, which further solidified the concept.
Looking forward to collaborating with each of you!
Hi guys,
Thank you very much for your effort in understanding the technique. If there are unclear points we can have a hangout and I can answer your questions.
@AEdwards92, great to hear your housemate is a biology student. If he is interested in contributing on the biology side of things, let me know. I would like this group to grow once we release the first app. I am trying to form a scientific advisory board of sorts to guide the features in this app and possible future apps.
By the way, years ago I made an RT-Analyzer app similar to this in PHP for my own use. I will see if I can find those files and take screenshots of the user interface to guide our effort here. Would it be helpful for you to see the PHP code? I can add comments to the code and send it to you. (but you are not allowed to make fun of my sad coding skills :) )
Best Ismail
Hi, @ismailoglu
I just read the readme on Google Drive. I'll probably have to read it again a dozen times next week. But that's learning. =P It was a busy week for me but I expect to be able to get back to this project by monday.
There a lot of unclear points for me right now and I'm still figuring out what questions to ask, but it's just a matter of time. =)
It would be nice to see some screenshots if its easy for you to take them.
Finally, hi @AEdwards92! Welcome. =)
Andrew suggested that we have a Hangout of some sort. I think I can clarify things a bit better in conversation. And once we have that down, you guys can think about the specific assignments.
Here is a doodle poll link: Don't worry too much about the exact time. I put times in to correspond to morning, afternoon and evening. Once we have that, we can pick an exact hour. http://doodle.com/r3x4gg962387533p
The poll should adjust according to your timezone.
I will get those screenshots this weekend.
Best Ismail
I made a slideshow of some RT-Analyzer screenshots. You can see it on the Google Drive folder: https://drive.google.com/folderview?id=0B4bpe172L9GSbndYRThFRGV2Zjg&usp=sharing
This is a UI I was playing around with mostly to learn JQuery, but I think it is a good starting point to think about how to structure our UI.
I kind of explained it on the slide, but to repeat here. The way we run the reactions is in a plastic plate that has 96 separate tubes in it. An image can be seen here: http://neptunescientific.com/sites/default/files/web-prod/3730.x-full-profile-plate.jpg
That way, I can use a different sample or probe for each reaction. So, for each coordinate on the plate I have a Sample (e.g. cancer tissue in one group of reactions, non-cancer tissue in the other group) and a Probe (e.g. a cancer causing gene in one group and a cancer stopping gene in another) and a Cycle value (which indicates how many copies of that Probe gene is found in that particular Sample).
Hopefully there will be less confusion once we have our Hangout.
Have a good week. Ismail
Hi, @ismailoglu!
I'm not sure I nailed that doodle thing... First time, so I have the feeling that I made something wrong...
Nonetheless, I have one or two questions: (perhaps not all questions, anyway)
I would like to see the csv, the data.csv. A piece of our software will take it and turn it into (probably) a json to be further processed. It's good to envision input and output formats...
The machine gives you just the cycle value for each (letter-number) position and tell (remember...) what was the sample and the probe for each?
So the sample and the name are different things...? The raw data have a column for name but it's gone in the processed sheet.
What's the difference between Ctrl-1 and Exp-1? You mention Ctrls but not Exps in the readme...
About entering Probe and Sample values, you mention adding them to the excel file yourself. But, as I understand it, we'll work with a simple csv file. It's probably harder to add values to it manually... So, I believe the UI approach is the way to go from start.
We can load the csv and offer the possibility to add values as necessary. I think that would be nice. We just have to have a "standard" to work with. I started to imagine something in a gist.
As you can see, I'm still thinking about the very first steps. About the the information inside the system.
Last, it would be great to have an alpha "working" ASAP. Let's see what we can do about it. Another thing, I'm not sure how organize our efforts. I'm not even sure, yet, what my next step will be. =P
I know we need the code to turn an example csv into json (javascript code, I recommend)... And I think I'll start by making us a box where we can start playing immediately...
Ok, I'll stop here. I'm clearly still very confused, but in my experience that's absolutely normal when starting something completely new on a mostly unfamiliar subject! =D So I'm perfectly fine with it. =P
Hi @slacktracer,
The doodle thing worked fine. I will answer your questions as soon as possible, but I just wanted to set the date of the first meeting for now.
Looks like Sunday 16th 4PM US Eastern time works for everyone. You probably see a different time there based on your timezone, but it is the last slot that day. That will give me time to set the agenda and I promise we won't take more than an hour. If something goes wrong, Thursday the 20th same time will be our backup.
By the way, the third person there is Yasam, a friend of mine from Turkey. He will be contributing to the project as a programmer too. He has been following the discussion silently.
Talk to you soon. Ismail
Hi, @ismailoglu, and hi, Yasam! =)
A less important question, are we RT-PCR or qPCR? Or it doesn't matter for us? (Is it a hot topic? =P)
About the doodle, Thursday the 20th is good for me, sunday not so much. I probably made a mistake the first time, so I remade it! Sorry about that.
That's all for now, bye!
Thiago F
Well, the proper term would be qPCR or qRT-PCR, but many in the field say RT-PCR. You are right though, RT-PCR also means something else (reverse-transcriptase PCR) and we should be referring to our technique as qRT-PCR.
No problem on the meeting. So, let's meet on Thursday 20th then everyone. Is that OK? Let me know if that doesn't work.
Thursday 20th at 1 P.M. sounds good.
Thursday is ok for me too! It'll be 6 P.M. over here. Or 1800 hours. =P
Hi @slacktracer,
Here are some answers to your questions.
I would like to see the csv, the data.csv. A piece of our software will take it and turn it into (probably) a json to be further processed. It's good to envision input and output formats...
I will upload the data.csv to the Google Drive folder. https://drive.google.com/open?id=0B4bpe172L9GSbndYRThFRGV2Zjg&authuser=0
It is important to mention though that there are different machines that can run this assay and they export data in slightly different ways. So, data.csv is a generic data file. For the first version we can ask the user the convert their data to this format and we will convert it to .json.
The machine gives you just the cycle value for each (letter-number) position and tell (remember...) what was the sample and the probe for each?
So the sample and the name are different things...? The raw data have a column for name but it's gone in the processed sheet.
That is right. There are four key pieces of data for each reaction: Location in plate (A1, A2...etc), Sample name (biological sample, patient number etc), Probe name (the gene you are detecting) and Cycle number (the actual data that indicates abundance of gene in sample)
The rawdata file in the Google Drive is what gets exported from the machine. "Name" field corresponds to a combination of "Sample" and "Probe" values. In my opinion, we don't have to worry about that field, because the first step "rawdata" to "processdata" will be done by user. Later on we can add a step on top to read different file formats from different machines, but for now I think we can ignore it.
What's the difference between Ctrl-1 and Exp-1? You mention Ctrls but not Exps in the readme...
They are both sample names. So, Ctrl-1 can be a healthy person and Exp-1 can be a sick person's sample. Sorry, I must have omitted in the text.
About entering Probe and Sample values, you mention adding them to the excel file yourself. But, as I understand it, we'll work with a simple csv file. It's probably harder to add values to it manually... So, I believe the UI approach is the way to go from start.
This is true. I thought it would be possible since you usually have the same Sample and Probe names over and over. The user could copy and paste a few times, but you are right having a UI is much better. We can ask the user to enter a list of sample names and probe names and then assign them to addresses.
We can load the csv and offer the possibility to add values as necessary. I think that would be nice. We just have to have a "standard" to work with. I started to imagine something in a gist.
That looks good. I think you can remove "amount SYBR" and "target SYBR" fields. We care about the Ct.
Last, it would be great to have an alpha "working" ASAP. Let's see what we can do about it. Another thing, I'm not sure how organize our efforts. I'm not even sure, yet, what my next step will be. =P
I totally agree with this. Once we have a somewhat working version, I can get my friends to play with it and see what works and what doesn't. As for organization we will discuss when we have the meeting. We can divide the project into chunks and go from there.
Hope this clarified things a bit. Let me know if there are other questions.
I will get back to you soon with an agenda for the meeting on Thursday.
Hi guys,
Can you send an email to my address listed here on Github (iismailoglu@yahoo.com) so that I can start communicating with you over email.
@AEdwards92, you actually did send me an email, if you would like to continue using that, you don't need to send me another one.
Thanks Ismail
Hi Guys,
Finally, I synchronized with here. I am not so familiar to github and it took some time to recognize issues link:)
Ismail has already mentioned about me, we are friends since high school. I am living in Istanbul, but I will have some business trips to LA in next year. I am software engineer with 10+ years experience. My expertise is embedded systems, but I am developing code from c/assembly to Java/WEB/Python. Also I have been developing iOS and Android Apps via JQM&Phonegap. I have really wide range experience in software development.
I don't have any experience on Chrome App but it looks good for that project. Also we may consider a server based online solution. But it is not so different, we can think extra features and options for next versions. I have some questions about it
It is good to see young&energetic people to develop algorithm in that project. My mind is not as sharp as when I graduated from the college. I am 33 years old but I feel a little bit old to develop complex algorithms. But I am still good at productization, design, ,analysis, debugging, packaging, build systems, project management, reviewing, integration .....
See you in the meeting on Thursday.
Yaşam
Hi, Yasam,
It most certainly doesn't have to be a Chrome App, I just said it would be a good distribution channel and a simple way to have an application working in all platforms without the need for a backend.
That been said, of course if you don't have Chrome you can't install a Chrome App. And having privacy as a concern we better stay away from IE and Safari too (at least =P).
What kind of user data are you thinking of? We I first visualized the application in my mind I saw just a icon on your desktop, that gives you a window where you insert a file and after a few extra inputs by the user it show some number and a pretty graphic. I imagined it as the most usable straight-forward thing possible.
As far as I know Chrome Apps are not yet supported on Mobile Chrome.
Right now I'm working with the mindset that a Chrome App is just a special web app that does not need to be served form the internet. That it won't be necessary to change much to put it online in a server somewhere or turn it into a mobile app with cca-cordova-phonegap-whatever.
(But I'm not a hundred percent sure of it. I was doing some tests last week will do some more this week. I was having a little problem with AngularJS and Chrome App. It's just personal research on resources I wish could be useful for our RT-ANALYZER and that I intend to use for other stuff too.)
My ongoing experiment is on github: https://github.com/slacktracer/mullis
slacktracer
On Tue Nov 18 2014 at 3:58:13 AM yasam notifications@github.com wrote:
Hi Guys,
Finally, I synchronized with here. I am not so familiar to github and it took some time to recognize issues link:)
Ismail has already mentioned about me, we are friends since high school. I am living in Istanbul, but I will have some business trips to LA in next year. I am software engineer with 10+ years experience. My expertise is embedded systems, but I am developing code from c/assembly to Java/WEB/Python. Also I have been developing iOS and Android Apps via JQM&Phonegap. I have really wide range experience in software development.
I don't have any experience on Chrome App but it looks good for that project. Also we may consider a server based online solution. But it is not so different, we can think extra features and options for next versions. I have some questions about it
- some people don't install chrome to their machines because of google's privacy violations, is still the right tool?
- I have no idea about limitations&restrictions about accessing&storing user data in Chrome App
- are Chrome App supported in mobile platforms, ipad, galaxytab, etc? Or should we support them?
It is good to see young&energetic people to develop algorithm in that project. My mind is not as sharp as when I graduated from the college. I am 33 years old but I feel a little bit old to develop complex algorithms. But I am still good at productization, design, ,analysis, debugging, packaging, build systems, project management, reviewing, integration .....
See you in the meeting on Thursday.
Yaşam
— Reply to this email directly or view it on GitHub https://github.com/ismailoglu/RT-analyzer/issues/2#issuecomment-63430092 .
Hi guys,
Something came up and I have to meet with a professor tomorrow at 30 minutes before our scheduled hangout. I do not think the meeting will last more than 30 minutes, but if it does and I am late to the meeting, just start without me.
Hi,
I meant that user uploads some files and then does some analysis and then closes the app. When the user returns, what will happen? Does he need to upload all previous files again?
Yaşam
On Tue, Nov 18, 2014 at 9:30 PM, slacktracer notifications@github.com wrote:
Hi, Yasam,
It most certainly doesn't have to be a Chrome App, I just said it would be a good distribution channel and a simple way to have an application working in all platforms without the need for a backend.
That been said, of course if you don't have Chrome you can't install a Chrome App. And having privacy as a concern we better stay away from IE and Safari too (at least =P).
What kind of user data are you thinking of? We I first visualized the application in my mind I saw just a icon on your desktop, that gives you a window where you insert a file and after a few extra inputs by the user it show some number and a pretty graphic. I imagined it as the most usable straight-forward thing possible.
As far as I know Chrome Apps are not yet supported on Mobile Chrome.
Right now I'm working with the mindset that a Chrome App is just a special web app that does not need to be served form the internet. That it won't be necessary to change much to put it online in a server somewhere or turn it into a mobile app with cca-cordova-phonegap-whatever.
(But I'm not a hundred percent sure of it. I was doing some tests last week will do some more this week. I was having a little problem with AngularJS and Chrome App. It's just personal research on resources I wish could be useful for our RT-ANALYZER and that I intend to use for other stuff too.)
My ongoing experiment is on github: https://github.com/slacktracer/mullis
slacktracer
On Tue Nov 18 2014 at 3:58:13 AM yasam notifications@github.com wrote:
Hi Guys,
Finally, I synchronized with here. I am not so familiar to github and it took some time to recognize issues link:)
Ismail has already mentioned about me, we are friends since high school. I am living in Istanbul, but I will have some business trips to LA in next year. I am software engineer with 10+ years experience. My expertise is embedded systems, but I am developing code from c/assembly to Java/WEB/Python. Also I have been developing iOS and Android Apps via JQM&Phonegap. I have really wide range experience in software development.
I don't have any experience on Chrome App but it looks good for that project. Also we may consider a server based online solution. But it is not so different, we can think extra features and options for next versions. I have some questions about it
- some people don't install chrome to their machines because of google's privacy violations, is still the right tool?
- I have no idea about limitations&restrictions about accessing&storing user data in Chrome App
- are Chrome App supported in mobile platforms, ipad, galaxytab, etc? Or should we support them?
It is good to see young&energetic people to develop algorithm in that project. My mind is not as sharp as when I graduated from the college. I am 33 years old but I feel a little bit old to develop complex algorithms. But I am still good at productization, design, ,analysis, debugging, packaging, build systems, project management, reviewing, integration .....
See you in the meeting on Thursday.
Yaşam
— Reply to this email directly or view it on GitHub < https://github.com/ismailoglu/RT-analyzer/issues/2#issuecomment-63430092> .
— Reply to this email directly or view it on GitHub https://github.com/ismailoglu/RT-analyzer/issues/2#issuecomment-63529912 .
My thinking on this was to give the option of exporting a project file at some point (probably after the user loads file and sets up sample and probe names). So, when the user comes back they can just load this project file and resume analysis.
I want experience to be similar to working with Excel for example. You load Excel, you load a file that has the information you have so far and you go on where you left off.
In the future we can consider cloud storage for data, but this will definitely be a paid option to cover server expenses. We will discuss a bit at the meeting today how the far-future for this project might look like.
@AEdwards92 not a problem. I think you can record a Hangout. I will try to do that and you can watch the discussion later.
Hi! Well, I think science is cool and I think genetics is interesting. =P I like to code, a lot, I like to help and I was looking for an interesting project to put some of my free time in. Working with other people to build something interesting and useful is exactly why I started coding and I've been working as a software engineer for six years now. I have some skills with javascript, html canvas etc that seem to be appropriate for this project. And that's it. If I can help, let me know! Thank you!