Tuesday, May 18, 2010

Journal Club: Mapping Gene Associations in Human Mitochondria using Clinical Disease Phenotypes


Basically, this paper presents a mitochondrial phenotypic database (http://www.mitophenome.org/) and carried some further analysis based on it.

Recent study showed that mitochondrial related dysfunctions are more prevalent in hereditary diseases than previously anticipated. But, in literature or database, there is no standard formats of such phenotypic data of mitochondrial disease
And there is no standard catalog of the associated clinical phenotypes.

Firstly, the author manually identified individual clinical features, signs and symptoms of 174 mitochondrial genes, which are associated with 191 disease in the OMIM. Then, a manual annotation process was carried, which is consisted of the collection, definition and classification of phenotypic features.

The figure1 is a categorical breakdown of the collected 502 features in their fourteen clinical categories. From this figure, we can see, the neurologic and metabolic CC contained the largest fraction of features (18.5% and 14.3%, respectively). Interestingly, this distribution of phenotypes within CC is largely consistent with the tissue distribution of energy expenditure in the resting state, or basal metabolic rate (BMR).

The author proposed Quantitative Phenotypic Associations (QPA) as a quantitative measure of phenotype similarity of disease genes causing one or more identical phenotypic feature.

The analysis show that the association between QPA and Likelihood Ratios is positive.

Then same methods was expanded to identify functional interactions among 162 disease genes and 4577 candidates genes. This involves 1.9 million interactions between DG-DG, DG-CG, CG-DG and CG-CG. Then identified 495 mitochondrial CG through data integration.

Another analysis was done in this paper is to predict functional candidate genes. Firstly, the author used a supervised discriminant analysis of all 695 mitochondrial genes using the five attributes of gene functional interactions. Besides the 495 mitochondrial CG, 254 genes were predicted as DG with a true positive rate of 80.2% based on the confirmed known DG. In addition, 26 of the 38 DG with likely mitochondrial localization, which were input-labeled as CG to serve as controls, were correctly classified as DG. As an alternative tool, the author ran a supervised Bayesian network approach. They first defined a training set of 100 typical out of the 162 mitochondrial DG based on their median of total gene interactions. Accordingly, 100 typical CG were selected from the 495 mitochondrial CG. The network analysis correctly identified 56.8% of the DG, 16 out of the 38 likely mitochondrial DG, and predicted 201 DG out of the 495 CG. Overlapping the two approaches showed its potential of predictions as well. It predicted 168 novel mitochondrial DG with an estimated true positive rate of 85.8% (139 out of 162 DG) based on the correctly classified DG (Table S8).

In this study, a knowlegebase was created for storing detailed phenotypic information of known mitochondrial genes.
Then some methods were developed to analyze the clinical phenotype information, (1) to determine associations of genes and diseases, (2) compare different disease genes based on their associated phenotypes. Ultimately, this approach was used to predict disease gene similarities, which showed positive correlations to their functional interactions. By which, to predict disease candidate genes.


References:
CC-licensed picture like mitochondrion by dmountain.com

Tuesday, February 23, 2010

Signal transduction on logical model


During the investigation of protein protein interaction, there is a lot of data generated after two-hybrid, affinity purification and mass spectrometry.

On another hand, protein interaction networks could be extracted from literature by scientific curators or some text mining techniques.

These networks are usually displayed in node-edge graph. But these graph do not help to understand the specific cellular responses are activated by which stimuli. Mathematical models could do this job, but usually involves a lot parametres and the estimation of the parametres is tedious and sometimes clueless.

"Discrete logic modelling as a means to link protein signalling networks with functional analysis of mammalian signal transduction" is using logic model to represent the interaction network and then train it against experimental data. After this calibration, it was found that the prediction power of model is improved.

Now the research followed up this paper is going to be able to digest the automatically generated models (in BioPAX etc.). And it would be further better, if this research could be combined with mathematical models and help to calibrate the mathematical models.


References:
CC-licensed picture A model shot taken in Calgary by fotographix.ca

Friday, February 12, 2010

Alignment for Text mining result


First of all, this alignment is entirely irrelevant to the sequence alignment. Basically, it is the comparison between a few copies of a corpus and each copy is annotated by a tagger tool. The alignment result gives an objective view about the performance of each tagger.

IeXMLAlignment is a such tool which handles the job decently. It is currently available as a Java library and could be loaded with multi files and running alignment simultaneously.

For instance, CALBC could be annotated with Abner, Swissprot and Biolexicon. Then load these annotated corpora into IeXMLAlignment. The result comes out as plain text with the boundary information, terms frequency and Agreement/Disagreement between corpora.

This result is under consideration to be encoded as a standard format such as IeXML.

Tuesday, May 5, 2009

svn and kdiff3

I met an error when using kdiff3 as the merge tool for subversion. I suspect this is an bug of svn.

How to repeat the error:
1. either set --diff-cmd in ~/.subversion/config or in the command line directly like "svn diff -r r1507:r1508 blablabla.tex --diff-cmd /usr/bin/kdiff3"
2. then get the error as following:
kdiff3: Unknown option 'u'.
kdiff3: Use --help to get a list of available command line options.
svn: '/usr/bin/kdiff3' returned 254
svn: Error reading spooled REPORT request response

It could be caused that svn pass the default "-u" for "-x" to kdiff3 which doesn't recognize these parametres.

Monday, October 27, 2008

How To Download And Install Codecs For Mplayer Using Terminal

This is a very simple TASK done in the terminal/shell. Open terminal, become root and run the followings commands:

wget ftp://ftp3.mplayerhq.hu/MPlayer/releases/codecs/all-20050412.tar.bz2

tar jxvf all-20050412.tar.bz2

mkdir /usr/lib/win32

cp all-20050412/* /usr/lib/win32

Tuesday, July 8, 2008

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

It (stacktrace below) could be cause by the idle time of connection pool is longer than the connection idle time of mysql server.

So
1) set maxIdle time to 8 hours in context.xml
2) set autoReconnect to true in url. Something like, jdbc:mysql://(host):(port)/(db_name)?autoReconnect=true

I am not sure it will work. I follow up with the test result.

Ref: http://forums.mysql.com/read.php?39,42763,42763

Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 45 ms ago.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3134)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1818)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1961)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2537)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2466)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1383)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
at uk.ac.ebi.biomodels.RDatabase.executeQuery(RDatabase.java:148)
... 32 more
Caused by: java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3119)
... 39 more

Friday, July 4, 2008

java.lang.InternalError: Can't connect to X11 window server using 'web62-node2:0.0' as the value of the DISPLAY variable.

This error, which has stacktrace showed below, occurred when using JAI api to generate thumbnails of simulation result.

It worked perfectly on my local machine, but not on web server (web62-node2). Obviously, JAI was trying to call some X windows functions. But there isn't X server on web server at all.

And because there isn't any java GUI in my web app. So I tried to set JAVA_OPTS="-Djava.awt.headless=true" to avoid calling X windows stuff. But it still didn't work. I tried to "export DISPLAY='blablabla'". It didn't work either.

Finally, it worked after "unsetenv DISPLAY".

So solution is:
1. export JAVA_OPTS="-Djava.awt.headless=true"
2. unsetenv DISPLAY

java.lang.InternalError: Can't connect to X11 window server using 'web62-node2:0.0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.access$100(X11GraphicsEnvironment.java:52)
at sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:155)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.X11GraphicsEnvironment.(X11GraphicsEnvironment.java:131)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:68)
at sun.awt.X11.XToolkit.(XToolkit.java:89)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at java.awt.Toolkit$2.run(Toolkit.java:836)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:828)
at javax.swing.ImageIcon.(ImageIcon.java:81)
at javax.swing.ImageIcon.(ImageIcon.java:107)
at uk.ac.ebi.compneur.image.ThumbnailUtil.resize(ThumbnailUtil.java:35)
at uk.ac.ebi.biomodels.SimulationsDatabase.generateThumbnail(SimulationsDatabase.java:278)
at uk.ac.ebi.biomodels.ModelBean$Part5.doConditionIsTrue(ModelBean.java:3471)
at uk.ac.ebi.biomodels.ModelBean$DefaultPlainBean.conditionIsTrue(ModelBean.java:3226)
at uk.ac.ebi.compneur.jsp.ConditionBean.processRequest(ConditionBean.java:65)
at uk.ac.ebi.biomodels.DefaultBean.processRequest(DefaultBean.java:272)
at uk.ac.ebi.compneur.jsp.WholePartBean.processRequest(WholePartBean.java:141)
at uk.ac.ebi.compneur.jsp.WholePartBean.processRequest(WholePartBean.java:117)
at uk.ac.ebi.compneur.jsp.BaseBean.processRequest(BaseBean.java:81)
at org.apache.jsp.publ_002dmodel_002dtab_jsp._jspService(publ_002dmodel_002dtab_jsp.java:52)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:619)