I am trying to solve the following question: Given a text file containing a bunch of biological information, find out the one gene which is {up/down}regulated. Now, for this I have many such (60K) files and have annotated some (1000) of them as to which gene is {up/down}regulated.


  • Many sentences in the file have some gene name mention and some of them also have neighboring text that can help one decide if this is indeed the gene being modulated.
  • Some files also have NO gene modulated. But these still have gene mentions.

Given this, I wanted to ask (having absolutely no background in ML), what sequence learning algorithm/tool do I use that can take in my annotated (training) data (after probably converting the text to vectors somehow!) and can build a good model on which I can then test more files?

Example data

Title: Assessment of Thermotolerance in preshocked hsp70(-/-) and (+/+) cells

Organism: Mus musculus

Experiment type: Expression profiling by array

Summary: From preliminary experiments, HSP70 deficient MEF cells display moderate thermotolerance to a severe heatshock of 45.5 degrees after a mild preshock at 43 degrees, even in the absence of hsp70 protein. We would like to determine which genes in these cells are being activated to account for this thermotolerance. AQP has also been reported to be important.

Keywords: thermal stress, heat shock response, knockout, cell culture, hsp70

Overall design: Two cell lines are analyzed - hsp70 knockout and hsp70 rescue cells. 6 microarrays from the (-/-)knockout cells are analyzed (3 Pretreated vs 3 unheated controls). For the (+/+) rescue cells, 4 microarrays are used (2 pretreated and 2 unheated controls). Cells were plated at 3k/well in a 96 well plate, covered with a gas permeable sealer and heat shocked at 43degrees for 30 minutes at the 20 hr time point. The RNA was harvested at 3hrs after heat treatment

Here my main gene is hsp70 and it is down-regulated (deducible from hsp(-/-) or HSP70 deficient). Many other gene names are also there like AQP. There could be another file with no gene modified at all. In fact, more files have no actual gene modulation than those who do, and all contain gene name mentions.

Any idea would be great!!

  • $\begingroup$ Welcome to Computer Science! What have you tried? Where did you get stuck? We do not want to just hand you the solution; we want you to gain understanding. However, as it is we do not know what your underlying problem is, so we can not begin to help. See here for a relevant discussion. If you are uncertain how to improve your question, why not ask around in Computer Science Chat? You may also want to check out our reference questions. $\endgroup$
    – Raphael
    Sep 3 '16 at 14:23
  • $\begingroup$ Hi, I have tried to read up about ML but my main question is which algorithm would be best for me once I use say, word2vec on my text. Is this similar to sentiment analysis? $\endgroup$
    – user1993
    Sep 3 '16 at 14:33
  • 1
    $\begingroup$ Defince "best". $\endgroup$
    – Raphael
    Sep 3 '16 at 15:41
  • $\begingroup$ @Raphael, I meant something thats most popular and which I can try out initially. I am sure I might find something more appropriate later $\endgroup$
    – user1993
    Sep 5 '16 at 14:35

A simple starting point would be to apply a bag-of-words feature vector and try using a naive Bayes or logistic regression classifier. You'll probably want to apply stemming and lemmatization and remove stop words.

Going based on this one example, determining which gene is regulated looks like it might be plausibly feasible, but determining whether it is up- or down-regulated might be pretty tough, especially given the limited training set you have. Of course, it's hard to know without seeing more examples and without some domain knowledge in biology.

There are lots of techniques in the NLP literature, and probably your best bet is to start by reading up on standard NLP methods and start trying some of them, and see if that raises a more narrowly targeted question. Machine learning often requires significant experimentation (try a bunch of things). It's also helpful to know standard techniques so you can use your domain knowledge of these documents to help you brainstorm possible features.

  • $\begingroup$ Could you point to me some popular tools which provide this service of using bag of words or naive Bayes or logistic regression classifier. Or am I supposed to understand the algorithms and write code for them?? thanks. $\endgroup$
    – user1993
    Sep 5 '16 at 14:21
  • $\begingroup$ @ChahatUpreti, tool recommendation questions are off-topic here. Check out NLTK and scikit-learn. $\endgroup$
    – D.W.
    Sep 5 '16 at 16:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.