Skip to content

Commit 88cb72d

Browse files
committed
initial commit
0 parents  commit 88cb72d

File tree

108 files changed

+1118179
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

108 files changed

+1118179
-0
lines changed

.classpath

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<classpath>
3+
<classpathentry kind="src" path="src"/>
4+
<classpathentry kind="lib" path="lib/core-10.jar"/>
5+
<classpathentry kind="lib" path="lib/JavaFXCore/javafx-swt.jar"/>
6+
<classpathentry kind="lib" path="lib/JavaFXCore/javafx.base.jar"/>
7+
<classpathentry kind="lib" path="lib/JavaFXCore/javafx.controls.jar"/>
8+
<classpathentry kind="lib" path="lib/JavaFXCore/javafx.fxml.jar"/>
9+
<classpathentry kind="lib" path="lib/JavaFXCore/javafx.graphics.jar"/>
10+
<classpathentry kind="lib" path="lib/JavaFXCore/javafx.media.jar"/>
11+
<classpathentry kind="lib" path="lib/JavaFXCore/javafx.swing.jar"/>
12+
<classpathentry kind="lib" path="lib/JavaFXCore/javafx.web.jar"/>
13+
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
14+
<attributes>
15+
<attribute name="module" value="true"/>
16+
</attributes>
17+
</classpathentry>
18+
<classpathentry kind="lib" path="/Users/gabrielagarcia/Downloads/commons-math-4.0-beta1/commons-math4-core-4.0-beta1-javadoc.jar"/>
19+
<classpathentry kind="lib" path="/Users/gabrielagarcia/Downloads/commons-math-4.0-beta1/commons-math4-core-4.0-beta1-sources.jar"/>
20+
<classpathentry kind="lib" path="/Users/gabrielagarcia/Downloads/commons-math-4.0-beta1/commons-math4-core-4.0-beta1.jar"/>
21+
<classpathentry kind="lib" path="/Users/gabrielagarcia/Downloads/commons-math-4.0-beta1/commons-math4-legacy-4.0-beta1-javadoc.jar"/>
22+
<classpathentry kind="lib" path="/Users/gabrielagarcia/Downloads/commons-math-4.0-beta1/commons-math4-legacy-4.0-beta1-sources.jar"/>
23+
<classpathentry kind="lib" path="/Users/gabrielagarcia/Downloads/commons-math-4.0-beta1/commons-math4-legacy-4.0-beta1.jar"/>
24+
<classpathentry kind="lib" path="/Users/gabrielagarcia/Downloads/commons-math-4.0-beta1/commons-math4-legacy-core-4.0-beta1-javadoc.jar"/>
25+
<classpathentry kind="lib" path="/Users/gabrielagarcia/Downloads/commons-math-4.0-beta1/commons-math4-legacy-core-4.0-beta1-sources.jar"/>
26+
<classpathentry kind="lib" path="/Users/gabrielagarcia/Downloads/commons-math-4.0-beta1/commons-math4-legacy-core-4.0-beta1.jar"/>
27+
<classpathentry kind="lib" path="/Users/gabrielagarcia/Downloads/commons-math-4.0-beta1/commons-math4-legacy-exception-4.0-beta1-javadoc.jar"/>
28+
<classpathentry kind="lib" path="/Users/gabrielagarcia/Downloads/commons-math-4.0-beta1/commons-math4-legacy-exception-4.0-beta1-sources.jar"/>
29+
<classpathentry kind="lib" path="/Users/gabrielagarcia/Downloads/commons-math-4.0-beta1/commons-math4-legacy-exception-4.0-beta1.jar"/>
30+
<classpathentry kind="lib" path="/Users/gabrielagarcia/Downloads/commons-math-4.0-beta1/commons-math4-neuralnet-4.0-beta1-javadoc.jar"/>
31+
<classpathentry kind="lib" path="/Users/gabrielagarcia/Downloads/commons-math-4.0-beta1/commons-math4-neuralnet-4.0-beta1-sources.jar"/>
32+
<classpathentry kind="lib" path="/Users/gabrielagarcia/Downloads/commons-math-4.0-beta1/commons-math4-neuralnet-4.0-beta1.jar"/>
33+
<classpathentry kind="lib" path="/Users/gabrielagarcia/Downloads/commons-math-4.0-beta1/commons-math4-transform-4.0-beta1-javadoc.jar"/>
34+
<classpathentry kind="lib" path="/Users/gabrielagarcia/Downloads/commons-math-4.0-beta1/commons-math4-transform-4.0-beta1-sources.jar"/>
35+
<classpathentry kind="lib" path="/Users/gabrielagarcia/Downloads/commons-math-4.0-beta1/commons-math4-transform-4.0-beta1.jar"/>
36+
<classpathentry kind="output" path="bin"/>
37+
</classpath>

.envrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export GH_TOKEN=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

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/.metadata/
2+
/MetabolicNetworks/bin
3+
/bin/
4+
.idea
5+
MetaPeNTA.iml
6+
/classes
7+
*.class
8+
/target/*
9+
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
eclipse.preferences.version=1
2+
org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
3+
org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
4+
org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
5+
org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
6+
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
7+
org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
8+
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
9+
org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
10+
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
11+
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
12+
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
13+
org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
14+
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
15+
org.eclipse.jdt.core.compiler.compliance=11
16+
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
17+
org.eclipse.jdt.core.compiler.debug.localVariable=generate
18+
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
19+
org.eclipse.jdt.core.compiler.problem.APILeak=warning
20+
org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
21+
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
22+
org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
23+
org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
24+
org.eclipse.jdt.core.compiler.problem.deadCode=warning
25+
org.eclipse.jdt.core.compiler.problem.deprecation=warning
26+
org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
27+
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
28+
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
29+
org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
30+
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
31+
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
32+
org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
33+
org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
34+
org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
35+
org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
36+
org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
37+
org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
38+
org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
39+
org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
40+
org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
41+
org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
42+
org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
43+
org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
44+
org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
45+
org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
46+
org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
47+
org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
48+
org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
49+
org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
50+
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
51+
org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
52+
org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
53+
org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
54+
org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
55+
org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
56+
org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
57+
org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
58+
org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
59+
org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
60+
org.eclipse.jdt.core.compiler.problem.nullReference=warning
61+
org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
62+
org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
63+
org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
64+
org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
65+
org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
66+
org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
67+
org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
68+
org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
69+
org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
70+
org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
71+
org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
72+
org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
73+
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
74+
org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
75+
org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
76+
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
77+
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
78+
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
79+
org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
80+
org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
81+
org.eclipse.jdt.core.compiler.problem.suppressWarningsNotFullyAnalysed=info
82+
org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
83+
org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
84+
org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
85+
org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
86+
org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
87+
org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
88+
org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
89+
org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
90+
org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
91+
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
92+
org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
93+
org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
94+
org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
95+
org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
96+
org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
97+
org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
98+
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
99+
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
100+
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
101+
org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
102+
org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
103+
org.eclipse.jdt.core.compiler.problem.unusedImport=warning
104+
org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
105+
org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
106+
org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
107+
org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
108+
org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
109+
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
110+
org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
111+
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
112+
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
113+
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
114+
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
115+
org.eclipse.jdt.core.compiler.release=disabled
116+
org.eclipse.jdt.core.compiler.source=11

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2020 vparrac
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

Metapenta_Informe_final.pdf

1.35 MB
Binary file not shown.

README.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Resumen
2+
Modelar, simular y representar redes metabólicas aún hoy en día representa un reto. Se han propuesto diversas aproximaciones para abordar este problema, los cuales se pueden resumir en tres principales modelos: los modelos continuos, discretos e híbridos. En este trabajo se propuso modelar las redes metabólicas con redes metabólicas con redes de Petri. Con este objetivo se implementó Metapenta, una herramienta que es capaz de realizar diferentes consultas sobre las redes metabólicas como encontrar el camino mínimo entre dos metabolitos, identificar metabolitos claves como los sumideros y las fuentes, visualizar las reacciones de un metabolito dato por parámetro, entre otras funcionalidades.​
3+
4+
## Contexto biologico
5+
Una red metabólica son el conjunto de todas las reacciones que ocurran en una célula. Está compuesta de tres componentes principales: metabolitos, reacciones y enzimas. Entender, visualizar y analizar estas redes metabólicas tiene una gran aplicación en la industria ya que ayuda a entender mecanismos de enfermedades como la diabetes y a mejorar producción de ciertos alimentos tales como pan y cerveza. En este proyecto se planteó una solución para analizar redes metabólicos basados en el formalismo de redes de Petri.
6+
7+
## Metodologia
8+
Se implementó el acercamiento discreto al modelo de redes metabólicas. Para esto se montó la red biológica sobre una red de Petri, y sobre esta se hicieron las consultas. Todo esto constituyó la lógica del modelo. Toda la visualización de la red, se hizo usando Processing 2.0. Sin embargo, el modo como este modulo debía recibir una forma de la red que fuera apta pare ser pintada, por lo que hay una clase especializada en hacer esa traducción. Por otro lado, toda la interfaz gráfica se implementó utilizando JavaFX y este mismo fue embebido en Processing para de manera que se combinarán ambas tecnologías.
9+
10+
## Diagrama de clases
11+
![MetaPenta(2)](https://user-images.githubusercontent.com/32238112/120860438-4c677600-c54b-11eb-97ed-ac45ea69ec99.png)
12+
13+
## Dependencias
14+
1. Java 11
15+
2. [Processing](https://processing.org/): Una librería para realizar gráficos de manera gráfica, se utilizó para realizar la representación de lad metabólica de la red de Petri
16+
17+
## Interfaz de usuario
18+
19+
### Panel 1
20+
Todo este panel está hecho en Processing 2.0 y tiene una lógica completamente independiente del resto de la aplicación, aquí sólo se maneja visualización. El usuario puede mover y arrastrar los metabolitos y las reacciones que están en este panel para lograr la conformación de la red que más le facilite el análisis. Adicionalmente, según los requerimientos, los nodos pueden mostrarse de distintos colores. Por ejemplo, en el requerimiento de ruta mínima, los metabolitos iniciales se muestran en naranja, el metabolito objetivo se muestra en verde y los metabolitos intermedios se muestran en morado.
21+
22+
### Panel 2
23+
En este panel es donde ocurre la mayor parte de la interacción con el usuario. En la parte superior del panel, el usuario puede introducir los IDs de los metabolitos para hacer la búsqueda de la ruta mínima. Si bajamos un poco, llegamos al campo de texto que nos permite filtrar y mostrar la subnet asociada a un metabolito. Para realizar este filtro, el usuario debe colocar el ID del metabolito y seleccionar si quiere que se muestren las reacciones donde el metabolito es substrato, producto o ambas en el checkbok que se encuentra justo debajo. En la última parte de este panel podemos seleccionar, también por medio de un checkbok, los documentos que queremos descargar y el programa generará los archivos en la ruta con el prefijo especificado cuando el usuario oprima el botón download.
24+
25+
### Panel 3
26+
Este panel es el que tiene menos interacción directa con el usuario debido a que, sólo se encarga de mostrar la información del nodo seleccionado. Si es un metabolito, se muestra su id, el compartimento, su fórmula química y las reacciones donde participa. Por otro lado, si es una reacción se muestra su nombre y los IDs de los metabolitos que en ella participan.
27+
28+
### Panel 4
29+
Este panel tiene dos botones. El primero, el de \textit{"load"}, permite cargar el archivo en formato XML de la red metabólica, mientras que el botón de \textit{"clean"} elimina la red que se encuentre cargada para una nueva red pueda ser cargada.
30+
31+
![ui](https://user-images.githubusercontent.com/32238112/120860331-217d2200-c54b-11eb-922e-02896dc9a20e.png)
32+
33+
## Running
34+
Si estás utilizando un IDE (por ejemplo eclipse), puedes correrla la aplicación corriendo la clase principal de la aplicación:
35+
36+
https://github.com/FLAGlab/MetaPeNTA/blob/master/src/metapenta/gui/Main.java
37+
38+
Si lo quieres correr por línea de comandos necesitas los archivos `jar` de la libería de `Processing` y los binarios de `Java FX` y correr el siguiente comando
39+
40+
`C:\Program Files\Java\jdk-11.0.7\bin\javaw.exe -Dfile.encoding=Cp1252 -classpath “<List of jar files>” metapenta.gui.Main <metabolic_file_path> <out_file>`
41+
42+
Donde <List of jar files> son los archivos antes mencionados. Los `jar` de processing, pueden encontrarse en la carpeta `lib`
43+
44+
## License
45+
46+
MIT License
47+
48+
Copyright (c) 2020 vparrac
49+
50+
Permission is hereby granted, free of charge, to any person obtaining a copy
51+
of this software and associated documentation files (the "Software"), to deal
52+
in the Software without restriction, including without limitation the rights
53+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
54+
copies of the Software, and to permit persons to whom the Software is
55+
furnished to do so, subject to the following conditions:
56+
57+
The above copyright notice and this permission notice shall be included in all
58+
copies or substantial portions of the Software.
59+
60+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
61+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
62+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
63+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
64+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
65+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
66+
SOFTWARE.

0 commit comments

Comments
 (0)