From 998c053741415ca06a8b1b5d9f034553214d0fb1 Mon Sep 17 00:00:00 2001 From: "piotr.gawron" <piotr.gawron@uni-new> Date: Tue, 20 Sep 2016 15:27:14 +0200 Subject: [PATCH] new lines issue --- .../applicationContext-annotation.xml | 90 +- .../annotation/AllAnnotationTests.java | 36 +- .../annotation/AnnotationTestFunctions.java | 594 +- .../src/test/resources/log4j.properties | 44 +- .../resources/test-applicationContext.xml | 34 +- .../common/EventStorageLoggerAppender.java | 280 +- .../common/HttpConnectionMethodType.java | 40 +- .../java/lcsb/mapviewer/common/MimeType.java | 172 +- .../lcsb/mapviewer/common/ObjectUtils.java | 104 +- .../main/java/lcsb/mapviewer/common/Pair.java | 166 +- .../mapviewer/common/SystemClipboard.java | 126 +- .../lcsb/mapviewer/common/TextFileUtils.java | 112 +- .../java/lcsb/mapviewer/common/XmlParser.java | 714 +- .../lcsb/mapviewer/common/AllCommonTests.java | 54 +- .../EventStorageLoggerAppenderTest.java | 116 +- .../common/HttpConnectionMethodTypeTest.java | 58 +- .../lcsb/mapviewer/common/MimeTypeTest.java | 64 +- .../mapviewer/common/ObjectUtilsTest.java | 116 +- .../java/lcsb/mapviewer/common/PairTest.java | 140 +- .../mapviewer/common/SystemClipboardTest.java | 196 +- .../mapviewer/common/TextFileUtilsTest.java | 152 +- .../lcsb/mapviewer/common/XmlParserTest.java | 948 +- .../java/lcsb/mapviewer/run/BellExport.java | 280 +- .../lcsb/mapviewer/run/ConsoleConverter.java | 934 +- .../lcsb/mapviewer/run/PdMapAnnotations.java | 164 +- .../mapviewer/run/ReactomeComparison.java | 810 +- .../lcsb/mapviewer/run/ReactomeExport.java | 1232 +-- .../lcsb/mapviewer/run/VibineSnippet.java | 232 +- .../mapviewer/run/PdMapAnnotationsTest.java | 80 +- .../layouts/PD substantia nigra.txt | 8682 ++++++++--------- .../pd_full/PD_151217_2/layouts/ageing.txt | 830 +- .../layouts/PD substantia nigra.txt | 8682 ++++++++--------- .../pd_full/PD_160714_2/layouts/ageing.txt | 830 +- .../src/test/resources/log4j.properties | 42 +- .../testFiles/annotation/invalid_rdf.xml | 2 +- .../testFiles/annotation/invalid_rdf2.xml | 18 +- .../testFiles/annotation/invalid_rdf3.xml | 18 +- .../testFiles/annotation/invalid_rdf4.xml | 16 +- .../testFiles/invalid/antisense_rna.xml | 30 +- .../testFiles/invalid/antisense_rna2.xml | 30 +- .../testFiles/invalid/antisense_rna3.xml | 28 +- .../testFiles/invalid/antisense_rna4.xml | 32 +- .../invalid/antisense_rna_collection.xml | 4 +- .../testFiles/invalid/block_diagrams.xml | 6 +- .../testFiles/invalid/compartment.xml | 8 +- .../testFiles/invalid/compartment2.xml | 16 +- .../testFiles/invalid/compartment3.xml | 16 +- .../testFiles/invalid/compartment_alias.xml | 14 +- .../testFiles/invalid/compartment_alias2.xml | 16 +- .../testFiles/invalid/compartment_alias3.xml | 16 +- .../invalid/compartment_alias_collection.xml | 54 +- .../invalid/complex_alias_collection.xml | 132 +- .../testFiles/invalid/gene_collection.xml | 4 +- .../testFiles/invalid/group_collection.xml | 8 +- .../testFiles/invalid/group_collection2.xml | 6 +- .../testFiles/invalid/group_collection3.xml | 10 +- .../invalid/included_species_collection.xml | 104 +- .../invalid/included_species_collection2.xml | 90 +- .../invalid/included_species_collection3.xml | 90 +- .../invalid/included_species_collection4.xml | 28 +- .../invalid/included_species_collection5.xml | 4 +- .../invalid/included_species_collection6.xml | 26 +- .../invalid/invalid_complex_alias.xml | 42 +- .../invalid/invalid_complex_alias2.xml | 6 +- .../invalid/invalid_complex_alias3.xml | 42 +- .../invalid/invalid_complex_alias4.xml | 42 +- .../invalid/invalid_complex_alias5.xml | 42 +- .../testFiles/invalid/invalid_gene_1.xml | 4 +- .../testFiles/invalid/invalid_gene_2.xml | 10 +- .../invalid/invalid_modification_residue.xml | 6 +- .../invalid/invalid_sbml_protein.xml | 2 +- .../invalid/invalid_sbml_protein10.xml | 20 +- .../invalid/invalid_sbml_protein11.xml | 20 +- .../invalid/invalid_sbml_protein12.xml | 20 +- .../invalid/invalid_sbml_protein13.xml | 22 +- .../invalid/invalid_sbml_protein14.xml | 24 +- .../invalid/invalid_sbml_protein2.xml | 4 +- .../invalid/invalid_sbml_protein3.xml | 8 +- .../invalid/invalid_sbml_protein4.xml | 6 +- .../invalid/invalid_sbml_protein5.xml | 12 +- .../invalid/invalid_sbml_protein6.xml | 10 +- .../invalid/invalid_sbml_protein7.xml | 20 +- .../invalid/invalid_sbml_protein8.xml | 18 +- .../invalid/invalid_sbml_protein9.xml | 20 +- .../testFiles/invalid/layer.xml | 70 +- .../testFiles/invalid/layer2.xml | 68 +- .../testFiles/invalid/layer3.xml | 70 +- .../testFiles/invalid/layer4.xml | 70 +- .../testFiles/invalid/layer5.xml | 70 +- .../testFiles/invalid/layer_collection.xml | 72 +- .../testFiles/invalid/layer_line.xml | 10 +- .../testFiles/invalid/layer_oval.xml | 12 +- .../testFiles/invalid/layer_square.xml | 12 +- .../testFiles/invalid/layer_text.xml | 18 +- .../testFiles/invalid/listOfCompartments.xml | 22 +- .../invalid/list_of_species_alias.xml | 1106 +-- .../invalid/list_of_species_alias2.xml | 1108 +-- .../testFiles/invalid/protein.xml | 30 +- .../testFiles/invalid/protein2.xml | 32 +- .../testFiles/invalid/protein3.xml | 32 +- .../testFiles/invalid/protein4.xml | 34 +- .../testFiles/invalid/protein5.xml | 34 +- .../testFiles/invalid/protein6.xml | 34 +- .../testFiles/invalid/protein_collection.xml | 4 +- .../testFiles/invalid/rna.xml | 10 +- .../testFiles/invalid/rna2.xml | 10 +- .../testFiles/invalid/rna3.xml | 12 +- .../testFiles/invalid/rna_collection.xml | 8 +- .../testFiles/invalid/sbml_collection.xml | 202 +- .../testFiles/invalid/species_alias.xml | 36 +- .../testFiles/invalid/species_alias2.xml | 38 +- .../testFiles/invalid/species_alias3.xml | 36 +- .../testFiles/invalid/species_alias4.xml | 36 +- .../testFiles/invalid/species_alias5.xml | 36 +- .../testFiles/invalid/species_alias6.xml | 36 +- .../invalid/species_alias_collection.xml | 158 +- .../xmlNodeTestExamples/block_diagrams.xml | 30 +- .../cd_complex_alias_with_empty_state.xml | 42 +- .../testFiles/xmlNodeTestExamples/notes.xml | 20 +- .../testFiles/xmlNodeTestExamples/notes2.xml | 46 +- .../testFiles/xmlNodeTestExamples/notes3.xml | 22 +- .../testFiles/xmlNodeTestExamples/notes4.xml | 22 +- .../testFiles/xmlNodeTestExamples/notes5.xml | 84 +- .../notes_invalid_charge.xml | 22 +- .../xmlNodeTestExamples/sbml_gene.xml | 144 +- .../xmlNodeTestExamples/sbml_ion.xml | 246 +- .../xmlNodeTestExamples/sbml_protein.xml | 124 +- .../xmlNodeTestExamples/sbml_rna.xml | 154 +- .../xmlNodeTestExamples/species_alias.xml | 36 +- .../species_alias_with_font.xml | 38 +- .../species_alias_without_state.xml | 36 +- .../converter/ComplexZipConverter.java | 842 +- .../lcsb/mapviewer/converter/IConverter.java | 164 +- .../lcsb/mapviewer/converter/AllTests.java | 26 +- .../converter/ComplexZipConverterTest.java | 1220 +-- converter/tmp/test.png | Bin 0 -> 10796 bytes .../mapviewer/commands/ColorModelCommand.java | 712 +- .../commands/CommandExecutionException.java | 110 +- .../lcsb/mapviewer/commands/CopyCommand.java | 952 +- .../commands/CreateHierarchyCommand.java | 1094 +-- .../commands/ColorModelCommandTest.java | 682 +- .../commands/CommandTestFunctions.java | 168 +- .../mapviewer/commands/CopyCommandTest.java | 688 +- .../commands/CreateHierarchyCommandTest.java | 570 +- .../java/lcsb/mapviewer/model/Project.java | 736 +- .../lcsb/mapviewer/model/ProjectStatus.java | 220 +- .../test/java/lcsb/mapviewer/AllTests.java | 32 +- .../lcsb/mapviewer/ModelTestFunctions.java | 64 +- .../lcsb/mapviewer/model/AllModelTests.java | 48 +- .../mapviewer/model/ProjectStatusTest.java | 60 +- .../lcsb/mapviewer/model/ProjectTest.java | 260 +- 151 files changed, 20810 insertions(+), 20810 deletions(-) create mode 100644 converter/tmp/test.png diff --git a/annotation/src/main/resources/applicationContext-annotation.xml b/annotation/src/main/resources/applicationContext-annotation.xml index 98f2dfa11b..8d26b7a2b6 100644 --- a/annotation/src/main/resources/applicationContext-annotation.xml +++ b/annotation/src/main/resources/applicationContext-annotation.xml @@ -1,46 +1,46 @@ -<beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:tx="http://www.springframework.org/schema/tx" - xmlns:context="http://www.springframework.org/schema/context" - xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans-4.0.xsd - http://www.springframework.org/schema/tx - http://www.springframework.org/schema/tx/spring-tx-4.0.xsd - http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context.xsd"> - - - <!-- Annotation services --> - - <!-- Annotators --> - <bean id="BiocompendiumAnnotator" class="lcsb.mapviewer.annotation.services.annotators.BiocompendiumAnnotator"/> - <bean id="ChebiAnnotator" class="lcsb.mapviewer.annotation.services.annotators.ChebiAnnotator"/> - <bean id="EnsemblAnnotator" class="lcsb.mapviewer.annotation.services.annotators.EnsemblAnnotator"/> - <bean id="EntrezAnnotator" class="lcsb.mapviewer.annotation.services.annotators.EntrezAnnotator"/> - <bean id="GoAnnotator" class="lcsb.mapviewer.annotation.services.annotators.GoAnnotator"/> - <bean id="HgncAnnotator" class="lcsb.mapviewer.annotation.services.annotators.HgncAnnotator"/> - <bean id="ReconAnnotator" class="lcsb.mapviewer.annotation.services.annotators.ReconAnnotator"/> - <bean id="UniprotAnnotator" class="lcsb.mapviewer.annotation.services.annotators.UniprotAnnotator"/> - - <bean id="ChEMBLParser" class="lcsb.mapviewer.annotation.services.ChEMBLParser"/> - <bean id="ChemicalParser" class="lcsb.mapviewer.annotation.services.ChemicalParser"/> - <bean id="DrugbankHTMLParser" class="lcsb.mapviewer.annotation.services.DrugbankHTMLParser"/> - <bean id="MiriamConnector" class="lcsb.mapviewer.annotation.services.MiriamConnector"/> - <bean id="ModelAnnotator" class="lcsb.mapviewer.annotation.services.ModelAnnotator"/> - <bean id="MeSHParser" class="lcsb.mapviewer.annotation.services.MeSHParser"/> - <bean id="PubmedParser" class="lcsb.mapviewer.annotation.services.PubmedParser"/> - <bean id="TaxonomyBackend" class="lcsb.mapviewer.annotation.services.TaxonomyBackend"/> - <bean id="MiRNAParser" class="lcsb.mapviewer.annotation.services.MiRNAParser"/> - - <!-- Reference Genome services --> - - <bean id="UcscReferenceGenomeConnector" class="lcsb.mapviewer.annotation.services.genome.UcscReferenceGenomeConnector"/> - - <!-- Cache services --> - - <bean id="GeneralCache" class="lcsb.mapviewer.annotation.cache.GeneralCache"/> - <bean id="PermanentDatabaseLevelCache" class="lcsb.mapviewer.annotation.cache.PermanentDatabaseLevelCache"/> - <bean id="BigFileCache" class="lcsb.mapviewer.annotation.cache.BigFileCache"/> - - +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:tx="http://www.springframework.org/schema/tx" + xmlns:context="http://www.springframework.org/schema/context" + xsi:schemaLocation="http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans-4.0.xsd + http://www.springframework.org/schema/tx + http://www.springframework.org/schema/tx/spring-tx-4.0.xsd + http://www.springframework.org/schema/context + http://www.springframework.org/schema/context/spring-context.xsd"> + + + <!-- Annotation services --> + + <!-- Annotators --> + <bean id="BiocompendiumAnnotator" class="lcsb.mapviewer.annotation.services.annotators.BiocompendiumAnnotator"/> + <bean id="ChebiAnnotator" class="lcsb.mapviewer.annotation.services.annotators.ChebiAnnotator"/> + <bean id="EnsemblAnnotator" class="lcsb.mapviewer.annotation.services.annotators.EnsemblAnnotator"/> + <bean id="EntrezAnnotator" class="lcsb.mapviewer.annotation.services.annotators.EntrezAnnotator"/> + <bean id="GoAnnotator" class="lcsb.mapviewer.annotation.services.annotators.GoAnnotator"/> + <bean id="HgncAnnotator" class="lcsb.mapviewer.annotation.services.annotators.HgncAnnotator"/> + <bean id="ReconAnnotator" class="lcsb.mapviewer.annotation.services.annotators.ReconAnnotator"/> + <bean id="UniprotAnnotator" class="lcsb.mapviewer.annotation.services.annotators.UniprotAnnotator"/> + + <bean id="ChEMBLParser" class="lcsb.mapviewer.annotation.services.ChEMBLParser"/> + <bean id="ChemicalParser" class="lcsb.mapviewer.annotation.services.ChemicalParser"/> + <bean id="DrugbankHTMLParser" class="lcsb.mapviewer.annotation.services.DrugbankHTMLParser"/> + <bean id="MiriamConnector" class="lcsb.mapviewer.annotation.services.MiriamConnector"/> + <bean id="ModelAnnotator" class="lcsb.mapviewer.annotation.services.ModelAnnotator"/> + <bean id="MeSHParser" class="lcsb.mapviewer.annotation.services.MeSHParser"/> + <bean id="PubmedParser" class="lcsb.mapviewer.annotation.services.PubmedParser"/> + <bean id="TaxonomyBackend" class="lcsb.mapviewer.annotation.services.TaxonomyBackend"/> + <bean id="MiRNAParser" class="lcsb.mapviewer.annotation.services.MiRNAParser"/> + + <!-- Reference Genome services --> + + <bean id="UcscReferenceGenomeConnector" class="lcsb.mapviewer.annotation.services.genome.UcscReferenceGenomeConnector"/> + + <!-- Cache services --> + + <bean id="GeneralCache" class="lcsb.mapviewer.annotation.cache.GeneralCache"/> + <bean id="PermanentDatabaseLevelCache" class="lcsb.mapviewer.annotation.cache.PermanentDatabaseLevelCache"/> + <bean id="BigFileCache" class="lcsb.mapviewer.annotation.cache.BigFileCache"/> + + </beans> \ No newline at end of file diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/AllAnnotationTests.java b/annotation/src/test/java/lcsb/mapviewer/annotation/AllAnnotationTests.java index 4a05c389f6..f14e65dd4e 100644 --- a/annotation/src/test/java/lcsb/mapviewer/annotation/AllAnnotationTests.java +++ b/annotation/src/test/java/lcsb/mapviewer/annotation/AllAnnotationTests.java @@ -1,18 +1,18 @@ -package lcsb.mapviewer.annotation; - -import lcsb.mapviewer.annotation.cache.AllCacheTests; -import lcsb.mapviewer.annotation.data.AllDataTests; -import lcsb.mapviewer.annotation.services.AllServicesTests; - -import org.junit.runner.RunWith; -import org.junit.runners.Suite; -import org.junit.runners.Suite.SuiteClasses; - -@RunWith(Suite.class) -@SuiteClasses({ AllCacheTests.class, // - AllDataTests.class, // - AllServicesTests.class, // -}) - -public class AllAnnotationTests { -} +package lcsb.mapviewer.annotation; + +import lcsb.mapviewer.annotation.cache.AllCacheTests; +import lcsb.mapviewer.annotation.data.AllDataTests; +import lcsb.mapviewer.annotation.services.AllServicesTests; + +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; + +@RunWith(Suite.class) +@SuiteClasses({ AllCacheTests.class, // + AllDataTests.class, // + AllServicesTests.class, // +}) + +public class AllAnnotationTests { +} diff --git a/annotation/src/test/java/lcsb/mapviewer/annotation/AnnotationTestFunctions.java b/annotation/src/test/java/lcsb/mapviewer/annotation/AnnotationTestFunctions.java index 829ed417ed..2064bb9443 100644 --- a/annotation/src/test/java/lcsb/mapviewer/annotation/AnnotationTestFunctions.java +++ b/annotation/src/test/java/lcsb/mapviewer/annotation/AnnotationTestFunctions.java @@ -1,297 +1,297 @@ -package lcsb.mapviewer.annotation; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Reader; -import java.io.StringReader; -import java.io.StringWriter; -import java.io.UnsupportedEncodingException; -import java.net.HttpURLConnection; -import java.net.URL; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; - -import org.apache.log4j.Logger; -import org.apache.log4j.spi.LoggingEvent; -import org.junit.After; -import org.junit.Before; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.annotation.Rollback; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.springframework.transaction.annotation.Transactional; -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; - -import lcsb.mapviewer.annotation.cache.PermanentDatabaseLevelCacheInterface; -import lcsb.mapviewer.common.EventStorageLoggerAppender; -import lcsb.mapviewer.common.exception.InvalidXmlSchemaException; -import lcsb.mapviewer.converter.ConverterParams; -import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; -import lcsb.mapviewer.model.map.model.Model; -import lcsb.mapviewer.persist.DbUtils; -import lcsb.mapviewer.persist.dao.cache.CacheTypeDao; - -@Transactional(value = "txManager") -@Rollback(false) -@ContextConfiguration(locations = { // - "/applicationContext-annotation.xml", // - "/applicationContext-persist.xml", // - "/test-applicationContext.xml", // -}) -@RunWith(SpringJUnit4ClassRunner.class) -public abstract class AnnotationTestFunctions extends AbstractTransactionalJUnit4SpringContextTests { - - @Autowired - protected PermanentDatabaseLevelCacheInterface cache; - - @Autowired - protected CacheTypeDao cacheTypeDao; - - @Autowired - protected DbUtils dbUtils; - - private Logger logger = Logger.getLogger(AnnotationTestFunctions.class); - - private EventStorageLoggerAppender appender; - - @Before - public final void _setUp() throws Exception { - Logger.getRootLogger().removeAppender(appender); - appender = new EventStorageLoggerAppender(false); - Logger.getRootLogger().addAppender(appender); - } - - @After - public final void _tearDown() throws Exception { - Logger.getRootLogger().removeAppender(appender); - } - - protected List<LoggingEvent> getWarnings() { - return appender.getWarnings(); - } - - protected List<LoggingEvent> getErrors() { - return appender.getErrors(); - } - - protected List<LoggingEvent> getFatals() { - return appender.getFatals(); - } - - protected String readFile(String file) throws IOException { - StringBuilder stringBuilder = new StringBuilder(); - BufferedReader reader = new BufferedReader(new FileReader(file)); - try { - String line = null; - String ls = System.getProperty("line.separator"); - - while ((line = reader.readLine()) != null) { - stringBuilder.append(line); - stringBuilder.append(ls); - } - } finally { - reader.close(); - } - - return stringBuilder.toString(); - } - - protected Node getNodeFromXmlString(String text) throws InvalidXmlSchemaException { - InputSource is = new InputSource(); - is.setCharacterStream(new StringReader(text)); - return getXmlDocumentFromInputSource(is).getChildNodes().item(0); - } - - protected Document getXmlDocumentFromFile(String fileName) throws InvalidXmlSchemaException, IOException { - File file = new File(fileName); - InputStream inputStream = new FileInputStream(file); - Reader reader = null; - try { - reader = new InputStreamReader(inputStream, "UTF-8"); - InputSource is = new InputSource(reader); - - Document result = getXmlDocumentFromInputSource(is); - inputStream.close(); - return result; - } catch (UnsupportedEncodingException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - return null; - } - - protected Document getXmlDocumentFromInputSource(InputSource stream) throws InvalidXmlSchemaException { - DocumentBuilder db; - try { - db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); - } catch (ParserConfigurationException e) { - throw new InvalidXmlSchemaException("Problem with xml parser"); - } - Document doc = null; - try { - doc = db.parse(stream); - } catch (SAXException e) { - logger.error(e); - } catch (IOException e) { - logger.error(e); - } - return doc; - } - - private static Map<String, Model> models = new HashMap<String, Model>(); - - protected Model getModelForFile(String fileName, boolean fromCache) throws Exception { - if (!fromCache) { - logger.debug("File without cache: " + fileName); - return new CellDesignerXmlParser().createModel(new ConverterParams().filename(fileName)); - } - Model result = AnnotationTestFunctions.models.get(fileName); - if (result == null) { - logger.debug("File to cache: " + fileName); - - CellDesignerXmlParser parser = new CellDesignerXmlParser(); - result = parser.createModel(new ConverterParams().filename(fileName).sizeAutoAdjust(false)); - AnnotationTestFunctions.models.put(fileName, result); - } - return result; - } - - protected String createTmpFileName() { - try { - File f = File.createTempFile("prefix", ".txt"); - String filename = f.getName(); - f.delete(); - return filename; - } catch (IOException e) { - e.printStackTrace(); - return null; - } - } - - protected String nodeToString(Node node) { - return nodeToString(node, false); - } - - protected String nodeToString(Node node, boolean includeHeadNode) { - if (node == null) - return null; - StringWriter sw = new StringWriter(); - try { - Transformer t = TransformerFactory.newInstance().newTransformer(); - t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); - t.setOutputProperty(OutputKeys.INDENT, "yes"); - t.setOutputProperty(OutputKeys.METHOD, "xml"); - - NodeList list = node.getChildNodes(); - for (int i = 0; i < list.getLength(); i++) { - Node element = list.item(i); - t.transform(new DOMSource(element), new StreamResult(sw)); - } - } catch (TransformerException te) { - logger.debug("nodeToString Transformer Exception"); - } - if (includeHeadNode) { - return "<" + node.getNodeName() + ">" + sw.toString() + "</" + node.getNodeName() + ">"; - } - return sw.toString(); - } - - protected boolean equalFiles(String fileA, String fileB) throws IOException { - int BLOCK_SIZE = 65536; - FileInputStream inputStreamA = new FileInputStream(fileA); - FileInputStream inputStreamB = new FileInputStream(fileB); - // vary BLOCK_SIZE to suit yourself. - // it should probably a factor or multiple of the size of a disk - // sector/cluster. - // Note that your max heap size may need to be adjused - // if you have a very big block size or lots of these comparators. - - // assume inputStreamA and inputStreamB are streams from your two files. - byte[] streamABlock = new byte[BLOCK_SIZE]; - byte[] streamBBlock = new byte[BLOCK_SIZE]; - boolean match = true; - int bytesReadA = 0; - int bytesReadB = 0; - do { - bytesReadA = inputStreamA.read(streamABlock); - bytesReadB = inputStreamB.read(streamBBlock); - match = ((bytesReadA == bytesReadB) && Arrays.equals(streamABlock, streamBBlock)); - } while (match && (bytesReadA > -1)); - inputStreamA.close(); - inputStreamB.close(); - return match; - } - - public File createTempDirectory() throws IOException { - final File temp; - - temp = File.createTempFile("temp", Long.toString(System.nanoTime())); - - if (!(temp.delete())) { - throw new IOException("Could not delete temp file: " + temp.getAbsolutePath()); - } - - if (!(temp.mkdir())) { - throw new IOException("Could not create temp directory: " + temp.getAbsolutePath()); - } - - return (temp); - } - - protected String getWebpage(String accessUrl) throws IOException { - String inputLine; - IOException exception = null; - for (int i = 0; i < 3; i++) { - try { - StringBuilder tmp = new StringBuilder(); - URL url = new URL(accessUrl); - HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); - urlConn.setRequestMethod("GET"); - urlConn.connect(); - BufferedReader in = new BufferedReader(new InputStreamReader(urlConn.getInputStream())); - - while ((inputLine = in.readLine()) != null) { - tmp.append(inputLine); - } - in.close(); - return tmp.toString(); - } catch (IOException e) { - exception = e; - } - } - throw exception; - } - - protected void waitForRefreshCacheQueueToEmpty() throws InterruptedException { - while (cache.refreshIsBusy()) { - logger.debug( - "Waiting for refresh queue to empty. " + cache.getRefreshPendingQueueSize() + " pending. " + cache.getRefreshExecutingTasksSize() - + " tasks are executed."); - Thread.sleep(300); - } - } - -} +package lcsb.mapviewer.annotation; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.io.StringReader; +import java.io.StringWriter; +import java.io.UnsupportedEncodingException; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +import org.apache.log4j.Logger; +import org.apache.log4j.spi.LoggingEvent; +import org.junit.After; +import org.junit.Before; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.annotation.Rollback; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.transaction.annotation.Transactional; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; + +import lcsb.mapviewer.annotation.cache.PermanentDatabaseLevelCacheInterface; +import lcsb.mapviewer.common.EventStorageLoggerAppender; +import lcsb.mapviewer.common.exception.InvalidXmlSchemaException; +import lcsb.mapviewer.converter.ConverterParams; +import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; +import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.persist.DbUtils; +import lcsb.mapviewer.persist.dao.cache.CacheTypeDao; + +@Transactional(value = "txManager") +@Rollback(false) +@ContextConfiguration(locations = { // + "/applicationContext-annotation.xml", // + "/applicationContext-persist.xml", // + "/test-applicationContext.xml", // +}) +@RunWith(SpringJUnit4ClassRunner.class) +public abstract class AnnotationTestFunctions extends AbstractTransactionalJUnit4SpringContextTests { + + @Autowired + protected PermanentDatabaseLevelCacheInterface cache; + + @Autowired + protected CacheTypeDao cacheTypeDao; + + @Autowired + protected DbUtils dbUtils; + + private Logger logger = Logger.getLogger(AnnotationTestFunctions.class); + + private EventStorageLoggerAppender appender; + + @Before + public final void _setUp() throws Exception { + Logger.getRootLogger().removeAppender(appender); + appender = new EventStorageLoggerAppender(false); + Logger.getRootLogger().addAppender(appender); + } + + @After + public final void _tearDown() throws Exception { + Logger.getRootLogger().removeAppender(appender); + } + + protected List<LoggingEvent> getWarnings() { + return appender.getWarnings(); + } + + protected List<LoggingEvent> getErrors() { + return appender.getErrors(); + } + + protected List<LoggingEvent> getFatals() { + return appender.getFatals(); + } + + protected String readFile(String file) throws IOException { + StringBuilder stringBuilder = new StringBuilder(); + BufferedReader reader = new BufferedReader(new FileReader(file)); + try { + String line = null; + String ls = System.getProperty("line.separator"); + + while ((line = reader.readLine()) != null) { + stringBuilder.append(line); + stringBuilder.append(ls); + } + } finally { + reader.close(); + } + + return stringBuilder.toString(); + } + + protected Node getNodeFromXmlString(String text) throws InvalidXmlSchemaException { + InputSource is = new InputSource(); + is.setCharacterStream(new StringReader(text)); + return getXmlDocumentFromInputSource(is).getChildNodes().item(0); + } + + protected Document getXmlDocumentFromFile(String fileName) throws InvalidXmlSchemaException, IOException { + File file = new File(fileName); + InputStream inputStream = new FileInputStream(file); + Reader reader = null; + try { + reader = new InputStreamReader(inputStream, "UTF-8"); + InputSource is = new InputSource(reader); + + Document result = getXmlDocumentFromInputSource(is); + inputStream.close(); + return result; + } catch (UnsupportedEncodingException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return null; + } + + protected Document getXmlDocumentFromInputSource(InputSource stream) throws InvalidXmlSchemaException { + DocumentBuilder db; + try { + db = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + } catch (ParserConfigurationException e) { + throw new InvalidXmlSchemaException("Problem with xml parser"); + } + Document doc = null; + try { + doc = db.parse(stream); + } catch (SAXException e) { + logger.error(e); + } catch (IOException e) { + logger.error(e); + } + return doc; + } + + private static Map<String, Model> models = new HashMap<String, Model>(); + + protected Model getModelForFile(String fileName, boolean fromCache) throws Exception { + if (!fromCache) { + logger.debug("File without cache: " + fileName); + return new CellDesignerXmlParser().createModel(new ConverterParams().filename(fileName)); + } + Model result = AnnotationTestFunctions.models.get(fileName); + if (result == null) { + logger.debug("File to cache: " + fileName); + + CellDesignerXmlParser parser = new CellDesignerXmlParser(); + result = parser.createModel(new ConverterParams().filename(fileName).sizeAutoAdjust(false)); + AnnotationTestFunctions.models.put(fileName, result); + } + return result; + } + + protected String createTmpFileName() { + try { + File f = File.createTempFile("prefix", ".txt"); + String filename = f.getName(); + f.delete(); + return filename; + } catch (IOException e) { + e.printStackTrace(); + return null; + } + } + + protected String nodeToString(Node node) { + return nodeToString(node, false); + } + + protected String nodeToString(Node node, boolean includeHeadNode) { + if (node == null) + return null; + StringWriter sw = new StringWriter(); + try { + Transformer t = TransformerFactory.newInstance().newTransformer(); + t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); + t.setOutputProperty(OutputKeys.INDENT, "yes"); + t.setOutputProperty(OutputKeys.METHOD, "xml"); + + NodeList list = node.getChildNodes(); + for (int i = 0; i < list.getLength(); i++) { + Node element = list.item(i); + t.transform(new DOMSource(element), new StreamResult(sw)); + } + } catch (TransformerException te) { + logger.debug("nodeToString Transformer Exception"); + } + if (includeHeadNode) { + return "<" + node.getNodeName() + ">" + sw.toString() + "</" + node.getNodeName() + ">"; + } + return sw.toString(); + } + + protected boolean equalFiles(String fileA, String fileB) throws IOException { + int BLOCK_SIZE = 65536; + FileInputStream inputStreamA = new FileInputStream(fileA); + FileInputStream inputStreamB = new FileInputStream(fileB); + // vary BLOCK_SIZE to suit yourself. + // it should probably a factor or multiple of the size of a disk + // sector/cluster. + // Note that your max heap size may need to be adjused + // if you have a very big block size or lots of these comparators. + + // assume inputStreamA and inputStreamB are streams from your two files. + byte[] streamABlock = new byte[BLOCK_SIZE]; + byte[] streamBBlock = new byte[BLOCK_SIZE]; + boolean match = true; + int bytesReadA = 0; + int bytesReadB = 0; + do { + bytesReadA = inputStreamA.read(streamABlock); + bytesReadB = inputStreamB.read(streamBBlock); + match = ((bytesReadA == bytesReadB) && Arrays.equals(streamABlock, streamBBlock)); + } while (match && (bytesReadA > -1)); + inputStreamA.close(); + inputStreamB.close(); + return match; + } + + public File createTempDirectory() throws IOException { + final File temp; + + temp = File.createTempFile("temp", Long.toString(System.nanoTime())); + + if (!(temp.delete())) { + throw new IOException("Could not delete temp file: " + temp.getAbsolutePath()); + } + + if (!(temp.mkdir())) { + throw new IOException("Could not create temp directory: " + temp.getAbsolutePath()); + } + + return (temp); + } + + protected String getWebpage(String accessUrl) throws IOException { + String inputLine; + IOException exception = null; + for (int i = 0; i < 3; i++) { + try { + StringBuilder tmp = new StringBuilder(); + URL url = new URL(accessUrl); + HttpURLConnection urlConn = (HttpURLConnection) url.openConnection(); + urlConn.setRequestMethod("GET"); + urlConn.connect(); + BufferedReader in = new BufferedReader(new InputStreamReader(urlConn.getInputStream())); + + while ((inputLine = in.readLine()) != null) { + tmp.append(inputLine); + } + in.close(); + return tmp.toString(); + } catch (IOException e) { + exception = e; + } + } + throw exception; + } + + protected void waitForRefreshCacheQueueToEmpty() throws InterruptedException { + while (cache.refreshIsBusy()) { + logger.debug( + "Waiting for refresh queue to empty. " + cache.getRefreshPendingQueueSize() + " pending. " + cache.getRefreshExecutingTasksSize() + + " tasks are executed."); + Thread.sleep(300); + } + } + +} diff --git a/annotation/src/test/resources/log4j.properties b/annotation/src/test/resources/log4j.properties index e550f09e60..473855faa6 100644 --- a/annotation/src/test/resources/log4j.properties +++ b/annotation/src/test/resources/log4j.properties @@ -1,23 +1,23 @@ -#Set root logger 's level and its appender to an appender called CONSOLE which is defined below. -log4j.rootLogger=info, CONSOLE - -#Set the behavior of the CONSOLE appender -log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender -log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout -log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n -#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n - - -#Set the behavior of the FILE appender -log4j.appender.R=org.apache.log4j.FileAppender -log4j.appender.R.File=${catalina.home}/logs/MapViewer.log -log4j.appender.R.layout=org.apache.log4j.PatternLayout -log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n - - -log4j.logger.org.springframework=warn -log4j.logger.org.hibernate=warn -log4j.logger.lcsb=debug -log4j.logger.lcsb.mapviewer.persist.DbUtils=info -log4j.logger.lcsb.mapviewer.annotation.cache.PermanentDatabaseLevelCache=info +#Set root logger 's level and its appender to an appender called CONSOLE which is defined below. +log4j.rootLogger=info, CONSOLE + +#Set the behavior of the CONSOLE appender +log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender +log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout +log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n +#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n + + +#Set the behavior of the FILE appender +log4j.appender.R=org.apache.log4j.FileAppender +log4j.appender.R.File=${catalina.home}/logs/MapViewer.log +log4j.appender.R.layout=org.apache.log4j.PatternLayout +log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n + + +log4j.logger.org.springframework=warn +log4j.logger.org.hibernate=warn +log4j.logger.lcsb=debug +log4j.logger.lcsb.mapviewer.persist.DbUtils=info +log4j.logger.lcsb.mapviewer.annotation.cache.PermanentDatabaseLevelCache=info log4j.logger.lcsb.mapviewer.annotation.cache.CachableInterface=info \ No newline at end of file diff --git a/annotation/src/test/resources/test-applicationContext.xml b/annotation/src/test/resources/test-applicationContext.xml index cf221aca42..47dc97e5d9 100644 --- a/annotation/src/test/resources/test-applicationContext.xml +++ b/annotation/src/test/resources/test-applicationContext.xml @@ -1,17 +1,17 @@ -<beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:tx="http://www.springframework.org/schema/tx" - xmlns:context="http://www.springframework.org/schema/context" - xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans-4.0.xsd - http://www.springframework.org/schema/tx - http://www.springframework.org/schema/tx/spring-tx-4.0.xsd - http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context-4.0.xsd"> - - <!-- Testing Password Encoder used for hashing passwords --> - <bean id="PasswordEncoder" class="org.springframework.security.crypto.password.NoOpPasswordEncoder"/> - - <bean id="MockCacheInterface" class="lcsb.mapviewer.annotation.cache.MockCacheInterface"/> - -</beans> +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:tx="http://www.springframework.org/schema/tx" + xmlns:context="http://www.springframework.org/schema/context" + xsi:schemaLocation="http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans-4.0.xsd + http://www.springframework.org/schema/tx + http://www.springframework.org/schema/tx/spring-tx-4.0.xsd + http://www.springframework.org/schema/context + http://www.springframework.org/schema/context/spring-context-4.0.xsd"> + + <!-- Testing Password Encoder used for hashing passwords --> + <bean id="PasswordEncoder" class="org.springframework.security.crypto.password.NoOpPasswordEncoder"/> + + <bean id="MockCacheInterface" class="lcsb.mapviewer.annotation.cache.MockCacheInterface"/> + +</beans> diff --git a/commons/src/main/java/lcsb/mapviewer/common/EventStorageLoggerAppender.java b/commons/src/main/java/lcsb/mapviewer/common/EventStorageLoggerAppender.java index 705c545a5d..402e0437f5 100644 --- a/commons/src/main/java/lcsb/mapviewer/common/EventStorageLoggerAppender.java +++ b/commons/src/main/java/lcsb/mapviewer/common/EventStorageLoggerAppender.java @@ -1,140 +1,140 @@ -package lcsb.mapviewer.common; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.log4j.Appender; -import org.apache.log4j.AppenderSkeleton; -import org.apache.log4j.Level; -import org.apache.log4j.lf5.LogLevel; -import org.apache.log4j.spi.LoggingEvent; - -/** - * Custom log4j {@link Appender}. This class is used to store logs in the - * memory. Such logs should be stored for short period of time. Only logs for - * the {@link Thread} that created the object will be stored. - * - * @author Piotr Gawron - * - */ -public class EventStorageLoggerAppender extends AppenderSkeleton { - - /** - * List of {@link LogLevel#DEBUG} logs. - */ - private List<LoggingEvent> debugEvents = new ArrayList<>(); - - /** - * List of {@link LogLevel#INFO} logs. - */ - private List<LoggingEvent> infoEvents = new ArrayList<>(); - - /** - * List of {@link LogLevel#WARN} logs. - */ - private List<LoggingEvent> warnEvents = new ArrayList<>(); - - /** - * List of {@link LogLevel#ERROR} logs. - */ - private List<LoggingEvent> errorEvents = new ArrayList<>(); - - /** - * List of {@link LogLevel#FATAL} logs. - */ - private List<LoggingEvent> fatalEvents = new ArrayList<>(); - - /** - * List of logs with unknown log level. - */ - private List<LoggingEvent> otherEvents = new ArrayList<>(); - - /** - * Identifier of {@link Thread} that created this object. - */ - private long threadId; - - /** - * Flag that describe if we log only entries for current thread ( - * <code>true</code>) or for all threads (<code>false</code>). - */ - private boolean currentThreadLogOnly = true; - - /** - * Default constructor. - */ - public EventStorageLoggerAppender() { - this(true); - } - - /** - * Default constructor. - * - * @param currentThreadLogOnly - * if <code>true</code> logs should be taken only from thread that - * created object, if <code>false</code> all logs will be stored - */ - public EventStorageLoggerAppender(boolean currentThreadLogOnly) { - this.threadId = Thread.currentThread().getId(); - this.currentThreadLogOnly = currentThreadLogOnly; - } - - @Override - protected void append(LoggingEvent event) { - - // store information for all thread only if it is flagged by - // currentThreadLogOnly, if not only logs from current thread should be - // stored - if (!currentThreadLogOnly || threadId == Thread.currentThread().getId()) { - if (event.getLevel().equals(Level.DEBUG)) { - debugEvents.add(event); - } else if (event.getLevel().equals(Level.INFO)) { - infoEvents.add(event); - } else if (event.getLevel().equals(Level.WARN)) { - warnEvents.add(event); - } else if (event.getLevel().equals(Level.ERROR)) { - errorEvents.add(event); - } else if (event.getLevel().equals(Level.FATAL)) { - fatalEvents.add(event); - } else { - otherEvents.add(event); - } - } - } - - @Override - public void close() { - } - - @Override - public boolean requiresLayout() { - return false; - } - - /** - * Returns list of warning logs. - * - * @return list of warning logs - */ - public List<LoggingEvent> getWarnings() { - return warnEvents; - } - - /** - * Returns list of error logs. - * - * @return list of error logs - */ - public List<LoggingEvent> getErrors() { - return errorEvents; - } - - /** - * Returns list of fatal logs. - * - * @return list of fatal logs - */ - public List<LoggingEvent> getFatals() { - return fatalEvents; - } -} +package lcsb.mapviewer.common; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.log4j.Appender; +import org.apache.log4j.AppenderSkeleton; +import org.apache.log4j.Level; +import org.apache.log4j.lf5.LogLevel; +import org.apache.log4j.spi.LoggingEvent; + +/** + * Custom log4j {@link Appender}. This class is used to store logs in the + * memory. Such logs should be stored for short period of time. Only logs for + * the {@link Thread} that created the object will be stored. + * + * @author Piotr Gawron + * + */ +public class EventStorageLoggerAppender extends AppenderSkeleton { + + /** + * List of {@link LogLevel#DEBUG} logs. + */ + private List<LoggingEvent> debugEvents = new ArrayList<>(); + + /** + * List of {@link LogLevel#INFO} logs. + */ + private List<LoggingEvent> infoEvents = new ArrayList<>(); + + /** + * List of {@link LogLevel#WARN} logs. + */ + private List<LoggingEvent> warnEvents = new ArrayList<>(); + + /** + * List of {@link LogLevel#ERROR} logs. + */ + private List<LoggingEvent> errorEvents = new ArrayList<>(); + + /** + * List of {@link LogLevel#FATAL} logs. + */ + private List<LoggingEvent> fatalEvents = new ArrayList<>(); + + /** + * List of logs with unknown log level. + */ + private List<LoggingEvent> otherEvents = new ArrayList<>(); + + /** + * Identifier of {@link Thread} that created this object. + */ + private long threadId; + + /** + * Flag that describe if we log only entries for current thread ( + * <code>true</code>) or for all threads (<code>false</code>). + */ + private boolean currentThreadLogOnly = true; + + /** + * Default constructor. + */ + public EventStorageLoggerAppender() { + this(true); + } + + /** + * Default constructor. + * + * @param currentThreadLogOnly + * if <code>true</code> logs should be taken only from thread that + * created object, if <code>false</code> all logs will be stored + */ + public EventStorageLoggerAppender(boolean currentThreadLogOnly) { + this.threadId = Thread.currentThread().getId(); + this.currentThreadLogOnly = currentThreadLogOnly; + } + + @Override + protected void append(LoggingEvent event) { + + // store information for all thread only if it is flagged by + // currentThreadLogOnly, if not only logs from current thread should be + // stored + if (!currentThreadLogOnly || threadId == Thread.currentThread().getId()) { + if (event.getLevel().equals(Level.DEBUG)) { + debugEvents.add(event); + } else if (event.getLevel().equals(Level.INFO)) { + infoEvents.add(event); + } else if (event.getLevel().equals(Level.WARN)) { + warnEvents.add(event); + } else if (event.getLevel().equals(Level.ERROR)) { + errorEvents.add(event); + } else if (event.getLevel().equals(Level.FATAL)) { + fatalEvents.add(event); + } else { + otherEvents.add(event); + } + } + } + + @Override + public void close() { + } + + @Override + public boolean requiresLayout() { + return false; + } + + /** + * Returns list of warning logs. + * + * @return list of warning logs + */ + public List<LoggingEvent> getWarnings() { + return warnEvents; + } + + /** + * Returns list of error logs. + * + * @return list of error logs + */ + public List<LoggingEvent> getErrors() { + return errorEvents; + } + + /** + * Returns list of fatal logs. + * + * @return list of fatal logs + */ + public List<LoggingEvent> getFatals() { + return fatalEvents; + } +} diff --git a/commons/src/main/java/lcsb/mapviewer/common/HttpConnectionMethodType.java b/commons/src/main/java/lcsb/mapviewer/common/HttpConnectionMethodType.java index 78ed3bbf2c..8d5f0c4322 100644 --- a/commons/src/main/java/lcsb/mapviewer/common/HttpConnectionMethodType.java +++ b/commons/src/main/java/lcsb/mapviewer/common/HttpConnectionMethodType.java @@ -1,20 +1,20 @@ -package lcsb.mapviewer.common; - -/** - * Defines type of http connection method. - * - * @author Piotr Gawron - * - */ -public enum HttpConnectionMethodType { - - /** - * GET method. - */ - GET, // - - /** - * POST method. - */ - POST; -} +package lcsb.mapviewer.common; + +/** + * Defines type of http connection method. + * + * @author Piotr Gawron + * + */ +public enum HttpConnectionMethodType { + + /** + * GET method. + */ + GET, // + + /** + * POST method. + */ + POST; +} diff --git a/commons/src/main/java/lcsb/mapviewer/common/MimeType.java b/commons/src/main/java/lcsb/mapviewer/common/MimeType.java index c52311b48e..54c7c29e1b 100644 --- a/commons/src/main/java/lcsb/mapviewer/common/MimeType.java +++ b/commons/src/main/java/lcsb/mapviewer/common/MimeType.java @@ -1,86 +1,86 @@ -package lcsb.mapviewer.common; - -/** - * Mime content types of data used in the system. If there is publically - * available class with all posible types then we should use it, but I couldn't - * quickly find it. For the full list see <a - * href="http://www.iana.org/assignments/media-types/media-types.xhtml">IANA - * MIME media types list</a> - * - * @author Piotr Gawron - * - */ -public enum MimeType { - /** - * SBML type of file. - */ - SBML("application/sbml+xml"), // - - /** - * Standard text file. - */ - TEXT("text/plain"), // - - /** - * Standard XML file. - */ - XML("application/xml"), - - /** - * <a href="http://www.w3.org/TR/SVG11/mimereg.html">SVG</a> file type. - */ - SVG("image/svg+xml"), - - /** - * JPG image file type. - */ - JPG("image/jpeg"), - - /** - * PNG image file type. - */ - PNG("image/png"), - - /** - * PDF files (see <a href="http://www.rfc-editor.org/rfc/rfc3778.txt"> RFC - * 3778, The application/pdf Media Type</a>). - */ - PDF("application/pdf"), // - - /** - * CSS files. - */ - CSS("text/css"), // - - /** - * Javascript files. - */ - JS("text/javascript"), - - /** - * Zip files. - */ - ZIP("application/zip"); // - - /** - * String representation of the MIME content. - */ - private String textRepresentation; - - /** - * Default constructor with string definition. - * - * @param textRepresentation - * text representation for MIME type - */ - MimeType(String textRepresentation) { - this.textRepresentation = textRepresentation; - } - - /** - * @return the textRepresentation - */ - public String getTextRepresentation() { - return textRepresentation; - } -} +package lcsb.mapviewer.common; + +/** + * Mime content types of data used in the system. If there is publically + * available class with all posible types then we should use it, but I couldn't + * quickly find it. For the full list see <a + * href="http://www.iana.org/assignments/media-types/media-types.xhtml">IANA + * MIME media types list</a> + * + * @author Piotr Gawron + * + */ +public enum MimeType { + /** + * SBML type of file. + */ + SBML("application/sbml+xml"), // + + /** + * Standard text file. + */ + TEXT("text/plain"), // + + /** + * Standard XML file. + */ + XML("application/xml"), + + /** + * <a href="http://www.w3.org/TR/SVG11/mimereg.html">SVG</a> file type. + */ + SVG("image/svg+xml"), + + /** + * JPG image file type. + */ + JPG("image/jpeg"), + + /** + * PNG image file type. + */ + PNG("image/png"), + + /** + * PDF files (see <a href="http://www.rfc-editor.org/rfc/rfc3778.txt"> RFC + * 3778, The application/pdf Media Type</a>). + */ + PDF("application/pdf"), // + + /** + * CSS files. + */ + CSS("text/css"), // + + /** + * Javascript files. + */ + JS("text/javascript"), + + /** + * Zip files. + */ + ZIP("application/zip"); // + + /** + * String representation of the MIME content. + */ + private String textRepresentation; + + /** + * Default constructor with string definition. + * + * @param textRepresentation + * text representation for MIME type + */ + MimeType(String textRepresentation) { + this.textRepresentation = textRepresentation; + } + + /** + * @return the textRepresentation + */ + public String getTextRepresentation() { + return textRepresentation; + } +} diff --git a/commons/src/main/java/lcsb/mapviewer/common/ObjectUtils.java b/commons/src/main/java/lcsb/mapviewer/common/ObjectUtils.java index b5fd056b5e..145a9790da 100644 --- a/commons/src/main/java/lcsb/mapviewer/common/ObjectUtils.java +++ b/commons/src/main/java/lcsb/mapviewer/common/ObjectUtils.java @@ -1,52 +1,52 @@ -package lcsb.mapviewer.common; - -import java.lang.reflect.Method; - -import lcsb.mapviewer.common.exception.InvalidArgumentException; - -/** - * Util class that performs primitive operations on the object. - * - * @author Piotr Gawron - * - */ -public final class ObjectUtils { - - /** - * Default constructor. Prevents instatiation. - */ - private ObjectUtils() { - } - - /** - * Returns object identifier. It assumes that object contains getId method - * that returns Integer. - * - * @param object - * object for which identifier is looked for - * @return object identifier - */ - public static Integer getIdOfObject(Object object) { - Integer id = (Integer) getParamByGetter(object, "getId"); - return id; - } - - /** - * Returns object param using string getter function. - * - * @param object - * object from which parameter will be taken - * @param getterName - * string with name of the getter function - * @return object field - */ - public static Object getParamByGetter(Object object, String getterName) { - try { - Method method = object.getClass().getMethod(getterName); - Object result = method.invoke(object); - return result; - } catch (Exception e) { - throw new InvalidArgumentException(e.getMessage()); - } - } -} +package lcsb.mapviewer.common; + +import java.lang.reflect.Method; + +import lcsb.mapviewer.common.exception.InvalidArgumentException; + +/** + * Util class that performs primitive operations on the object. + * + * @author Piotr Gawron + * + */ +public final class ObjectUtils { + + /** + * Default constructor. Prevents instatiation. + */ + private ObjectUtils() { + } + + /** + * Returns object identifier. It assumes that object contains getId method + * that returns Integer. + * + * @param object + * object for which identifier is looked for + * @return object identifier + */ + public static Integer getIdOfObject(Object object) { + Integer id = (Integer) getParamByGetter(object, "getId"); + return id; + } + + /** + * Returns object param using string getter function. + * + * @param object + * object from which parameter will be taken + * @param getterName + * string with name of the getter function + * @return object field + */ + public static Object getParamByGetter(Object object, String getterName) { + try { + Method method = object.getClass().getMethod(getterName); + Object result = method.invoke(object); + return result; + } catch (Exception e) { + throw new InvalidArgumentException(e.getMessage()); + } + } +} diff --git a/commons/src/main/java/lcsb/mapviewer/common/Pair.java b/commons/src/main/java/lcsb/mapviewer/common/Pair.java index 32fb0263a8..8d8573c0c4 100644 --- a/commons/src/main/java/lcsb/mapviewer/common/Pair.java +++ b/commons/src/main/java/lcsb/mapviewer/common/Pair.java @@ -1,84 +1,84 @@ -package lcsb.mapviewer.common; - -import java.io.Serializable; - -/** - * Represents pair of two objects. It's immutable as long as param classes are - * immutable. - * - * @author Piotr Gawron - * - * @param <L> - * class type of the first object - * @param <R> - * class type of the second object - */ -public class Pair<L, R> implements Serializable { - - /** - * - */ - private static final long serialVersionUID = 1L; - - /** - * First object. - */ - private final L left; - - /** - * Second object. - */ - private final R right; - - /** - * Default constructor. - * - * @param left - * {@link #left} - * @param right - * {@link #right} - */ - public Pair(L left, R right) { - this.left = left; - this.right = right; - } - - /** - * - * @return {@link #left} - */ - public L getLeft() { - return left; - } - - /** - * - * @return {@link #right} - */ - public R getRight() { - return right; - } - - @Override - public int hashCode() { - return left.hashCode() ^ right.hashCode(); - } - - @Override - public boolean equals(Object o) { - if (o == null) { - return false; - } - if (!(o instanceof Pair)) { - return false; - } - Pair<?, ?> pairo = (Pair<?, ?>) o; - return this.left.equals(pairo.getLeft()) && this.right.equals(pairo.getRight()); - } - - @Override - public String toString() { - return "Pair: " + getLeft().toString() + ", " + getRight().toString(); - } - +package lcsb.mapviewer.common; + +import java.io.Serializable; + +/** + * Represents pair of two objects. It's immutable as long as param classes are + * immutable. + * + * @author Piotr Gawron + * + * @param <L> + * class type of the first object + * @param <R> + * class type of the second object + */ +public class Pair<L, R> implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 1L; + + /** + * First object. + */ + private final L left; + + /** + * Second object. + */ + private final R right; + + /** + * Default constructor. + * + * @param left + * {@link #left} + * @param right + * {@link #right} + */ + public Pair(L left, R right) { + this.left = left; + this.right = right; + } + + /** + * + * @return {@link #left} + */ + public L getLeft() { + return left; + } + + /** + * + * @return {@link #right} + */ + public R getRight() { + return right; + } + + @Override + public int hashCode() { + return left.hashCode() ^ right.hashCode(); + } + + @Override + public boolean equals(Object o) { + if (o == null) { + return false; + } + if (!(o instanceof Pair)) { + return false; + } + Pair<?, ?> pairo = (Pair<?, ?>) o; + return this.left.equals(pairo.getLeft()) && this.right.equals(pairo.getRight()); + } + + @Override + public String toString() { + return "Pair: " + getLeft().toString() + ", " + getRight().toString(); + } + } \ No newline at end of file diff --git a/commons/src/main/java/lcsb/mapviewer/common/SystemClipboard.java b/commons/src/main/java/lcsb/mapviewer/common/SystemClipboard.java index f69c4c2cb6..16585aa4ef 100644 --- a/commons/src/main/java/lcsb/mapviewer/common/SystemClipboard.java +++ b/commons/src/main/java/lcsb/mapviewer/common/SystemClipboard.java @@ -1,63 +1,63 @@ -package lcsb.mapviewer.common; - -import java.awt.Toolkit; -import java.awt.datatransfer.Clipboard; -import java.awt.datatransfer.ClipboardOwner; -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.StringSelection; -import java.awt.datatransfer.Transferable; - -import org.apache.log4j.Logger; - -/** - * Class allowing access to system clipboard. - * - * @author Piotr Gawron - * - */ -public class SystemClipboard implements ClipboardOwner { - /** - * Default class logger. - */ - private final Logger logger = Logger.getLogger(SystemClipboard.class); - - @Override - public void lostOwnership(Clipboard clipboard, Transferable contents) { - } - - /** - * Place a String on the clipboard, and make this class the owner of the - * Clipboard's contents. - * - * @param aString - * what we want to put into clipboard - */ - public void setClipboardContents(String aString) { - StringSelection stringSelection = new StringSelection(aString); - Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - clipboard.setContents(stringSelection, this); - } - - /** - * Get the String residing on the clipboard. - * - * @return any text found on the Clipboard; if none found, return an empty - * String. - */ - public String getClipboardContents() { - String result = null; - Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - // odd: the Object param of getContents is not currently used - Transferable contents = clipboard.getContents(null); - boolean hasTransferableText = contents.isDataFlavorSupported(DataFlavor.stringFlavor); - if (hasTransferableText) { - try { - result = (String) contents.getTransferData(DataFlavor.stringFlavor); - } catch (Exception ex) { - logger.error(ex, ex); - } - } - return result; - } - -} +package lcsb.mapviewer.common; + +import java.awt.Toolkit; +import java.awt.datatransfer.Clipboard; +import java.awt.datatransfer.ClipboardOwner; +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.StringSelection; +import java.awt.datatransfer.Transferable; + +import org.apache.log4j.Logger; + +/** + * Class allowing access to system clipboard. + * + * @author Piotr Gawron + * + */ +public class SystemClipboard implements ClipboardOwner { + /** + * Default class logger. + */ + private final Logger logger = Logger.getLogger(SystemClipboard.class); + + @Override + public void lostOwnership(Clipboard clipboard, Transferable contents) { + } + + /** + * Place a String on the clipboard, and make this class the owner of the + * Clipboard's contents. + * + * @param aString + * what we want to put into clipboard + */ + public void setClipboardContents(String aString) { + StringSelection stringSelection = new StringSelection(aString); + Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); + clipboard.setContents(stringSelection, this); + } + + /** + * Get the String residing on the clipboard. + * + * @return any text found on the Clipboard; if none found, return an empty + * String. + */ + public String getClipboardContents() { + String result = null; + Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); + // odd: the Object param of getContents is not currently used + Transferable contents = clipboard.getContents(null); + boolean hasTransferableText = contents.isDataFlavorSupported(DataFlavor.stringFlavor); + if (hasTransferableText) { + try { + result = (String) contents.getTransferData(DataFlavor.stringFlavor); + } catch (Exception ex) { + logger.error(ex, ex); + } + } + return result; + } + +} diff --git a/commons/src/main/java/lcsb/mapviewer/common/TextFileUtils.java b/commons/src/main/java/lcsb/mapviewer/common/TextFileUtils.java index 6ae08f6169..12d7490398 100644 --- a/commons/src/main/java/lcsb/mapviewer/common/TextFileUtils.java +++ b/commons/src/main/java/lcsb/mapviewer/common/TextFileUtils.java @@ -1,56 +1,56 @@ -package lcsb.mapviewer.common; - -import java.io.BufferedReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.HashMap; -import java.util.Map; - -/** - * Class with util function to operate on text files. - * - * @author Piotr Gawron - * - */ -public final class TextFileUtils { - - /** - * Default constructor that prevents instatiation. - */ - private TextFileUtils() { - - } - - /** - * Parses input stream to get parameters from header. {@link InputStream} - * should be a text file. Header parameters are lines at the beginning of the - * file starting with '#' character. - * - * @param is - * input stream for a file to process - * @return map with paramteres parsed from input stream - * @throws IOException - * thrown when there is a problem with accessing input stream - */ - public static Map<String, String> getHeaderParametersFromFile(InputStream is) throws IOException { - Map<String, String> result = new HashMap<String, String>(); - BufferedReader in = new BufferedReader(new InputStreamReader(is)); - String line = null; - while ((line = in.readLine()) != null) { - if (line.startsWith("#")) { - String tmp = line.substring(1); - if (tmp.indexOf("=") > 0) { - String key = tmp.substring(0, tmp.indexOf("=")).trim(); - String value = tmp.substring(tmp.indexOf("=") + 1).trim(); - result.put(key, value); - } - } else { - break; - } - } - is.close(); - return result; - } - -} +package lcsb.mapviewer.common; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.HashMap; +import java.util.Map; + +/** + * Class with util function to operate on text files. + * + * @author Piotr Gawron + * + */ +public final class TextFileUtils { + + /** + * Default constructor that prevents instatiation. + */ + private TextFileUtils() { + + } + + /** + * Parses input stream to get parameters from header. {@link InputStream} + * should be a text file. Header parameters are lines at the beginning of the + * file starting with '#' character. + * + * @param is + * input stream for a file to process + * @return map with paramteres parsed from input stream + * @throws IOException + * thrown when there is a problem with accessing input stream + */ + public static Map<String, String> getHeaderParametersFromFile(InputStream is) throws IOException { + Map<String, String> result = new HashMap<String, String>(); + BufferedReader in = new BufferedReader(new InputStreamReader(is)); + String line = null; + while ((line = in.readLine()) != null) { + if (line.startsWith("#")) { + String tmp = line.substring(1); + if (tmp.indexOf("=") > 0) { + String key = tmp.substring(0, tmp.indexOf("=")).trim(); + String value = tmp.substring(tmp.indexOf("=") + 1).trim(); + result.put(key, value); + } + } else { + break; + } + } + is.close(); + return result; + } + +} diff --git a/commons/src/main/java/lcsb/mapviewer/common/XmlParser.java b/commons/src/main/java/lcsb/mapviewer/common/XmlParser.java index 8279792711..0f0530880c 100644 --- a/commons/src/main/java/lcsb/mapviewer/common/XmlParser.java +++ b/commons/src/main/java/lcsb/mapviewer/common/XmlParser.java @@ -1,357 +1,357 @@ -package lcsb.mapviewer.common; - -import java.awt.Color; -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStream; -import java.io.StringReader; -import java.io.StringWriter; -import java.util.ArrayList; -import java.util.List; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.transform.OutputKeys; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerException; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.dom.DOMSource; -import javax.xml.transform.stream.StreamResult; - -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringEscapeUtils; -import org.apache.log4j.Logger; -import org.w3c.dom.Document; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; - -import lcsb.mapviewer.common.exception.InvalidArgumentException; -import lcsb.mapviewer.common.exception.InvalidStateException; -import lcsb.mapviewer.common.exception.InvalidXmlSchemaException; - -/** - * Abstract class with methods which help in parsing xml using DOM. - * - * @author Piotr Gawron - * - */ -public class XmlParser { - /** - * Base of the hex representation. - */ - private static final int HEX_BASE = 16; - - /** - * {@link DocumentBuilderFactory} used to create {@link DocumentBuilder} - * objects that will manipulate xml nodes. - */ - private static DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); - - /** - * Default class logger. - */ - private Logger logger = Logger.getLogger(XmlParser.class.getName()); - - /** - * DOM document builder used for xml transformations. - */ - private DocumentBuilder db; - - /** - * Default constructor that prevents from instatiation of the class and - * initializes fields. - */ - protected XmlParser() { - try { - db = documentBuilderFactory.newDocumentBuilder(); - } catch (ParserConfigurationException e) { - throw new InvalidStateException("Problem with xml parser"); - } - - } - - /** - * Method returns the node of xml nodelist 'nodes' with 'tagName' name. If - * node could not be found then null is returned. - * - * @param tagName - * name of node to look for - * @param nodes - * list of nodes - * @return node from nodes list with the tagName name, <b>null</b> if such - * node doesn't exist - */ - protected Node getNode(final String tagName, final NodeList nodes) { - for (int x = 0; x < nodes.getLength(); x++) { - Node node = nodes.item(x); - if (node.getNodeType() == Node.ELEMENT_NODE) { - if (node.getNodeName().equalsIgnoreCase(tagName)) { - return node; - } - } - } - return null; - } - - /** - * Method returns the child node of xml 'parentNode' with 'tagName' name. If - * node could not be found then null is returned. - * - * @param tagName - * name of node to look for - * @param parentNode - * parent node - * @return node from nodes list with the tagName name, <b>null</b> if such - * node doesn't exist - */ - protected Node getNode(final String tagName, final Node parentNode) { - return getNode(tagName, parentNode.getChildNodes()); - } - - /** - * Method returns list of nodes with 'tagName' name. If node could not be - * found then empty list is returned. - * - * @param tagName - * name of node to look for - * @param nodes - * list of input nodes - * @return list of nodes with 'tagName' name - */ - protected List<Node> getNodes(final String tagName, final NodeList nodes) { - List<Node> result = new ArrayList<Node>(); - for (int x = 0; x < nodes.getLength(); x++) { - Node node = nodes.item(x); - if (node.getNodeName().equalsIgnoreCase(tagName)) { - result.add(node); - } - } - return result; - } - - /** - * Method returns the value of node attribute. If attribute could not be found - * then "" is returned. - * - * @param attrName - * name of the attribute to look for - * @param node - * a node - * @return the value of node attribute, empty string("") if attribute doesn't - * exist - */ - protected String getNodeAttr(final String attrName, final Node node) { - NamedNodeMap attrs = node.getAttributes(); - for (int y = 0; y < attrs.getLength(); y++) { - Node attr = attrs.item(y); - if (attr.getNodeName().equalsIgnoreCase(attrName)) { - return attr.getNodeValue(); - } - } - return ""; - } - - /** - * Method returns the text value of node. If text could not be found then "" - * is returned. - * - * @param node - * a node - * @return the text value of node or empty string ("") if the text could be - * found. - */ - protected String getNodeValue(final Node node) { - if (node == null) { - return ""; - } - NodeList childNodes = node.getChildNodes(); - for (int x = 0; x < childNodes.getLength(); x++) { - Node data = childNodes.item(x); - if (data.getNodeType() == Node.TEXT_NODE) { - return data.getNodeValue(); - } - } - return ""; - } - - /** - * Method returns the xml Document from input source given as a parameter. - * - * @param stream - * input stream with xml document - * @return Document node for the input stream - * @throws InvalidXmlSchemaException - * thrown when there is a problem with xml - */ - protected Document getXmlDocumentFromInputSource(final InputSource stream) throws InvalidXmlSchemaException { - try { - return db.parse(stream); - } catch (SAXException e) { - throw new InvalidXmlSchemaException("Problem with xml parser", e); - } catch (IOException e) { - throw new InvalidXmlSchemaException("Problem with xml parser", e); - } - } - - /** - * Method returns the xml Document from text given as a source. - * - * @param text - * string representing xml document - * @return Document for the xml document given in the input - * @throws InvalidXmlSchemaException - * thrown when there is a problem with xml - */ - protected Document getXmlDocumentFromString(final String text) throws InvalidXmlSchemaException { - InputSource is = new InputSource(); - is.setCharacterStream(new StringReader(text)); - return getXmlDocumentFromInputSource(is); - } - - /** - * Transforms node into string xml format. - * - * @param node - * node that should be transformed into xml string - * @return string representation of the xml node - */ - protected String nodeToString(final Node node) { - return nodeToString(node, false); - } - - /** - * Transforms node into string xml format. - * - * @param node - * node that should be transformed into xml string - * @param includeHeadNode - * should the top level node exist in the output - * @return string representation of the xml node - */ - protected String nodeToString(final Node node, final boolean includeHeadNode) { - if (node == null) { - return null; - } - StringWriter sw = new StringWriter(); - try { - Transformer t = TransformerFactory.newInstance().newTransformer(); - t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); - t.setOutputProperty(OutputKeys.INDENT, "yes"); - t.setOutputProperty(OutputKeys.METHOD, "xml"); - - NodeList list = node.getChildNodes(); - for (int i = 0; i < list.getLength(); i++) { - Node element = list.item(i); - t.transform(new DOMSource(element), new StreamResult(sw)); - } - } catch (TransformerException te) { - logger.debug("nodeToString Transformer Exception"); - } - if (includeHeadNode) { - return "<" + node.getNodeName() + ">" + sw.toString() + "</" + node.getNodeName() + ">"; - } - return sw.toString(); - } - - /** - * This method transform color encoded in string (CellDesigner format) into - * Color. - * - * @param color - * string representing color - * @return Color object for the fiven string - */ - protected Color stringToColor(final String color) { - try { - String alpha = color.substring(0, 2); - Color tmp = new Color(hexToInteger(color.substring(2))); - return new Color(tmp.getRed(), tmp.getGreen(), tmp.getBlue(), hexToInteger(alpha)); - } catch (Exception e) { - throw new InvalidArgumentException("Invalid color string: " + color); - } - } - - /** - * Transforms hex string into Integer. - * - * @param hexString - * string representation in hex base - * @return Integer value of the hex string - */ - private Integer hexToInteger(String hexString) { - return Integer.valueOf(hexString, HEX_BASE); - } - - /** - * Transforms Color object into string representing this color in RGB. - * - * @param color - * color that should be converted into string - * @return hex string representation of the color - */ - protected String colorToString(final Color color) { - return String.format("%08X", color.getRGB()); - } - - /** - * Method that reads file and transforms it into a string. - * - * @param fileName - * path to a file - * @return string containing data from the file (default coding is used) - * @throws IOException - * thrown when there are some problems with a file - */ - protected String fileToString(final String fileName) throws IOException { - BufferedReader reader = new BufferedReader(new FileReader(fileName)); - String line = null; - StringBuilder stringBuilder = new StringBuilder(); - String ls = System.getProperty("line.separator"); - - while ((line = reader.readLine()) != null) { - stringBuilder.append(line); - stringBuilder.append(ls); - } - reader.close(); - - return stringBuilder.toString(); - } - - /** - * Method that reads all data from inputstream and transform it into a string. - * UTF-8 coding is used. - * - * @param inputStream - * stream from which we read data - * @return string representing all data from input stream - * @throws IOException - * thrown if there are some problems with input stream - */ - protected String inputStreamToString(final InputStream inputStream) throws IOException { - StringWriter writer = new StringWriter(); - IOUtils.copy(inputStream, writer, "UTF-8"); - String result = writer.toString(); - return result; - } - - /** - * Method that encode string into a string that can be used in xml file. - * - * @param string - * string to be escaped - * @return escaped string, ready to be used in xml - */ - protected String escapeXml(final String string) { - if (string == null) { - return null; - } - // quite expensive - return StringEscapeUtils.escapeXml(string).replaceAll("\n", " ").replace("\r", " "); - } - -} +package lcsb.mapviewer.common; + +import java.awt.Color; +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.StringReader; +import java.io.StringWriter; +import java.util.ArrayList; +import java.util.List; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang3.StringEscapeUtils; +import org.apache.log4j.Logger; +import org.w3c.dom.Document; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.InputSource; +import org.xml.sax.SAXException; + +import lcsb.mapviewer.common.exception.InvalidArgumentException; +import lcsb.mapviewer.common.exception.InvalidStateException; +import lcsb.mapviewer.common.exception.InvalidXmlSchemaException; + +/** + * Abstract class with methods which help in parsing xml using DOM. + * + * @author Piotr Gawron + * + */ +public class XmlParser { + /** + * Base of the hex representation. + */ + private static final int HEX_BASE = 16; + + /** + * {@link DocumentBuilderFactory} used to create {@link DocumentBuilder} + * objects that will manipulate xml nodes. + */ + private static DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + + /** + * Default class logger. + */ + private Logger logger = Logger.getLogger(XmlParser.class.getName()); + + /** + * DOM document builder used for xml transformations. + */ + private DocumentBuilder db; + + /** + * Default constructor that prevents from instatiation of the class and + * initializes fields. + */ + protected XmlParser() { + try { + db = documentBuilderFactory.newDocumentBuilder(); + } catch (ParserConfigurationException e) { + throw new InvalidStateException("Problem with xml parser"); + } + + } + + /** + * Method returns the node of xml nodelist 'nodes' with 'tagName' name. If + * node could not be found then null is returned. + * + * @param tagName + * name of node to look for + * @param nodes + * list of nodes + * @return node from nodes list with the tagName name, <b>null</b> if such + * node doesn't exist + */ + protected Node getNode(final String tagName, final NodeList nodes) { + for (int x = 0; x < nodes.getLength(); x++) { + Node node = nodes.item(x); + if (node.getNodeType() == Node.ELEMENT_NODE) { + if (node.getNodeName().equalsIgnoreCase(tagName)) { + return node; + } + } + } + return null; + } + + /** + * Method returns the child node of xml 'parentNode' with 'tagName' name. If + * node could not be found then null is returned. + * + * @param tagName + * name of node to look for + * @param parentNode + * parent node + * @return node from nodes list with the tagName name, <b>null</b> if such + * node doesn't exist + */ + protected Node getNode(final String tagName, final Node parentNode) { + return getNode(tagName, parentNode.getChildNodes()); + } + + /** + * Method returns list of nodes with 'tagName' name. If node could not be + * found then empty list is returned. + * + * @param tagName + * name of node to look for + * @param nodes + * list of input nodes + * @return list of nodes with 'tagName' name + */ + protected List<Node> getNodes(final String tagName, final NodeList nodes) { + List<Node> result = new ArrayList<Node>(); + for (int x = 0; x < nodes.getLength(); x++) { + Node node = nodes.item(x); + if (node.getNodeName().equalsIgnoreCase(tagName)) { + result.add(node); + } + } + return result; + } + + /** + * Method returns the value of node attribute. If attribute could not be found + * then "" is returned. + * + * @param attrName + * name of the attribute to look for + * @param node + * a node + * @return the value of node attribute, empty string("") if attribute doesn't + * exist + */ + protected String getNodeAttr(final String attrName, final Node node) { + NamedNodeMap attrs = node.getAttributes(); + for (int y = 0; y < attrs.getLength(); y++) { + Node attr = attrs.item(y); + if (attr.getNodeName().equalsIgnoreCase(attrName)) { + return attr.getNodeValue(); + } + } + return ""; + } + + /** + * Method returns the text value of node. If text could not be found then "" + * is returned. + * + * @param node + * a node + * @return the text value of node or empty string ("") if the text could be + * found. + */ + protected String getNodeValue(final Node node) { + if (node == null) { + return ""; + } + NodeList childNodes = node.getChildNodes(); + for (int x = 0; x < childNodes.getLength(); x++) { + Node data = childNodes.item(x); + if (data.getNodeType() == Node.TEXT_NODE) { + return data.getNodeValue(); + } + } + return ""; + } + + /** + * Method returns the xml Document from input source given as a parameter. + * + * @param stream + * input stream with xml document + * @return Document node for the input stream + * @throws InvalidXmlSchemaException + * thrown when there is a problem with xml + */ + protected Document getXmlDocumentFromInputSource(final InputSource stream) throws InvalidXmlSchemaException { + try { + return db.parse(stream); + } catch (SAXException e) { + throw new InvalidXmlSchemaException("Problem with xml parser", e); + } catch (IOException e) { + throw new InvalidXmlSchemaException("Problem with xml parser", e); + } + } + + /** + * Method returns the xml Document from text given as a source. + * + * @param text + * string representing xml document + * @return Document for the xml document given in the input + * @throws InvalidXmlSchemaException + * thrown when there is a problem with xml + */ + protected Document getXmlDocumentFromString(final String text) throws InvalidXmlSchemaException { + InputSource is = new InputSource(); + is.setCharacterStream(new StringReader(text)); + return getXmlDocumentFromInputSource(is); + } + + /** + * Transforms node into string xml format. + * + * @param node + * node that should be transformed into xml string + * @return string representation of the xml node + */ + protected String nodeToString(final Node node) { + return nodeToString(node, false); + } + + /** + * Transforms node into string xml format. + * + * @param node + * node that should be transformed into xml string + * @param includeHeadNode + * should the top level node exist in the output + * @return string representation of the xml node + */ + protected String nodeToString(final Node node, final boolean includeHeadNode) { + if (node == null) { + return null; + } + StringWriter sw = new StringWriter(); + try { + Transformer t = TransformerFactory.newInstance().newTransformer(); + t.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); + t.setOutputProperty(OutputKeys.INDENT, "yes"); + t.setOutputProperty(OutputKeys.METHOD, "xml"); + + NodeList list = node.getChildNodes(); + for (int i = 0; i < list.getLength(); i++) { + Node element = list.item(i); + t.transform(new DOMSource(element), new StreamResult(sw)); + } + } catch (TransformerException te) { + logger.debug("nodeToString Transformer Exception"); + } + if (includeHeadNode) { + return "<" + node.getNodeName() + ">" + sw.toString() + "</" + node.getNodeName() + ">"; + } + return sw.toString(); + } + + /** + * This method transform color encoded in string (CellDesigner format) into + * Color. + * + * @param color + * string representing color + * @return Color object for the fiven string + */ + protected Color stringToColor(final String color) { + try { + String alpha = color.substring(0, 2); + Color tmp = new Color(hexToInteger(color.substring(2))); + return new Color(tmp.getRed(), tmp.getGreen(), tmp.getBlue(), hexToInteger(alpha)); + } catch (Exception e) { + throw new InvalidArgumentException("Invalid color string: " + color); + } + } + + /** + * Transforms hex string into Integer. + * + * @param hexString + * string representation in hex base + * @return Integer value of the hex string + */ + private Integer hexToInteger(String hexString) { + return Integer.valueOf(hexString, HEX_BASE); + } + + /** + * Transforms Color object into string representing this color in RGB. + * + * @param color + * color that should be converted into string + * @return hex string representation of the color + */ + protected String colorToString(final Color color) { + return String.format("%08X", color.getRGB()); + } + + /** + * Method that reads file and transforms it into a string. + * + * @param fileName + * path to a file + * @return string containing data from the file (default coding is used) + * @throws IOException + * thrown when there are some problems with a file + */ + protected String fileToString(final String fileName) throws IOException { + BufferedReader reader = new BufferedReader(new FileReader(fileName)); + String line = null; + StringBuilder stringBuilder = new StringBuilder(); + String ls = System.getProperty("line.separator"); + + while ((line = reader.readLine()) != null) { + stringBuilder.append(line); + stringBuilder.append(ls); + } + reader.close(); + + return stringBuilder.toString(); + } + + /** + * Method that reads all data from inputstream and transform it into a string. + * UTF-8 coding is used. + * + * @param inputStream + * stream from which we read data + * @return string representing all data from input stream + * @throws IOException + * thrown if there are some problems with input stream + */ + protected String inputStreamToString(final InputStream inputStream) throws IOException { + StringWriter writer = new StringWriter(); + IOUtils.copy(inputStream, writer, "UTF-8"); + String result = writer.toString(); + return result; + } + + /** + * Method that encode string into a string that can be used in xml file. + * + * @param string + * string to be escaped + * @return escaped string, ready to be used in xml + */ + protected String escapeXml(final String string) { + if (string == null) { + return null; + } + // quite expensive + return StringEscapeUtils.escapeXml(string).replaceAll("\n", " ").replace("\r", " "); + } + +} diff --git a/commons/src/test/java/lcsb/mapviewer/common/AllCommonTests.java b/commons/src/test/java/lcsb/mapviewer/common/AllCommonTests.java index 8c28d00230..561bc13f4a 100644 --- a/commons/src/test/java/lcsb/mapviewer/common/AllCommonTests.java +++ b/commons/src/test/java/lcsb/mapviewer/common/AllCommonTests.java @@ -1,27 +1,27 @@ -package lcsb.mapviewer.common; - -import org.junit.runner.RunWith; -import org.junit.runners.Suite; -import org.junit.runners.Suite.SuiteClasses; - -import lcsb.mapviewer.common.comparator.AllComparatorTests; -import lcsb.mapviewer.common.exception.AllExceptionTests; -import lcsb.mapviewer.common.geometry.AllGeometryTests; - -@RunWith(Suite.class) -@SuiteClasses({ AllComparatorTests.class, // - AllExceptionTests.class, // - AllGeometryTests.class, // - ConfigurationTest.class, // - EventStorageLoggerAppenderTest.class, // - HttpConnectionMethodTypeTest.class, // - MimeTypeTest.class, // - ObjectUtilsTest.class, // - PairTest.class, // - SystemClipboardTest.class, // - TextFileUtilsTest.class, // - XmlParserTest.class, // -}) -public class AllCommonTests { - -} +package lcsb.mapviewer.common; + +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; + +import lcsb.mapviewer.common.comparator.AllComparatorTests; +import lcsb.mapviewer.common.exception.AllExceptionTests; +import lcsb.mapviewer.common.geometry.AllGeometryTests; + +@RunWith(Suite.class) +@SuiteClasses({ AllComparatorTests.class, // + AllExceptionTests.class, // + AllGeometryTests.class, // + ConfigurationTest.class, // + EventStorageLoggerAppenderTest.class, // + HttpConnectionMethodTypeTest.class, // + MimeTypeTest.class, // + ObjectUtilsTest.class, // + PairTest.class, // + SystemClipboardTest.class, // + TextFileUtilsTest.class, // + XmlParserTest.class, // +}) +public class AllCommonTests { + +} diff --git a/commons/src/test/java/lcsb/mapviewer/common/EventStorageLoggerAppenderTest.java b/commons/src/test/java/lcsb/mapviewer/common/EventStorageLoggerAppenderTest.java index 94a339ade8..9816f4b8aa 100644 --- a/commons/src/test/java/lcsb/mapviewer/common/EventStorageLoggerAppenderTest.java +++ b/commons/src/test/java/lcsb/mapviewer/common/EventStorageLoggerAppenderTest.java @@ -1,58 +1,58 @@ -package lcsb.mapviewer.common; - -import static org.junit.Assert.assertEquals; - -import org.apache.log4j.Logger; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.Test; - -public class EventStorageLoggerAppenderTest { - Logger logger = Logger.getLogger(EventStorageLoggerAppenderTest.class); - - @AfterClass - public static void tearDownAfterClass() throws Exception { - } - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testLogCatching() { - try { - EventStorageLoggerAppender appender = new EventStorageLoggerAppender(); - logger.addAppender(appender); - logger.warn("test"); - logger.debug("1"); - logger.error("2"); - logger.info("3"); - logger.fatal("4"); - assertEquals(1, appender.getWarnings().size()); - logger.removeAppender(appender); - logger.warn("test"); - assertEquals(1, appender.getWarnings().size()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetters() { - try { - EventStorageLoggerAppender appender = new EventStorageLoggerAppender(); - appender.requiresLayout(); - appender.close(); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - -} +package lcsb.mapviewer.common; + +import static org.junit.Assert.assertEquals; + +import org.apache.log4j.Logger; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.Test; + +public class EventStorageLoggerAppenderTest { + Logger logger = Logger.getLogger(EventStorageLoggerAppenderTest.class); + + @AfterClass + public static void tearDownAfterClass() throws Exception { + } + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testLogCatching() { + try { + EventStorageLoggerAppender appender = new EventStorageLoggerAppender(); + logger.addAppender(appender); + logger.warn("test"); + logger.debug("1"); + logger.error("2"); + logger.info("3"); + logger.fatal("4"); + assertEquals(1, appender.getWarnings().size()); + logger.removeAppender(appender); + logger.warn("test"); + assertEquals(1, appender.getWarnings().size()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetters() { + try { + EventStorageLoggerAppender appender = new EventStorageLoggerAppender(); + appender.requiresLayout(); + appender.close(); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + +} diff --git a/commons/src/test/java/lcsb/mapviewer/common/HttpConnectionMethodTypeTest.java b/commons/src/test/java/lcsb/mapviewer/common/HttpConnectionMethodTypeTest.java index 2723073007..9789b766e9 100644 --- a/commons/src/test/java/lcsb/mapviewer/common/HttpConnectionMethodTypeTest.java +++ b/commons/src/test/java/lcsb/mapviewer/common/HttpConnectionMethodTypeTest.java @@ -1,29 +1,29 @@ -package lcsb.mapviewer.common; - -import static org.junit.Assert.*; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -public class HttpConnectionMethodTypeTest { - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testValidValues() { - for (HttpConnectionMethodType type : HttpConnectionMethodType.values()) { - assertNotNull(type); - - // for coverage tests - HttpConnectionMethodType.valueOf(type.toString()); - } - } - -} +package lcsb.mapviewer.common; + +import static org.junit.Assert.*; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class HttpConnectionMethodTypeTest { + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testValidValues() { + for (HttpConnectionMethodType type : HttpConnectionMethodType.values()) { + assertNotNull(type); + + // for coverage tests + HttpConnectionMethodType.valueOf(type.toString()); + } + } + +} diff --git a/commons/src/test/java/lcsb/mapviewer/common/MimeTypeTest.java b/commons/src/test/java/lcsb/mapviewer/common/MimeTypeTest.java index 50189c2ae3..9087471b07 100644 --- a/commons/src/test/java/lcsb/mapviewer/common/MimeTypeTest.java +++ b/commons/src/test/java/lcsb/mapviewer/common/MimeTypeTest.java @@ -1,32 +1,32 @@ -package lcsb.mapviewer.common; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -public class MimeTypeTest { - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testValidValues() { - for (MimeType type : MimeType.values()) { - assertNotNull(type); - assertNotNull(type.getTextRepresentation()); - assertFalse(type.getTextRepresentation().isEmpty()); - - //for coverage tests - MimeType.valueOf(type.toString()); - } - } - -} +package lcsb.mapviewer.common; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class MimeTypeTest { + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testValidValues() { + for (MimeType type : MimeType.values()) { + assertNotNull(type); + assertNotNull(type.getTextRepresentation()); + assertFalse(type.getTextRepresentation().isEmpty()); + + //for coverage tests + MimeType.valueOf(type.toString()); + } + } + +} diff --git a/commons/src/test/java/lcsb/mapviewer/common/ObjectUtilsTest.java b/commons/src/test/java/lcsb/mapviewer/common/ObjectUtilsTest.java index ff8b79effc..71ee157432 100644 --- a/commons/src/test/java/lcsb/mapviewer/common/ObjectUtilsTest.java +++ b/commons/src/test/java/lcsb/mapviewer/common/ObjectUtilsTest.java @@ -1,58 +1,58 @@ -package lcsb.mapviewer.common; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.fail; - -import java.lang.reflect.Constructor; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -import lcsb.mapviewer.common.exception.InvalidArgumentException; - -public class ObjectUtilsTest { - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testGetIdOfObject() { - Object obj = new Object() { - @SuppressWarnings("unused") - public int getId() { - return 107; - } - }; - assertEquals((Integer) 107, ObjectUtils.getIdOfObject(obj)); - } - - @Test - public void testGetIdOfObjectWithoutId() { - Object obj = new Object(); - try { - ObjectUtils.getIdOfObject(obj); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - - } - } - - @Test - public void testPrivateConstructor() throws Exception { - try { - Constructor<?> constr = ObjectUtils.class.getDeclaredConstructor(new Class<?>[] {}); - constr.setAccessible(true); - assertNotNull(constr.newInstance(new Object[] {})); - } catch (Exception e) { - throw e; - } - } - -} +package lcsb.mapviewer.common; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; + +import java.lang.reflect.Constructor; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import lcsb.mapviewer.common.exception.InvalidArgumentException; + +public class ObjectUtilsTest { + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testGetIdOfObject() { + Object obj = new Object() { + @SuppressWarnings("unused") + public int getId() { + return 107; + } + }; + assertEquals((Integer) 107, ObjectUtils.getIdOfObject(obj)); + } + + @Test + public void testGetIdOfObjectWithoutId() { + Object obj = new Object(); + try { + ObjectUtils.getIdOfObject(obj); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + + } + } + + @Test + public void testPrivateConstructor() throws Exception { + try { + Constructor<?> constr = ObjectUtils.class.getDeclaredConstructor(new Class<?>[] {}); + constr.setAccessible(true); + assertNotNull(constr.newInstance(new Object[] {})); + } catch (Exception e) { + throw e; + } + } + +} diff --git a/commons/src/test/java/lcsb/mapviewer/common/PairTest.java b/commons/src/test/java/lcsb/mapviewer/common/PairTest.java index 33178d5e6a..286787b3f2 100644 --- a/commons/src/test/java/lcsb/mapviewer/common/PairTest.java +++ b/commons/src/test/java/lcsb/mapviewer/common/PairTest.java @@ -1,70 +1,70 @@ -package lcsb.mapviewer.common; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -public class PairTest { - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testConstructor() { - Pair<String, Integer> pair = new Pair<String, Integer>("test str", 12); - assertEquals("test str", pair.getLeft()); - assertEquals((Integer) 12, pair.getRight()); - } - - @Test - public void testEquals() { - Pair<String, Integer> pair = new Pair<String, Integer>("test str", 12); - Pair<String, Integer> pair2 = new Pair<String, Integer>("test str", 12); - Pair<String, String> pair3 = new Pair<String, String>("test str", "str"); - Pair<String, Integer> pair4 = new Pair<String, Integer>("test str", 124); - Pair<String, Integer> pair5 = new Pair<String, Integer>("test str1", 12); - assertTrue(pair.equals(pair2)); - assertFalse(pair.equals(pair3)); - assertFalse(pair.equals(pair4)); - assertFalse(pair.equals(pair5)); - - assertTrue(pair2.equals(pair)); - assertFalse(pair3.equals(pair)); - assertFalse(pair4.equals(pair)); - assertFalse(pair5.equals(pair)); - assertFalse(pair4.equals(new Object())); - } - - @Test - public void testHashCode() { - Pair<String, Integer> pair = new Pair<String, Integer>("test str", 12); - Pair<String, Integer> pair2 = new Pair<String, Integer>("test str", 12); - Pair<String, Integer> pair3 = new Pair<String, Integer>("test str", 124); - assertEquals(pair.hashCode(), pair2.hashCode()); - assertTrue(pair.hashCode() != pair3.hashCode()); - } - - @Test - public void testNullEquals() { - Pair<String, Integer> pair = new Pair<String, Integer>("test str", 12); - Pair<String, Integer> pair2 = null; - assertFalse(pair.equals(pair2)); - } - - @Test - public void testToString() { - Pair<String, Integer> pair = new Pair<String, Integer>("test str", 12); - assertTrue(pair.toString().contains(pair.getLeft().toString())); - assertTrue(pair.toString().contains(pair.getRight().toString())); - } - -} +package lcsb.mapviewer.common; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class PairTest { + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testConstructor() { + Pair<String, Integer> pair = new Pair<String, Integer>("test str", 12); + assertEquals("test str", pair.getLeft()); + assertEquals((Integer) 12, pair.getRight()); + } + + @Test + public void testEquals() { + Pair<String, Integer> pair = new Pair<String, Integer>("test str", 12); + Pair<String, Integer> pair2 = new Pair<String, Integer>("test str", 12); + Pair<String, String> pair3 = new Pair<String, String>("test str", "str"); + Pair<String, Integer> pair4 = new Pair<String, Integer>("test str", 124); + Pair<String, Integer> pair5 = new Pair<String, Integer>("test str1", 12); + assertTrue(pair.equals(pair2)); + assertFalse(pair.equals(pair3)); + assertFalse(pair.equals(pair4)); + assertFalse(pair.equals(pair5)); + + assertTrue(pair2.equals(pair)); + assertFalse(pair3.equals(pair)); + assertFalse(pair4.equals(pair)); + assertFalse(pair5.equals(pair)); + assertFalse(pair4.equals(new Object())); + } + + @Test + public void testHashCode() { + Pair<String, Integer> pair = new Pair<String, Integer>("test str", 12); + Pair<String, Integer> pair2 = new Pair<String, Integer>("test str", 12); + Pair<String, Integer> pair3 = new Pair<String, Integer>("test str", 124); + assertEquals(pair.hashCode(), pair2.hashCode()); + assertTrue(pair.hashCode() != pair3.hashCode()); + } + + @Test + public void testNullEquals() { + Pair<String, Integer> pair = new Pair<String, Integer>("test str", 12); + Pair<String, Integer> pair2 = null; + assertFalse(pair.equals(pair2)); + } + + @Test + public void testToString() { + Pair<String, Integer> pair = new Pair<String, Integer>("test str", 12); + assertTrue(pair.toString().contains(pair.getLeft().toString())); + assertTrue(pair.toString().contains(pair.getRight().toString())); + } + +} diff --git a/commons/src/test/java/lcsb/mapviewer/common/SystemClipboardTest.java b/commons/src/test/java/lcsb/mapviewer/common/SystemClipboardTest.java index 88ba17059b..604262c4cf 100644 --- a/commons/src/test/java/lcsb/mapviewer/common/SystemClipboardTest.java +++ b/commons/src/test/java/lcsb/mapviewer/common/SystemClipboardTest.java @@ -1,98 +1,98 @@ -package lcsb.mapviewer.common; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; - -import java.awt.Toolkit; -import java.awt.datatransfer.Clipboard; -import java.awt.datatransfer.DataFlavor; -import java.awt.datatransfer.Transferable; -import java.awt.datatransfer.UnsupportedFlavorException; -import java.io.IOException; - -import org.apache.log4j.Logger; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -public class SystemClipboardTest { - Logger logger = Logger.getLogger(SystemClipboardTest.class); - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testClipboard() throws Exception { - try { - SystemClipboard sc = new SystemClipboard(); - sc.setClipboardContents("TEST"); - - SystemClipboard sc2 = new SystemClipboard(); - assertEquals("TEST",sc2.getClipboardContents()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testInvalidClipboard() throws Exception { - try { - SystemClipboard sc2 = new SystemClipboard(); - - Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); - clipboard.setContents(new Transferable() { - - @Override - public boolean isDataFlavorSupported(DataFlavor flavor) { - return true; - } - - @Override - public DataFlavor[] getTransferDataFlavors() { - return null; - } - - @Override - public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { - throw new UnsupportedFlavorException(flavor); - } - }, sc2); - - assertEquals(null,sc2.getClipboardContents()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testLostOwnership() throws Exception { - try { - SystemClipboard sc = new SystemClipboard(); - sc.lostOwnership(null, null); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testEmpty() throws Exception { - try { - SystemClipboard sc2 = new SystemClipboard(); - sc2.setClipboardContents(null); - assertNull(sc2.getClipboardContents()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - -} +package lcsb.mapviewer.common; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +import java.awt.Toolkit; +import java.awt.datatransfer.Clipboard; +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.Transferable; +import java.awt.datatransfer.UnsupportedFlavorException; +import java.io.IOException; + +import org.apache.log4j.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class SystemClipboardTest { + Logger logger = Logger.getLogger(SystemClipboardTest.class); + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testClipboard() throws Exception { + try { + SystemClipboard sc = new SystemClipboard(); + sc.setClipboardContents("TEST"); + + SystemClipboard sc2 = new SystemClipboard(); + assertEquals("TEST",sc2.getClipboardContents()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testInvalidClipboard() throws Exception { + try { + SystemClipboard sc2 = new SystemClipboard(); + + Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard(); + clipboard.setContents(new Transferable() { + + @Override + public boolean isDataFlavorSupported(DataFlavor flavor) { + return true; + } + + @Override + public DataFlavor[] getTransferDataFlavors() { + return null; + } + + @Override + public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { + throw new UnsupportedFlavorException(flavor); + } + }, sc2); + + assertEquals(null,sc2.getClipboardContents()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testLostOwnership() throws Exception { + try { + SystemClipboard sc = new SystemClipboard(); + sc.lostOwnership(null, null); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testEmpty() throws Exception { + try { + SystemClipboard sc2 = new SystemClipboard(); + sc2.setClipboardContents(null); + assertNull(sc2.getClipboardContents()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + +} diff --git a/commons/src/test/java/lcsb/mapviewer/common/TextFileUtilsTest.java b/commons/src/test/java/lcsb/mapviewer/common/TextFileUtilsTest.java index 6bc27c3ee4..a0136bd8eb 100644 --- a/commons/src/test/java/lcsb/mapviewer/common/TextFileUtilsTest.java +++ b/commons/src/test/java/lcsb/mapviewer/common/TextFileUtilsTest.java @@ -1,76 +1,76 @@ -package lcsb.mapviewer.common; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; - -import java.io.ByteArrayInputStream; -import java.io.FileInputStream; -import java.io.InputStream; -import java.lang.reflect.Constructor; -import java.nio.charset.StandardCharsets; -import java.util.Map; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -public class TextFileUtilsTest { - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testGetHeaderParametersFromFile() throws Exception { - try { - String fileContent = "#header\n" + // - "#param1=value1\n" + // - "#\n" + // - "no header\n" + // - "#param2=value\n"; - - Map<String, String> params = TextFileUtils.getHeaderParametersFromFile(new ByteArrayInputStream(fileContent.getBytes(StandardCharsets.UTF_8))); - assertEquals(1, params.keySet().size()); - assertNull(params.get("param2")); - assertEquals("value1", params.get("param1")); - assertNull(params.get("header")); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - @Test - public void testParseHeader() throws Exception { - try { - InputStream is = new FileInputStream("testFiles/fileHeader.txt"); - Map<String, String> map = TextFileUtils.getHeaderParametersFromFile(is); - - assertEquals("1.0", map.get("VERSION")); - assertEquals("example name", map.get("NAME")); - assertEquals("layout description", map.get("DESCRIPTION")); - assertEquals("", map.get("MISSING")); - assertEquals("A=B", map.get("TRICKY")); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testPrivateConstructor() throws Exception { - try { - Constructor<?> constr = TextFileUtils.class.getDeclaredConstructor(new Class<?>[] {}); - constr.setAccessible(true); - assertNotNull(constr.newInstance(new Object[] {})); - } catch (Exception e) { - throw e; - } - } - -} +package lcsb.mapviewer.common; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; + +import java.io.ByteArrayInputStream; +import java.io.FileInputStream; +import java.io.InputStream; +import java.lang.reflect.Constructor; +import java.nio.charset.StandardCharsets; +import java.util.Map; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class TextFileUtilsTest { + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testGetHeaderParametersFromFile() throws Exception { + try { + String fileContent = "#header\n" + // + "#param1=value1\n" + // + "#\n" + // + "no header\n" + // + "#param2=value\n"; + + Map<String, String> params = TextFileUtils.getHeaderParametersFromFile(new ByteArrayInputStream(fileContent.getBytes(StandardCharsets.UTF_8))); + assertEquals(1, params.keySet().size()); + assertNull(params.get("param2")); + assertEquals("value1", params.get("param1")); + assertNull(params.get("header")); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + @Test + public void testParseHeader() throws Exception { + try { + InputStream is = new FileInputStream("testFiles/fileHeader.txt"); + Map<String, String> map = TextFileUtils.getHeaderParametersFromFile(is); + + assertEquals("1.0", map.get("VERSION")); + assertEquals("example name", map.get("NAME")); + assertEquals("layout description", map.get("DESCRIPTION")); + assertEquals("", map.get("MISSING")); + assertEquals("A=B", map.get("TRICKY")); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testPrivateConstructor() throws Exception { + try { + Constructor<?> constr = TextFileUtils.class.getDeclaredConstructor(new Class<?>[] {}); + constr.setAccessible(true); + assertNotNull(constr.newInstance(new Object[] {})); + } catch (Exception e) { + throw e; + } + } + +} diff --git a/commons/src/test/java/lcsb/mapviewer/common/XmlParserTest.java b/commons/src/test/java/lcsb/mapviewer/common/XmlParserTest.java index a2bd25fb39..5e2188cfd4 100644 --- a/commons/src/test/java/lcsb/mapviewer/common/XmlParserTest.java +++ b/commons/src/test/java/lcsb/mapviewer/common/XmlParserTest.java @@ -1,474 +1,474 @@ -package lcsb.mapviewer.common; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import java.awt.Color; -import java.io.ByteArrayInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.lang.reflect.Field; -import java.nio.charset.StandardCharsets; -import java.util.List; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; - -import org.apache.log4j.Logger; -import org.apache.xerces.dom.DocumentImpl; -import org.apache.xerces.dom.ElementImpl; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.xml.sax.InputSource; - -import lcsb.mapviewer.common.exception.InvalidArgumentException; -import lcsb.mapviewer.common.exception.InvalidStateException; -import lcsb.mapviewer.common.exception.InvalidXmlSchemaException; - -public class XmlParserTest { - Logger logger = Logger.getLogger(XmlParserTest.class); - - XmlParser parser = new XmlParser(); - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testColorParsing() { - try { - String strColor = "ffcbcd09"; - - Color c = parser.stringToColor(strColor); - String resultString = parser.colorToString(c); - assertTrue("Different string representation: " + strColor + " - " + resultString, strColor.equalsIgnoreCase(resultString)); - - Color c2 = parser.stringToColor(resultString); - - assertEquals(c.getRed(), c2.getRed()); - assertEquals(c.getGreen(), c2.getGreen()); - assertEquals(c.getBlue(), c2.getBlue()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testInvalidColorParsing() { - try { - String strColor = "hello world"; - - parser.stringToColor(strColor); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testColorParsingWithAlpha() { - try { - String strColor = "fecbcd09"; - - Color c = parser.stringToColor(strColor); - String resultString = parser.colorToString(c); - assertTrue("Different string representation: " + strColor + " - " + resultString, strColor.equalsIgnoreCase(resultString)); - - Color c2 = parser.stringToColor(resultString); - - assertEquals(c.getRed(), c2.getRed()); - assertEquals(c.getGreen(), c2.getGreen()); - assertEquals(c.getBlue(), c2.getBlue()); - assertEquals(c.getAlpha(), c2.getAlpha()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetXmlDocumentFromString() throws Exception { - try { - Document validDoc = parser.getXmlDocumentFromString("<node>test</node>"); - assertNotNull(validDoc); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testNodeToString() throws Exception { - try { - String xml = "<test_node>test_x</test_node>"; - Document validDoc = parser.getXmlDocumentFromString(xml); - String str = parser.nodeToString(validDoc); - assertEquals(xml.trim(), str.trim()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testEmptyNodeToString() throws Exception { - try { - String str = parser.nodeToString(null); - assertNull(str); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testNodeToStringWithHeader() throws Exception { - try { - String xml = "<test_node>test_x</test_node>"; - Document validDoc = parser.getXmlDocumentFromString(xml); - String str = parser.nodeToString(validDoc, true); - assertTrue(str.contains(xml)); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testInvalidNodeToString() throws Exception { - try { - final DocumentImpl xmlDoc = new DocumentImpl(); - - Element root = xmlDoc.createElement("booking"); - - class Tmp extends ElementImpl { - /** - * - */ - private static final long serialVersionUID = 1L; - - public Tmp() { - this.ownerDocument = xmlDoc; - } - - @Override - public NamedNodeMap getAttributes() { - return null; - } - - } - ; - Element el = new Tmp(); - root.appendChild(el); - assertNotNull(parser.nodeToString(root, true)); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetXmlDocumentFromInvalidString() throws Exception { - try { - parser.getXmlDocumentFromString("<node>test<node>"); - fail("Exception expected"); - } catch (InvalidXmlSchemaException e) { - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testGetXmlDocumentFromInvalidInputStream() throws Exception { - try { - parser.getXmlDocumentFromInputSource(new InputSource()); - fail("Exception expected"); - } catch (InvalidXmlSchemaException e) { - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testEscapeXml() throws Exception { - try { - String str = parser.escapeXml("<xml>node</xml>"); - assertFalse(str.contains("<")); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testEscapeNullXml() throws Exception { - try { - String str = parser.escapeXml(null); - assertNull(str); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testFileToString() throws Exception { - try { - String str = parser.fileToString("testFiles/test.txt"); - assertTrue(str.contains("test")); - assertTrue(str.contains("file")); - assertTrue(str.contains("with some content")); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testInputStreamToString() throws Exception { - try { - InputStream stream = new ByteArrayInputStream("stream string".getBytes(StandardCharsets.UTF_8)); - String str = parser.inputStreamToString(stream); - assertEquals("stream string", str); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testGetNodeValue() throws Exception { - try { - Document document = parser.getXmlDocumentFromString("<node>content</node>"); - Node node = parser.getNode("node", document); - String str = parser.getNodeValue(node); - assertEquals("content", str); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testGetNodeValue2() throws Exception { - try { - String str = parser.getNodeValue(null); - assertEquals("", str); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testGetNodeValue3() throws Exception { - try { - Document document = parser.getXmlDocumentFromString("<node></node>"); - Node node = parser.getNode("node", document); - String str = parser.getNodeValue(node); - assertEquals("", str); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testGetNodeValue4() throws Exception { - try { - Document document = parser.getXmlDocumentFromString("<node><subnode/></node>"); - Node node = parser.getNode("node", document); - String str = parser.getNodeValue(node); - assertEquals("", str); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testInputStreamToStringThrowsException() throws Exception { - try { - parser.inputStreamToString(new InputStream() { - @Override - public int read() throws IOException { - throw new IOException(); - } - }); - fail("Exception expected"); - } catch (IOException e) { - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testFileToStringThrowsException() throws Exception { - try { - parser.fileToString("testFiles/unknown file.txt"); - fail("Exception expected"); - } catch (IOException e) { - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testGetNodeAttr() throws Exception { - try { - Document document = parser.getXmlDocumentFromString("<node attr=\"val\">content</node>"); - Node node = parser.getNode("node", document); - String str = parser.getNodeAttr("attr", node); - assertEquals("val", str); - str = parser.getNodeAttr("attr2", node); - assertEquals("", str); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testGetNodes() throws Exception { - try { - Document document = parser.getXmlDocumentFromString("<node><subnode>content1</subnode><subnode>content2</subnode><other/></node>"); - Node node = parser.getNode("node", document); - List<Node> nodes = parser.getNodes("subnode", node.getChildNodes()); - assertEquals(2, nodes.size()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testGetNode() throws Exception { - try { - Document document = parser.getXmlDocumentFromString("<node><subnode>content1</subnode><subnode>content2</subnode><other/></node>"); - Node node = parser.getNode("node", document); - Node child = parser.getNode("other", node.getChildNodes()); - assertNotNull(child); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testGetNode2() throws Exception { - try { - Document document = parser.getXmlDocumentFromString("<node attr=\"x\"><subnode>content1</subnode><subnode>content2</subnode><other/></node>"); - Node node = parser.getNode("node", document); - Node child = parser.getNode("other2", node.getChildNodes()); - assertNull(child); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testGetNode3() throws Exception { - try { - Document document = parser.getXmlDocumentFromString("<node attr=\"x\">xxx</node>"); - Node node = parser.getNode("node", document); - Node child = parser.getNode("other2", node.getChildNodes()); - assertNull(child); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testExceptionInConstructor() throws Exception { - DocumentBuilderFactory factory = null; - Field privateStringField = XmlParser.class.getDeclaredField("documentBuilderFactory"); - try { - - privateStringField.setAccessible(true); - - factory = (DocumentBuilderFactory) privateStringField.get(parser); - privateStringField.set(parser, new DocumentBuilderFactory() { - - @Override - public void setFeature(String name, boolean value) throws ParserConfigurationException { - // TODO Auto-generated method stub - - } - - @Override - public void setAttribute(String name, Object value) throws IllegalArgumentException { - // TODO Auto-generated method stub - - } - - @Override - public DocumentBuilder newDocumentBuilder() throws ParserConfigurationException { - throw new ParserConfigurationException(); - } - - @Override - public boolean getFeature(String name) throws ParserConfigurationException { - // TODO Auto-generated method stub - return false; - } - - @Override - public Object getAttribute(String name) throws IllegalArgumentException { - // TODO Auto-generated method stub - return null; - } - }); - new XmlParser(); - fail("Exception expected"); - } catch (InvalidStateException e) { - } catch (Exception e) { - e.printStackTrace(); - throw e; - } finally { - privateStringField.set(parser, factory); - } - } - -} +package lcsb.mapviewer.common; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.awt.Color; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.lang.reflect.Field; +import java.nio.charset.StandardCharsets; +import java.util.List; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.log4j.Logger; +import org.apache.xerces.dom.DocumentImpl; +import org.apache.xerces.dom.ElementImpl; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.xml.sax.InputSource; + +import lcsb.mapviewer.common.exception.InvalidArgumentException; +import lcsb.mapviewer.common.exception.InvalidStateException; +import lcsb.mapviewer.common.exception.InvalidXmlSchemaException; + +public class XmlParserTest { + Logger logger = Logger.getLogger(XmlParserTest.class); + + XmlParser parser = new XmlParser(); + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testColorParsing() { + try { + String strColor = "ffcbcd09"; + + Color c = parser.stringToColor(strColor); + String resultString = parser.colorToString(c); + assertTrue("Different string representation: " + strColor + " - " + resultString, strColor.equalsIgnoreCase(resultString)); + + Color c2 = parser.stringToColor(resultString); + + assertEquals(c.getRed(), c2.getRed()); + assertEquals(c.getGreen(), c2.getGreen()); + assertEquals(c.getBlue(), c2.getBlue()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testInvalidColorParsing() { + try { + String strColor = "hello world"; + + parser.stringToColor(strColor); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testColorParsingWithAlpha() { + try { + String strColor = "fecbcd09"; + + Color c = parser.stringToColor(strColor); + String resultString = parser.colorToString(c); + assertTrue("Different string representation: " + strColor + " - " + resultString, strColor.equalsIgnoreCase(resultString)); + + Color c2 = parser.stringToColor(resultString); + + assertEquals(c.getRed(), c2.getRed()); + assertEquals(c.getGreen(), c2.getGreen()); + assertEquals(c.getBlue(), c2.getBlue()); + assertEquals(c.getAlpha(), c2.getAlpha()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetXmlDocumentFromString() throws Exception { + try { + Document validDoc = parser.getXmlDocumentFromString("<node>test</node>"); + assertNotNull(validDoc); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testNodeToString() throws Exception { + try { + String xml = "<test_node>test_x</test_node>"; + Document validDoc = parser.getXmlDocumentFromString(xml); + String str = parser.nodeToString(validDoc); + assertEquals(xml.trim(), str.trim()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testEmptyNodeToString() throws Exception { + try { + String str = parser.nodeToString(null); + assertNull(str); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testNodeToStringWithHeader() throws Exception { + try { + String xml = "<test_node>test_x</test_node>"; + Document validDoc = parser.getXmlDocumentFromString(xml); + String str = parser.nodeToString(validDoc, true); + assertTrue(str.contains(xml)); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testInvalidNodeToString() throws Exception { + try { + final DocumentImpl xmlDoc = new DocumentImpl(); + + Element root = xmlDoc.createElement("booking"); + + class Tmp extends ElementImpl { + /** + * + */ + private static final long serialVersionUID = 1L; + + public Tmp() { + this.ownerDocument = xmlDoc; + } + + @Override + public NamedNodeMap getAttributes() { + return null; + } + + } + ; + Element el = new Tmp(); + root.appendChild(el); + assertNotNull(parser.nodeToString(root, true)); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetXmlDocumentFromInvalidString() throws Exception { + try { + parser.getXmlDocumentFromString("<node>test<node>"); + fail("Exception expected"); + } catch (InvalidXmlSchemaException e) { + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testGetXmlDocumentFromInvalidInputStream() throws Exception { + try { + parser.getXmlDocumentFromInputSource(new InputSource()); + fail("Exception expected"); + } catch (InvalidXmlSchemaException e) { + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testEscapeXml() throws Exception { + try { + String str = parser.escapeXml("<xml>node</xml>"); + assertFalse(str.contains("<")); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testEscapeNullXml() throws Exception { + try { + String str = parser.escapeXml(null); + assertNull(str); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testFileToString() throws Exception { + try { + String str = parser.fileToString("testFiles/test.txt"); + assertTrue(str.contains("test")); + assertTrue(str.contains("file")); + assertTrue(str.contains("with some content")); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testInputStreamToString() throws Exception { + try { + InputStream stream = new ByteArrayInputStream("stream string".getBytes(StandardCharsets.UTF_8)); + String str = parser.inputStreamToString(stream); + assertEquals("stream string", str); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testGetNodeValue() throws Exception { + try { + Document document = parser.getXmlDocumentFromString("<node>content</node>"); + Node node = parser.getNode("node", document); + String str = parser.getNodeValue(node); + assertEquals("content", str); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testGetNodeValue2() throws Exception { + try { + String str = parser.getNodeValue(null); + assertEquals("", str); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testGetNodeValue3() throws Exception { + try { + Document document = parser.getXmlDocumentFromString("<node></node>"); + Node node = parser.getNode("node", document); + String str = parser.getNodeValue(node); + assertEquals("", str); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testGetNodeValue4() throws Exception { + try { + Document document = parser.getXmlDocumentFromString("<node><subnode/></node>"); + Node node = parser.getNode("node", document); + String str = parser.getNodeValue(node); + assertEquals("", str); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testInputStreamToStringThrowsException() throws Exception { + try { + parser.inputStreamToString(new InputStream() { + @Override + public int read() throws IOException { + throw new IOException(); + } + }); + fail("Exception expected"); + } catch (IOException e) { + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testFileToStringThrowsException() throws Exception { + try { + parser.fileToString("testFiles/unknown file.txt"); + fail("Exception expected"); + } catch (IOException e) { + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testGetNodeAttr() throws Exception { + try { + Document document = parser.getXmlDocumentFromString("<node attr=\"val\">content</node>"); + Node node = parser.getNode("node", document); + String str = parser.getNodeAttr("attr", node); + assertEquals("val", str); + str = parser.getNodeAttr("attr2", node); + assertEquals("", str); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testGetNodes() throws Exception { + try { + Document document = parser.getXmlDocumentFromString("<node><subnode>content1</subnode><subnode>content2</subnode><other/></node>"); + Node node = parser.getNode("node", document); + List<Node> nodes = parser.getNodes("subnode", node.getChildNodes()); + assertEquals(2, nodes.size()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testGetNode() throws Exception { + try { + Document document = parser.getXmlDocumentFromString("<node><subnode>content1</subnode><subnode>content2</subnode><other/></node>"); + Node node = parser.getNode("node", document); + Node child = parser.getNode("other", node.getChildNodes()); + assertNotNull(child); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testGetNode2() throws Exception { + try { + Document document = parser.getXmlDocumentFromString("<node attr=\"x\"><subnode>content1</subnode><subnode>content2</subnode><other/></node>"); + Node node = parser.getNode("node", document); + Node child = parser.getNode("other2", node.getChildNodes()); + assertNull(child); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testGetNode3() throws Exception { + try { + Document document = parser.getXmlDocumentFromString("<node attr=\"x\">xxx</node>"); + Node node = parser.getNode("node", document); + Node child = parser.getNode("other2", node.getChildNodes()); + assertNull(child); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testExceptionInConstructor() throws Exception { + DocumentBuilderFactory factory = null; + Field privateStringField = XmlParser.class.getDeclaredField("documentBuilderFactory"); + try { + + privateStringField.setAccessible(true); + + factory = (DocumentBuilderFactory) privateStringField.get(parser); + privateStringField.set(parser, new DocumentBuilderFactory() { + + @Override + public void setFeature(String name, boolean value) throws ParserConfigurationException { + // TODO Auto-generated method stub + + } + + @Override + public void setAttribute(String name, Object value) throws IllegalArgumentException { + // TODO Auto-generated method stub + + } + + @Override + public DocumentBuilder newDocumentBuilder() throws ParserConfigurationException { + throw new ParserConfigurationException(); + } + + @Override + public boolean getFeature(String name) throws ParserConfigurationException { + // TODO Auto-generated method stub + return false; + } + + @Override + public Object getAttribute(String name) throws IllegalArgumentException { + // TODO Auto-generated method stub + return null; + } + }); + new XmlParser(); + fail("Exception expected"); + } catch (InvalidStateException e) { + } catch (Exception e) { + e.printStackTrace(); + throw e; + } finally { + privateStringField.set(parser, factory); + } + } + +} diff --git a/console/src/main/java/lcsb/mapviewer/run/BellExport.java b/console/src/main/java/lcsb/mapviewer/run/BellExport.java index d22ed9fe9d..d280b38887 100644 --- a/console/src/main/java/lcsb/mapviewer/run/BellExport.java +++ b/console/src/main/java/lcsb/mapviewer/run/BellExport.java @@ -1,140 +1,140 @@ -package lcsb.mapviewer.run; - -import lcsb.mapviewer.annotation.services.ModelAnnotator; -import lcsb.mapviewer.common.IProgressUpdater; -import lcsb.mapviewer.converter.ConverterParams; -import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; -import lcsb.mapviewer.model.map.model.Model; -import lcsb.mapviewer.model.map.species.Species; -import lcsb.mapviewer.persist.ApplicationContextLoader; -import lcsb.mapviewer.persist.DbUtils; -import lcsb.mapviewer.services.interfaces.IExporterService; -import lcsb.mapviewer.services.interfaces.IExporterService.ExporterParameters; -import lcsb.mapviewer.services.utils.data.ExportFileType; - -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; - -/** - * This class prepare data for Bell format (further transformation is done by - * Marek). - * - * @author Piotr Gawron - * - */ -public class BellExport { - /** - * Default class logger. - */ - private static Logger logger = Logger.getLogger(BellExport.class.getName()); - - /** - * Object that performs different types of export transformation. - */ - @Autowired - private IExporterService exporter; - - /** - * Object used to annotate the model. - */ - @Autowired - private ModelAnnotator modelAnnotator; - - /** - * Object used to annotate the model. - */ - @Autowired - private DbUtils dbUtils; - - /** - * Static main method used to run this stand alone code. - * - * @param args - * command line arguments - */ - public static void main(String[] args) { - ApplicationContextLoader.loadApplicationContext("consoleApplicationContext.xml"); - BellExport main = new BellExport(); - ApplicationContextLoader.injectDependencies(main); - main.run(); - } - - /** - * Default constructor. - */ - public BellExport() { - - } - - /** - * Method that export pd map into file that can be exported to bell (by - * Marek). - * - */ - private void run() { - CellDesignerXmlParser p = new CellDesignerXmlParser(); - try { - String filename = PdMapAnnotations.getLastPdFilename(); - String version = PdMapAnnotations.getLastPdVersion(); - - //filename = "testFiles/other_full/ASTHMAP18000X8000V1_38.xml"; - //version = "1.1.38"; - dbUtils.createSessionForCurrentThread(); - Model model = p.createModel(new ConverterParams().filename(filename)); - - modelAnnotator.performAnnotations(model, new IProgressUpdater() { - - @Override - public void setProgress(double progress) { - // TODO Auto-generated method stub - - } - }); - - ExporterParameters params = new IExporterService.ExporterParameters().model(model).// - fileName("out/bell/" + version + "-reactions.txt").// - fileType(ExportFileType.TAB_SEPARATED).// - type(Species.class).// - moleculeEdges(false); - - exporter.exportReactions(params); - - params = new IExporterService.ExporterParameters().model(model).// - fileName("out/bell/" + version + "-species.txt").// - fileType(ExportFileType.TAB_SEPARATED).// - type(Species.class).// -// column(ExportColumn.FULL).// - moleculeEdges(false); - exporter.exportSpecies(params); - - params = new IExporterService.ExporterParameters().model(model).// - fileName("out/bell/" + version + "-compartments.txt").// - fileType(ExportFileType.TAB_SEPARATED).// - type(Object.class); // -// column(ExportColumn.FULL); - exporter.exportCompartments(params); - - } catch (Exception e) { - logger.error(e.getMessage(), e); - } finally { - dbUtils.closeSessionForCurrentThread(); - } - } - - /** - * @return the modelAnnotator - * @see #modelAnnotator - */ - public ModelAnnotator getModelAnnotator() { - return modelAnnotator; - } - - /** - * @param modelAnnotator - * the modelAnnotator to set - * @see #modelAnnotator - */ - public void setModelAnnotator(ModelAnnotator modelAnnotator) { - this.modelAnnotator = modelAnnotator; - } -} +package lcsb.mapviewer.run; + +import lcsb.mapviewer.annotation.services.ModelAnnotator; +import lcsb.mapviewer.common.IProgressUpdater; +import lcsb.mapviewer.converter.ConverterParams; +import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; +import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.model.map.species.Species; +import lcsb.mapviewer.persist.ApplicationContextLoader; +import lcsb.mapviewer.persist.DbUtils; +import lcsb.mapviewer.services.interfaces.IExporterService; +import lcsb.mapviewer.services.interfaces.IExporterService.ExporterParameters; +import lcsb.mapviewer.services.utils.data.ExportFileType; + +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * This class prepare data for Bell format (further transformation is done by + * Marek). + * + * @author Piotr Gawron + * + */ +public class BellExport { + /** + * Default class logger. + */ + private static Logger logger = Logger.getLogger(BellExport.class.getName()); + + /** + * Object that performs different types of export transformation. + */ + @Autowired + private IExporterService exporter; + + /** + * Object used to annotate the model. + */ + @Autowired + private ModelAnnotator modelAnnotator; + + /** + * Object used to annotate the model. + */ + @Autowired + private DbUtils dbUtils; + + /** + * Static main method used to run this stand alone code. + * + * @param args + * command line arguments + */ + public static void main(String[] args) { + ApplicationContextLoader.loadApplicationContext("consoleApplicationContext.xml"); + BellExport main = new BellExport(); + ApplicationContextLoader.injectDependencies(main); + main.run(); + } + + /** + * Default constructor. + */ + public BellExport() { + + } + + /** + * Method that export pd map into file that can be exported to bell (by + * Marek). + * + */ + private void run() { + CellDesignerXmlParser p = new CellDesignerXmlParser(); + try { + String filename = PdMapAnnotations.getLastPdFilename(); + String version = PdMapAnnotations.getLastPdVersion(); + + //filename = "testFiles/other_full/ASTHMAP18000X8000V1_38.xml"; + //version = "1.1.38"; + dbUtils.createSessionForCurrentThread(); + Model model = p.createModel(new ConverterParams().filename(filename)); + + modelAnnotator.performAnnotations(model, new IProgressUpdater() { + + @Override + public void setProgress(double progress) { + // TODO Auto-generated method stub + + } + }); + + ExporterParameters params = new IExporterService.ExporterParameters().model(model).// + fileName("out/bell/" + version + "-reactions.txt").// + fileType(ExportFileType.TAB_SEPARATED).// + type(Species.class).// + moleculeEdges(false); + + exporter.exportReactions(params); + + params = new IExporterService.ExporterParameters().model(model).// + fileName("out/bell/" + version + "-species.txt").// + fileType(ExportFileType.TAB_SEPARATED).// + type(Species.class).// +// column(ExportColumn.FULL).// + moleculeEdges(false); + exporter.exportSpecies(params); + + params = new IExporterService.ExporterParameters().model(model).// + fileName("out/bell/" + version + "-compartments.txt").// + fileType(ExportFileType.TAB_SEPARATED).// + type(Object.class); // +// column(ExportColumn.FULL); + exporter.exportCompartments(params); + + } catch (Exception e) { + logger.error(e.getMessage(), e); + } finally { + dbUtils.closeSessionForCurrentThread(); + } + } + + /** + * @return the modelAnnotator + * @see #modelAnnotator + */ + public ModelAnnotator getModelAnnotator() { + return modelAnnotator; + } + + /** + * @param modelAnnotator + * the modelAnnotator to set + * @see #modelAnnotator + */ + public void setModelAnnotator(ModelAnnotator modelAnnotator) { + this.modelAnnotator = modelAnnotator; + } +} diff --git a/console/src/main/java/lcsb/mapviewer/run/ConsoleConverter.java b/console/src/main/java/lcsb/mapviewer/run/ConsoleConverter.java index 09c6c27d63..3f6ad5730d 100644 --- a/console/src/main/java/lcsb/mapviewer/run/ConsoleConverter.java +++ b/console/src/main/java/lcsb/mapviewer/run/ConsoleConverter.java @@ -1,467 +1,467 @@ -package lcsb.mapviewer.run; - -import java.awt.geom.Point2D; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.UnsupportedEncodingException; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import org.apache.log4j.Logger; - -import lcsb.mapviewer.annotation.services.MiriamConnector; -import lcsb.mapviewer.common.exception.InvalidArgumentException; -import lcsb.mapviewer.common.exception.InvalidStateException; -import lcsb.mapviewer.converter.InvalidInputDataExecption; -import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; -import lcsb.mapviewer.model.graphics.PolylineData; -import lcsb.mapviewer.model.map.AnnotatedObject; -import lcsb.mapviewer.model.map.Element; -import lcsb.mapviewer.model.map.InconsistentModelException; -import lcsb.mapviewer.model.map.MiriamData; -import lcsb.mapviewer.model.map.MiriamType; -import lcsb.mapviewer.model.map.agregator.Compartment; -import lcsb.mapviewer.model.map.layout.alias.Alias; -import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; -import lcsb.mapviewer.model.map.model.Model; -import lcsb.mapviewer.model.map.model.ModelFullIndexed; -import lcsb.mapviewer.model.map.modifier.Catalysis; -import lcsb.mapviewer.model.map.reaction.Modifier; -import lcsb.mapviewer.model.map.reaction.Product; -import lcsb.mapviewer.model.map.reaction.Reactant; -import lcsb.mapviewer.model.map.reaction.Reaction; -import lcsb.mapviewer.model.map.species.Species; -import lcsb.mapviewer.modelutils.map.ElementUtils; - -/** - * This class is entry point for console tool to convert data from tab separated - * file a CellDesigner format. - * - * @author Piotr Gawron - * - */ -public class ConsoleConverter { - - /** - * Default class logger. - */ - private final Logger logger = Logger.getLogger(ConsoleConverter.class); - - /** - * Options from the input. - */ - private RunOptions inputOptions; - - /** - * Connector used for accessing data from miriam registry. - */ - private MiriamConnector mc = new MiriamConnector(); - - /** - * Util class used to access some information about {@link Element}. - */ - private ElementUtils elementUtils = new ElementUtils(); - - /** - * Default constructor. - * - * @param args - * parameters with which the program was run - */ - public ConsoleConverter(String[] args) { - inputOptions = new RunOptions(args); - } - - /** - * Main entry point to the program. - * - * @param args - * parameters with which the program was run - */ - public static void main(String[] args) { -// ApplicationContextLoader.loadApplicationContext("consoleApplicationContext.xml"); - ConsoleConverter main = new ConsoleConverter(args); -// ApplicationContextLoader.injectDependencies(main); - try { - main.run(); - } catch (InvalidInputDataExecption e) { - main.logger.error(e, e); - } - } - - /** - * This method transform {@link #inputOptions input data}. - * - * @throws InvalidInputDataExecption - * thrown when the input data are invalid - */ - private void run() throws InvalidInputDataExecption { - if (inputOptions.isFormat()) { - inputOptions.printFormat(); - } else if (!inputOptions.isValidInput() || inputOptions.isHelpOption()) { - inputOptions.printHelp(); - } else { - logger.debug("Running..."); - - String nodesFilename = inputOptions.getNodesFilename(); - - Model model = new ModelFullIndexed(null); - model.setWidth(inputOptions.getModelSize()); - model.setHeight(inputOptions.getModelSize()); - model.addCompartment(new Compartment("default")); - - Set<Element> elements = null; - try { - elements = getNodes(nodesFilename); - } catch (IOException e) { - throw new InvalidInputDataExecption("Problem with input file: " + nodesFilename, e); - } - - for (Element element : elements) { - model.addElement(element); - } - - double middleX = inputOptions.getModelSize() / 2; - double middleY = inputOptions.getModelSize() / 2; - - double size = model.getSpecies().size(); - double x = 0; - - for (Species species : model.getSpecies()) { - SpeciesAlias alias = new SpeciesAlias(species); - alias.setAliasId("al" + species.getElementId()); - alias.setWidth(inputOptions.getAliasWidth()); - alias.setHeight(inputOptions.getAliasHeight()); - double angle = x / size * 2 * Math.PI; - alias.setX(middleX + Math.sin(angle) * inputOptions.getRadius()); - alias.setY(middleY + Math.cos(angle) * inputOptions.getRadius()); - model.addAlias(alias); - x++; - } - - String reactionsFilename = inputOptions.getReactionsFilename(); - - List<Reaction> reactions; - try { - reactions = getReactions(reactionsFilename, model); - } catch (IOException e) { - throw new InvalidInputDataExecption("Problem with input file: " + reactionsFilename, e); - } - model.addReactions(reactions); - String outputFilename = inputOptions.getOutputFilename(); - - CellDesignerXmlParser parser = new CellDesignerXmlParser(); - PrintWriter writer = null; - try { - writer = new PrintWriter(outputFilename, "UTF-8"); - writer.println(parser.toXml(model)); - } catch (FileNotFoundException e) { - throw new InvalidInputDataExecption("Problem with output file: " + outputFilename, e); - } catch (UnsupportedEncodingException e) { - logger.error(e, e); - } catch (InconsistentModelException e) { - throw new InvalidStateException(e); - } finally { - writer.close(); - } - - } - } - - /** - * Returns list of {@link Reaction reactions} obtained from input file. - * - * @param filename - * file with information about reactions - * @param model - * {@link Model} where the data about nodes is stored - * @return list of {@link Reaction reactions} obtained from input file - * @throws InvalidInputDataExecption - * thrown when the file is invalid - * @throws IOException - * thrown when there is a problem with acceesing input file - */ - private List<Reaction> getReactions(String filename, Model model) throws InvalidInputDataExecption, IOException { - List<Reaction> result = new ArrayList<Reaction>(); - Integer identifierColumn = null; - Integer typeColumn = null; - Integer reactantsColumn = null; - Integer modifiersColumn = null; - Integer productsColumn = null; - Integer annotationsColumn = null; - Set<Integer> ids = new HashSet<Integer>(); - BufferedReader br = new BufferedReader(new FileReader(new File(filename))); - try { - String line = br.readLine(); - String[] cols = line.split("\t", -1); - int columns = cols.length; - for (int i = 0; i < cols.length; i++) { - if (cols[i].equalsIgnoreCase(RunOptions.IDENTIFIER_REACTIONS_HEADER)) { - identifierColumn = i; - } else if (cols[i].equalsIgnoreCase(RunOptions.TYPE_REACTIONS_HEADER)) { - typeColumn = i; - } else if (cols[i].equalsIgnoreCase(RunOptions.REACTANTS_REACTIONS_HEADER)) { - reactantsColumn = i; - } else if (cols[i].equalsIgnoreCase(RunOptions.MODIFIERS_REACTIONS_HEADER)) { - modifiersColumn = i; - } else if (cols[i].equalsIgnoreCase(RunOptions.PRODUCTS_REACTIONS_HEADER)) { - productsColumn = i; - } else if (cols[i].equalsIgnoreCase(RunOptions.ANNOTATIONS_REACTIONS_HEADER)) { - annotationsColumn = i; - } else { - throw new InvalidInputDataExecption("Unknown column name " + cols[i], filename); - } - } - if (identifierColumn == null) { - throw new InvalidInputDataExecption("No \"" + RunOptions.IDENTIFIER_REACTIONS_HEADER + "\" defined.", filename); - } else if (typeColumn == null) { - throw new InvalidInputDataExecption("No \"" + RunOptions.TYPE_REACTIONS_HEADER + "\" defined.", filename); - } else if (reactantsColumn == null) { - throw new InvalidInputDataExecption("No \"" + RunOptions.REACTANTS_REACTIONS_HEADER + "\" defined.", filename); - } else if (modifiersColumn == null) { - throw new InvalidInputDataExecption("No \"" + RunOptions.MODIFIERS_REACTIONS_HEADER + "\" defined.", filename); - } else if (productsColumn == null) { - throw new InvalidInputDataExecption("No \"" + RunOptions.PRODUCTS_REACTIONS_HEADER + "\" defined.", filename); - } else if (annotationsColumn == null) { - throw new InvalidInputDataExecption("No \"" + RunOptions.ANNOTATIONS_REACTIONS_HEADER + "\" defined.", filename); - } - int row = 2; - while ((line = br.readLine()) != null) { - cols = line.split("\t", -1); - if (cols.length != columns) { - throw new InvalidInputDataExecption("Invalid number of columns in row " + row, filename); - } - String id = cols[identifierColumn]; - if (ids.contains(id)) { - throw new InvalidInputDataExecption("Id \"" + id + "\" is not unique.", filename); - } - - String className = cols[typeColumn]; - Class<? extends AnnotatedObject> clazz = elementUtils.getClassByName(className); - if (clazz == null) { - throw new InvalidInputDataExecption("Unknown element type: " + className, filename); - } - List<Product> products = new ArrayList<Product>(); - String productString = cols[productsColumn]; - for (String string : productString.split(",")) { - if (!string.isEmpty()) { - Element element = model.getSpeciesBySpeciesId(string.trim()); - SpeciesAlias alias = model.getAliasesBySpeciesId(string.trim()).get(0); - Product product = new Product(alias, element); - products.add(product); - } - } - if (products.size() == 0) { - throw new InvalidInputDataExecption("List of products cannot be empty (row: " + row + ")", filename); - } - - List<Reactant> reactants = new ArrayList<Reactant>(); - String reactantString = cols[reactantsColumn]; - for (String string : reactantString.split(",")) { - if (!string.isEmpty()) { - Element element = model.getSpeciesBySpeciesId(string.trim()); - SpeciesAlias alias = model.getAliasesBySpeciesId(string.trim()).get(0); - Reactant product = new Reactant(alias, element); - reactants.add(product); - } - } - if (reactants.size() == 0) { - throw new InvalidInputDataExecption("List of reactants cannot be empty (row: " + row + ")", filename); - } - - List<Modifier> modifiers = new ArrayList<Modifier>(); - String modifierString = cols[modifiersColumn]; - for (String string : modifierString.split(",")) { - if (!string.isEmpty()) { - Element element = model.getSpeciesBySpeciesId(string.trim()); - SpeciesAlias alias = model.getAliasesBySpeciesId(string.trim()).get(0); - Modifier modifier = new Catalysis(alias, element); - modifiers.add(modifier); - } - } - Alias alias1 = products.get(0).getAlias(); - Alias alias2 = reactants.get(0).getAlias(); - - Point2D middle = new Point2D.Double((alias1.getCenterX() + alias2.getCenterX()) / 2, (alias1.getCenterY() + alias2.getCenterY()) / 2); - - Set<MiriamData> annotations = new HashSet<MiriamData>(); - if (annotationsColumn != null) { - String[] annotationString = cols[annotationsColumn].split(","); - for (String string : annotationString) { - if (!string.isEmpty()) { - try { - annotations.add(MiriamType.getMiriamByUri(string)); - } catch (InvalidArgumentException e) { - throw new InvalidInputDataExecption("Invalid miriam urn: " + string, filename); - } - } - } - } - - try { - if (!Reaction.class.isAssignableFrom(clazz)) { - throw new InvalidInputDataExecption("Invalid reaction type type: " + className, filename); - } - Reaction reaction = (Reaction) clazz.newInstance(); - for (Product product : products) { - product.setLine(new PolylineData(middle, product.getAlias().getCenter())); - reaction.addProduct(product); - } - for (Reactant reactant : reactants) { - reactant.setLine(new PolylineData(reactant.getAlias().getCenter(), middle)); - reaction.addReactant(reactant); - } - for (Modifier modifier : modifiers) { - modifier.setLine(new PolylineData(middle, modifier.getAlias().getCenter())); - reaction.addModifier(modifier); - } - reaction.addMiriamData(annotations); - reaction.setElementId(id); - result.add(reaction); - } catch (InstantiationException e) { - throw new InvalidStateException(e); - } catch (IllegalAccessException e) { - throw new InvalidStateException(e); - } - row++; - } - } finally { - br.close(); - } - return result; - } - - /** - * This method parses the data from input file into set of {@link Element - * elements}. - * - * @param filename - * nam of input file - * @return set of {@link Element elements} - * @throws InvalidInputDataExecption - * thrown when the input data is invalid - * @throws IOException - * thrown when there is a problem with input file - */ - private Set<Element> getNodes(String filename) throws InvalidInputDataExecption, IOException { - ElementUtils elementUtils = new ElementUtils(); - - Set<Element> result = new HashSet<Element>(); - Set<String> ids = new HashSet<String>(); - - Integer identifierColumn = null; - Integer typeColumn = null; - Integer nameColumn = null; - Integer annotationsColumn = null; - - BufferedReader br = new BufferedReader(new FileReader(new File(filename))); - try { - String line = br.readLine(); - String[] cols = line.split("\t", -1); - int columns = cols.length; - for (int i = 0; i < cols.length; i++) { - if (cols[i].equalsIgnoreCase(RunOptions.IDENTIFIER_NODES_HEADER)) { - identifierColumn = i; - } else if (cols[i].equalsIgnoreCase(RunOptions.TYPE_NODES_HEADER)) { - typeColumn = i; - } else if (cols[i].equalsIgnoreCase(RunOptions.NAME_NODES_HEADER)) { - nameColumn = i; - } else if (cols[i].equalsIgnoreCase(RunOptions.ANNOTATIONS_NODES_HEADER)) { - annotationsColumn = i; - } else { - throw new InvalidInputDataExecption("Unknown column name " + cols[i], filename); - } - } - if (identifierColumn == null) { - throw new InvalidInputDataExecption("No \"" + RunOptions.IDENTIFIER_NODES_HEADER + "\" defined.", filename); - } - if (typeColumn == null) { - throw new InvalidInputDataExecption("No \"" + RunOptions.TYPE_NODES_HEADER + "\" defined.", filename); - } - if (nameColumn == null) { - throw new InvalidInputDataExecption("No \"" + RunOptions.NAME_NODES_HEADER + "\" defined.", filename); - } - int row = 2; - while ((line = br.readLine()) != null) { - if (line.isEmpty()) { - continue; - } - cols = line.split("\t", -1); - if (cols.length != columns) { - throw new InvalidInputDataExecption( - "Invalid number of columns in row " + row + ". Expected " + columns + ", but " + cols.length + " found", filename); - } - String id = cols[identifierColumn]; - if (ids.contains(id)) { - throw new InvalidInputDataExecption("Id \"" + id + "\" is not unique.", filename); - } - - String className = cols[typeColumn]; - Class<? extends AnnotatedObject> clazz = elementUtils.getClassByName(className); - if (clazz == null) { - throw new InvalidInputDataExecption("Unknown element type: " + className, filename); - } - String name = cols[nameColumn]; - if (name.isEmpty()) { - throw new InvalidInputDataExecption("Name cannot be empty (row " + row + ").", filename); - } - Set<MiriamData> annotations = new HashSet<MiriamData>(); - if (annotationsColumn != null) { - String[] annotationString = cols[annotationsColumn].split(","); - for (String string : annotationString) { - if (!string.isEmpty()) { - try { - annotations.add(MiriamType.getMiriamByUri(string)); - } catch (InvalidArgumentException e) { - throw new InvalidInputDataExecption("Invalid miriam urn: " + string, filename); - } - } - } - } - - try { - if (!Element.class.isAssignableFrom(clazz)) { - throw new InvalidInputDataExecption("Invliad element type: " + className, filename); - } - Element element = (Element) clazz.newInstance(); - element.setName(name); - element.addMiriamData(annotations); - element.setElementId(id); - result.add(element); - } catch (InstantiationException e) { - throw new InvalidStateException(e); - } catch (IllegalAccessException e) { - throw new InvalidStateException(e); - } - row++; - } - } finally { - br.close(); - } - - return result; - } - - /** - * @return the mc - * @see #mc - */ - public MiriamConnector getMc() { - return mc; - } - - /** - * @param mc - * the mc to set - * @see #mc - */ - public void setMc(MiriamConnector mc) { - this.mc = mc; - } -} +package lcsb.mapviewer.run; + +import java.awt.geom.Point2D; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.UnsupportedEncodingException; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import org.apache.log4j.Logger; + +import lcsb.mapviewer.annotation.services.MiriamConnector; +import lcsb.mapviewer.common.exception.InvalidArgumentException; +import lcsb.mapviewer.common.exception.InvalidStateException; +import lcsb.mapviewer.converter.InvalidInputDataExecption; +import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; +import lcsb.mapviewer.model.graphics.PolylineData; +import lcsb.mapviewer.model.map.AnnotatedObject; +import lcsb.mapviewer.model.map.Element; +import lcsb.mapviewer.model.map.InconsistentModelException; +import lcsb.mapviewer.model.map.MiriamData; +import lcsb.mapviewer.model.map.MiriamType; +import lcsb.mapviewer.model.map.agregator.Compartment; +import lcsb.mapviewer.model.map.layout.alias.Alias; +import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; +import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.model.map.model.ModelFullIndexed; +import lcsb.mapviewer.model.map.modifier.Catalysis; +import lcsb.mapviewer.model.map.reaction.Modifier; +import lcsb.mapviewer.model.map.reaction.Product; +import lcsb.mapviewer.model.map.reaction.Reactant; +import lcsb.mapviewer.model.map.reaction.Reaction; +import lcsb.mapviewer.model.map.species.Species; +import lcsb.mapviewer.modelutils.map.ElementUtils; + +/** + * This class is entry point for console tool to convert data from tab separated + * file a CellDesigner format. + * + * @author Piotr Gawron + * + */ +public class ConsoleConverter { + + /** + * Default class logger. + */ + private final Logger logger = Logger.getLogger(ConsoleConverter.class); + + /** + * Options from the input. + */ + private RunOptions inputOptions; + + /** + * Connector used for accessing data from miriam registry. + */ + private MiriamConnector mc = new MiriamConnector(); + + /** + * Util class used to access some information about {@link Element}. + */ + private ElementUtils elementUtils = new ElementUtils(); + + /** + * Default constructor. + * + * @param args + * parameters with which the program was run + */ + public ConsoleConverter(String[] args) { + inputOptions = new RunOptions(args); + } + + /** + * Main entry point to the program. + * + * @param args + * parameters with which the program was run + */ + public static void main(String[] args) { +// ApplicationContextLoader.loadApplicationContext("consoleApplicationContext.xml"); + ConsoleConverter main = new ConsoleConverter(args); +// ApplicationContextLoader.injectDependencies(main); + try { + main.run(); + } catch (InvalidInputDataExecption e) { + main.logger.error(e, e); + } + } + + /** + * This method transform {@link #inputOptions input data}. + * + * @throws InvalidInputDataExecption + * thrown when the input data are invalid + */ + private void run() throws InvalidInputDataExecption { + if (inputOptions.isFormat()) { + inputOptions.printFormat(); + } else if (!inputOptions.isValidInput() || inputOptions.isHelpOption()) { + inputOptions.printHelp(); + } else { + logger.debug("Running..."); + + String nodesFilename = inputOptions.getNodesFilename(); + + Model model = new ModelFullIndexed(null); + model.setWidth(inputOptions.getModelSize()); + model.setHeight(inputOptions.getModelSize()); + model.addCompartment(new Compartment("default")); + + Set<Element> elements = null; + try { + elements = getNodes(nodesFilename); + } catch (IOException e) { + throw new InvalidInputDataExecption("Problem with input file: " + nodesFilename, e); + } + + for (Element element : elements) { + model.addElement(element); + } + + double middleX = inputOptions.getModelSize() / 2; + double middleY = inputOptions.getModelSize() / 2; + + double size = model.getSpecies().size(); + double x = 0; + + for (Species species : model.getSpecies()) { + SpeciesAlias alias = new SpeciesAlias(species); + alias.setAliasId("al" + species.getElementId()); + alias.setWidth(inputOptions.getAliasWidth()); + alias.setHeight(inputOptions.getAliasHeight()); + double angle = x / size * 2 * Math.PI; + alias.setX(middleX + Math.sin(angle) * inputOptions.getRadius()); + alias.setY(middleY + Math.cos(angle) * inputOptions.getRadius()); + model.addAlias(alias); + x++; + } + + String reactionsFilename = inputOptions.getReactionsFilename(); + + List<Reaction> reactions; + try { + reactions = getReactions(reactionsFilename, model); + } catch (IOException e) { + throw new InvalidInputDataExecption("Problem with input file: " + reactionsFilename, e); + } + model.addReactions(reactions); + String outputFilename = inputOptions.getOutputFilename(); + + CellDesignerXmlParser parser = new CellDesignerXmlParser(); + PrintWriter writer = null; + try { + writer = new PrintWriter(outputFilename, "UTF-8"); + writer.println(parser.toXml(model)); + } catch (FileNotFoundException e) { + throw new InvalidInputDataExecption("Problem with output file: " + outputFilename, e); + } catch (UnsupportedEncodingException e) { + logger.error(e, e); + } catch (InconsistentModelException e) { + throw new InvalidStateException(e); + } finally { + writer.close(); + } + + } + } + + /** + * Returns list of {@link Reaction reactions} obtained from input file. + * + * @param filename + * file with information about reactions + * @param model + * {@link Model} where the data about nodes is stored + * @return list of {@link Reaction reactions} obtained from input file + * @throws InvalidInputDataExecption + * thrown when the file is invalid + * @throws IOException + * thrown when there is a problem with acceesing input file + */ + private List<Reaction> getReactions(String filename, Model model) throws InvalidInputDataExecption, IOException { + List<Reaction> result = new ArrayList<Reaction>(); + Integer identifierColumn = null; + Integer typeColumn = null; + Integer reactantsColumn = null; + Integer modifiersColumn = null; + Integer productsColumn = null; + Integer annotationsColumn = null; + Set<Integer> ids = new HashSet<Integer>(); + BufferedReader br = new BufferedReader(new FileReader(new File(filename))); + try { + String line = br.readLine(); + String[] cols = line.split("\t", -1); + int columns = cols.length; + for (int i = 0; i < cols.length; i++) { + if (cols[i].equalsIgnoreCase(RunOptions.IDENTIFIER_REACTIONS_HEADER)) { + identifierColumn = i; + } else if (cols[i].equalsIgnoreCase(RunOptions.TYPE_REACTIONS_HEADER)) { + typeColumn = i; + } else if (cols[i].equalsIgnoreCase(RunOptions.REACTANTS_REACTIONS_HEADER)) { + reactantsColumn = i; + } else if (cols[i].equalsIgnoreCase(RunOptions.MODIFIERS_REACTIONS_HEADER)) { + modifiersColumn = i; + } else if (cols[i].equalsIgnoreCase(RunOptions.PRODUCTS_REACTIONS_HEADER)) { + productsColumn = i; + } else if (cols[i].equalsIgnoreCase(RunOptions.ANNOTATIONS_REACTIONS_HEADER)) { + annotationsColumn = i; + } else { + throw new InvalidInputDataExecption("Unknown column name " + cols[i], filename); + } + } + if (identifierColumn == null) { + throw new InvalidInputDataExecption("No \"" + RunOptions.IDENTIFIER_REACTIONS_HEADER + "\" defined.", filename); + } else if (typeColumn == null) { + throw new InvalidInputDataExecption("No \"" + RunOptions.TYPE_REACTIONS_HEADER + "\" defined.", filename); + } else if (reactantsColumn == null) { + throw new InvalidInputDataExecption("No \"" + RunOptions.REACTANTS_REACTIONS_HEADER + "\" defined.", filename); + } else if (modifiersColumn == null) { + throw new InvalidInputDataExecption("No \"" + RunOptions.MODIFIERS_REACTIONS_HEADER + "\" defined.", filename); + } else if (productsColumn == null) { + throw new InvalidInputDataExecption("No \"" + RunOptions.PRODUCTS_REACTIONS_HEADER + "\" defined.", filename); + } else if (annotationsColumn == null) { + throw new InvalidInputDataExecption("No \"" + RunOptions.ANNOTATIONS_REACTIONS_HEADER + "\" defined.", filename); + } + int row = 2; + while ((line = br.readLine()) != null) { + cols = line.split("\t", -1); + if (cols.length != columns) { + throw new InvalidInputDataExecption("Invalid number of columns in row " + row, filename); + } + String id = cols[identifierColumn]; + if (ids.contains(id)) { + throw new InvalidInputDataExecption("Id \"" + id + "\" is not unique.", filename); + } + + String className = cols[typeColumn]; + Class<? extends AnnotatedObject> clazz = elementUtils.getClassByName(className); + if (clazz == null) { + throw new InvalidInputDataExecption("Unknown element type: " + className, filename); + } + List<Product> products = new ArrayList<Product>(); + String productString = cols[productsColumn]; + for (String string : productString.split(",")) { + if (!string.isEmpty()) { + Element element = model.getSpeciesBySpeciesId(string.trim()); + SpeciesAlias alias = model.getAliasesBySpeciesId(string.trim()).get(0); + Product product = new Product(alias, element); + products.add(product); + } + } + if (products.size() == 0) { + throw new InvalidInputDataExecption("List of products cannot be empty (row: " + row + ")", filename); + } + + List<Reactant> reactants = new ArrayList<Reactant>(); + String reactantString = cols[reactantsColumn]; + for (String string : reactantString.split(",")) { + if (!string.isEmpty()) { + Element element = model.getSpeciesBySpeciesId(string.trim()); + SpeciesAlias alias = model.getAliasesBySpeciesId(string.trim()).get(0); + Reactant product = new Reactant(alias, element); + reactants.add(product); + } + } + if (reactants.size() == 0) { + throw new InvalidInputDataExecption("List of reactants cannot be empty (row: " + row + ")", filename); + } + + List<Modifier> modifiers = new ArrayList<Modifier>(); + String modifierString = cols[modifiersColumn]; + for (String string : modifierString.split(",")) { + if (!string.isEmpty()) { + Element element = model.getSpeciesBySpeciesId(string.trim()); + SpeciesAlias alias = model.getAliasesBySpeciesId(string.trim()).get(0); + Modifier modifier = new Catalysis(alias, element); + modifiers.add(modifier); + } + } + Alias alias1 = products.get(0).getAlias(); + Alias alias2 = reactants.get(0).getAlias(); + + Point2D middle = new Point2D.Double((alias1.getCenterX() + alias2.getCenterX()) / 2, (alias1.getCenterY() + alias2.getCenterY()) / 2); + + Set<MiriamData> annotations = new HashSet<MiriamData>(); + if (annotationsColumn != null) { + String[] annotationString = cols[annotationsColumn].split(","); + for (String string : annotationString) { + if (!string.isEmpty()) { + try { + annotations.add(MiriamType.getMiriamByUri(string)); + } catch (InvalidArgumentException e) { + throw new InvalidInputDataExecption("Invalid miriam urn: " + string, filename); + } + } + } + } + + try { + if (!Reaction.class.isAssignableFrom(clazz)) { + throw new InvalidInputDataExecption("Invalid reaction type type: " + className, filename); + } + Reaction reaction = (Reaction) clazz.newInstance(); + for (Product product : products) { + product.setLine(new PolylineData(middle, product.getAlias().getCenter())); + reaction.addProduct(product); + } + for (Reactant reactant : reactants) { + reactant.setLine(new PolylineData(reactant.getAlias().getCenter(), middle)); + reaction.addReactant(reactant); + } + for (Modifier modifier : modifiers) { + modifier.setLine(new PolylineData(middle, modifier.getAlias().getCenter())); + reaction.addModifier(modifier); + } + reaction.addMiriamData(annotations); + reaction.setElementId(id); + result.add(reaction); + } catch (InstantiationException e) { + throw new InvalidStateException(e); + } catch (IllegalAccessException e) { + throw new InvalidStateException(e); + } + row++; + } + } finally { + br.close(); + } + return result; + } + + /** + * This method parses the data from input file into set of {@link Element + * elements}. + * + * @param filename + * nam of input file + * @return set of {@link Element elements} + * @throws InvalidInputDataExecption + * thrown when the input data is invalid + * @throws IOException + * thrown when there is a problem with input file + */ + private Set<Element> getNodes(String filename) throws InvalidInputDataExecption, IOException { + ElementUtils elementUtils = new ElementUtils(); + + Set<Element> result = new HashSet<Element>(); + Set<String> ids = new HashSet<String>(); + + Integer identifierColumn = null; + Integer typeColumn = null; + Integer nameColumn = null; + Integer annotationsColumn = null; + + BufferedReader br = new BufferedReader(new FileReader(new File(filename))); + try { + String line = br.readLine(); + String[] cols = line.split("\t", -1); + int columns = cols.length; + for (int i = 0; i < cols.length; i++) { + if (cols[i].equalsIgnoreCase(RunOptions.IDENTIFIER_NODES_HEADER)) { + identifierColumn = i; + } else if (cols[i].equalsIgnoreCase(RunOptions.TYPE_NODES_HEADER)) { + typeColumn = i; + } else if (cols[i].equalsIgnoreCase(RunOptions.NAME_NODES_HEADER)) { + nameColumn = i; + } else if (cols[i].equalsIgnoreCase(RunOptions.ANNOTATIONS_NODES_HEADER)) { + annotationsColumn = i; + } else { + throw new InvalidInputDataExecption("Unknown column name " + cols[i], filename); + } + } + if (identifierColumn == null) { + throw new InvalidInputDataExecption("No \"" + RunOptions.IDENTIFIER_NODES_HEADER + "\" defined.", filename); + } + if (typeColumn == null) { + throw new InvalidInputDataExecption("No \"" + RunOptions.TYPE_NODES_HEADER + "\" defined.", filename); + } + if (nameColumn == null) { + throw new InvalidInputDataExecption("No \"" + RunOptions.NAME_NODES_HEADER + "\" defined.", filename); + } + int row = 2; + while ((line = br.readLine()) != null) { + if (line.isEmpty()) { + continue; + } + cols = line.split("\t", -1); + if (cols.length != columns) { + throw new InvalidInputDataExecption( + "Invalid number of columns in row " + row + ". Expected " + columns + ", but " + cols.length + " found", filename); + } + String id = cols[identifierColumn]; + if (ids.contains(id)) { + throw new InvalidInputDataExecption("Id \"" + id + "\" is not unique.", filename); + } + + String className = cols[typeColumn]; + Class<? extends AnnotatedObject> clazz = elementUtils.getClassByName(className); + if (clazz == null) { + throw new InvalidInputDataExecption("Unknown element type: " + className, filename); + } + String name = cols[nameColumn]; + if (name.isEmpty()) { + throw new InvalidInputDataExecption("Name cannot be empty (row " + row + ").", filename); + } + Set<MiriamData> annotations = new HashSet<MiriamData>(); + if (annotationsColumn != null) { + String[] annotationString = cols[annotationsColumn].split(","); + for (String string : annotationString) { + if (!string.isEmpty()) { + try { + annotations.add(MiriamType.getMiriamByUri(string)); + } catch (InvalidArgumentException e) { + throw new InvalidInputDataExecption("Invalid miriam urn: " + string, filename); + } + } + } + } + + try { + if (!Element.class.isAssignableFrom(clazz)) { + throw new InvalidInputDataExecption("Invliad element type: " + className, filename); + } + Element element = (Element) clazz.newInstance(); + element.setName(name); + element.addMiriamData(annotations); + element.setElementId(id); + result.add(element); + } catch (InstantiationException e) { + throw new InvalidStateException(e); + } catch (IllegalAccessException e) { + throw new InvalidStateException(e); + } + row++; + } + } finally { + br.close(); + } + + return result; + } + + /** + * @return the mc + * @see #mc + */ + public MiriamConnector getMc() { + return mc; + } + + /** + * @param mc + * the mc to set + * @see #mc + */ + public void setMc(MiriamConnector mc) { + this.mc = mc; + } +} diff --git a/console/src/main/java/lcsb/mapviewer/run/PdMapAnnotations.java b/console/src/main/java/lcsb/mapviewer/run/PdMapAnnotations.java index fdd4685430..2ddc3a1ee4 100644 --- a/console/src/main/java/lcsb/mapviewer/run/PdMapAnnotations.java +++ b/console/src/main/java/lcsb/mapviewer/run/PdMapAnnotations.java @@ -1,82 +1,82 @@ -package lcsb.mapviewer.run; - -import java.io.File; -import java.io.FileNotFoundException; - -import lcsb.mapviewer.common.Configuration; -import lcsb.mapviewer.model.map.reaction.Reaction; - -/** - * Class with some PD map specific information. - * - * @author Piotr Gawron - * - */ -public final class PdMapAnnotations { - - /** - * Default class constructor. Prevent initialization. - */ - private PdMapAnnotations() { - - } - - /** - * Returns url to pdmap with reaction selected on it. - * - * @param reaction - * reaction to be selected - * @return url to the reaction in pd map - */ - public static String getLinkForReaction(Reaction reaction) { - return Configuration.PUBLICALY_AVAILABLE_PD_MAP + "&search=reaction:" + reaction.getIdReaction(); - } - - /** - * Returns filename of the last available version of pd project from testFiles - * directory. - * - * @return filename of the last available version of pd project - * @throws FileNotFoundException - * thrown when file cannpt be found - */ - public static String getLastPdFilename() throws FileNotFoundException { - String result = null; - File folder = new File("testFiles/PD_full/"); - File[] listOfFiles = folder.listFiles(); - - for (int i = 0; i < listOfFiles.length; i++) { - - if (listOfFiles[i].isFile() && listOfFiles[i].getAbsolutePath().toLowerCase().endsWith("xml")) { - if (result == null) { - result = listOfFiles[i].getAbsolutePath(); - } else { - if (result.compareTo(listOfFiles[i].getAbsolutePath()) < 0) { - result = listOfFiles[i].getAbsolutePath(); - } - } - } - } - if (result == null) { - throw new FileNotFoundException(); - } else { - return result; - } - } - - /** - * Returns version of the last pd file project. - * - * @return version of the last pd file project - */ - public static String getLastPdVersion() { - String result = null; - try { - String[] tokens = getLastPdFilename().split("[\\/\\\\]"); - result = tokens[tokens.length - 1].replace(".xml", ""); - } catch (FileNotFoundException e) { - return null; - } - return result; - } -} +package lcsb.mapviewer.run; + +import java.io.File; +import java.io.FileNotFoundException; + +import lcsb.mapviewer.common.Configuration; +import lcsb.mapviewer.model.map.reaction.Reaction; + +/** + * Class with some PD map specific information. + * + * @author Piotr Gawron + * + */ +public final class PdMapAnnotations { + + /** + * Default class constructor. Prevent initialization. + */ + private PdMapAnnotations() { + + } + + /** + * Returns url to pdmap with reaction selected on it. + * + * @param reaction + * reaction to be selected + * @return url to the reaction in pd map + */ + public static String getLinkForReaction(Reaction reaction) { + return Configuration.PUBLICALY_AVAILABLE_PD_MAP + "&search=reaction:" + reaction.getIdReaction(); + } + + /** + * Returns filename of the last available version of pd project from testFiles + * directory. + * + * @return filename of the last available version of pd project + * @throws FileNotFoundException + * thrown when file cannpt be found + */ + public static String getLastPdFilename() throws FileNotFoundException { + String result = null; + File folder = new File("testFiles/PD_full/"); + File[] listOfFiles = folder.listFiles(); + + for (int i = 0; i < listOfFiles.length; i++) { + + if (listOfFiles[i].isFile() && listOfFiles[i].getAbsolutePath().toLowerCase().endsWith("xml")) { + if (result == null) { + result = listOfFiles[i].getAbsolutePath(); + } else { + if (result.compareTo(listOfFiles[i].getAbsolutePath()) < 0) { + result = listOfFiles[i].getAbsolutePath(); + } + } + } + } + if (result == null) { + throw new FileNotFoundException(); + } else { + return result; + } + } + + /** + * Returns version of the last pd file project. + * + * @return version of the last pd file project + */ + public static String getLastPdVersion() { + String result = null; + try { + String[] tokens = getLastPdFilename().split("[\\/\\\\]"); + result = tokens[tokens.length - 1].replace(".xml", ""); + } catch (FileNotFoundException e) { + return null; + } + return result; + } +} diff --git a/console/src/main/java/lcsb/mapviewer/run/ReactomeComparison.java b/console/src/main/java/lcsb/mapviewer/run/ReactomeComparison.java index d155f5dcd0..74ea907a17 100644 --- a/console/src/main/java/lcsb/mapviewer/run/ReactomeComparison.java +++ b/console/src/main/java/lcsb/mapviewer/run/ReactomeComparison.java @@ -1,405 +1,405 @@ -package lcsb.mapviewer.run; - -import static org.junit.Assert.fail; - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.PrintWriter; -import java.io.UnsupportedEncodingException; -import java.text.DecimalFormat; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import lcsb.mapviewer.annotation.services.annotators.AnnotatorException; -import lcsb.mapviewer.common.IProgressUpdater; -import lcsb.mapviewer.converter.ConverterParams; -import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; -import lcsb.mapviewer.model.map.Element; -import lcsb.mapviewer.model.map.model.Model; -import lcsb.mapviewer.model.map.reaction.Reaction; -import lcsb.mapviewer.model.map.species.Species; -import lcsb.mapviewer.persist.ApplicationContextLoader; -import lcsb.mapviewer.reactome.model.ReactomeDatabaseObject; -import lcsb.mapviewer.reactome.model.ReactomeReactionlikeEvent; -import lcsb.mapviewer.reactome.utils.ComparatorException; -import lcsb.mapviewer.reactome.utils.DataFormatter; -import lcsb.mapviewer.reactome.utils.DataSourceUpdater; -import lcsb.mapviewer.reactome.utils.ReactionComparator; -import lcsb.mapviewer.reactome.utils.ReactomeQueryUtil; -import lcsb.mapviewer.reactome.utils.comparators.MatchResult; -import lcsb.mapviewer.reactome.utils.comparators.MatchResult.MatchStatus; - -import org.apache.log4j.Logger; -import org.apache.log4j.PropertyConfigurator; -import org.springframework.beans.factory.annotation.Autowired; - -/** - * This class generates report of comparison between data on PD-map and - * reactome. - * - * @author Piotr Gawron - * - */ - -public class ReactomeComparison { - /** - * Number of nanoseconds in second :). - */ - private static final double NANOSECONDS_IN_SECOND = 1000000000.0; - - /** - * Local model used for comparison. - */ - private Model model; - - /** - * Default class logger. - */ - private static Logger logger = Logger.getLogger(ReactomeComparison.class); - - - /** - * Comparator of reactions between our model and reactome. - */ - @Autowired - private ReactionComparator reactionComparator; - - /** - * Class used for accessing reactome data. - */ - @Autowired - private DataSourceUpdater rc; - - /** - * Util class used for manipulating information in reactome objects. - */ - @Autowired - private ReactomeQueryUtil rcu; - - /** - * Formatter used for reaction comparison. - */ - @Autowired - private DataFormatter dataFormatter; - - /** - * Static main method used to run this stand alone code. - * - * @param args - * command line arguments - */ - public static void main(String[] args) { - long startTime = System.nanoTime(); - PropertyConfigurator.configure("src/main/webapp/WEB-INF/resources/log4j.properties"); - ReactomeComparison main = new ReactomeComparison(); - ApplicationContextLoader.loadApplicationContext("consoleApplicationContext.xml"); - ApplicationContextLoader.injectDependencies(main); - main.run(); - long endTime = System.nanoTime(); - - long duration = endTime - startTime; - double sec = duration / NANOSECONDS_IN_SECOND; - System.out.println("Duration: " + new DecimalFormat("#.###").format(sec) + "s"); - } - - /** - * Executes comparison between model and reactome representation. - */ - public void run() { - try { - model = new CellDesignerXmlParser().createModel(new ConverterParams().filename(PdMapAnnotations.getLastPdFilename())); - - Set<String> list = new HashSet<String>(); - - for (Element element : model.getElements()) { - if (element instanceof Species) { - list.add(((Species) element).getName()); - } - } - logger.debug("Species: " + list.size()); - - List<String> ids = new ArrayList<String>(); - for (Reaction reaction : model.getReactions()) { - ids.add(reaction.getIdReaction()); - } - Collections.sort(ids); - List<MatchResult> results = new ArrayList<MatchResult>(); - - printHeader(); - int i = 0; - for (String string : ids) { - Reaction reaction = model.getReactionByReactionId(string); - logger.info("Reaction: " + string + "; " + (i++) + "/" + ids.size()); - if (rcu.getReactomeIdentifierForReaction(reaction) != null) { - MatchResult result = checkReaction(string); - if (result != null) { - results.add(result); - printResult(result); - } - } else { - ReactomeReactionlikeEvent reactomReaction = rcu.getSimilarReaction(reaction); - if (reactomReaction != null) { - MatchResult matchResult = new MatchResult(); - matchResult.setStatus(MatchStatus.SIMILAR_REACTION_FOUND); - matchResult.setLocalReaction(reaction); - matchResult.setReactomeReaction(reactomReaction); - results.add(matchResult); - printResult(matchResult); - - } - } - } - printFooter(results); - - } catch (Exception e) { - e.printStackTrace(); - fail("Unknown exception"); - } - - } - - /** - * Prints report footer. - * - * @param results - * results used in the report - */ - private void printFooter(List<MatchResult> results) { - writer.println("</table>"); - - int ok = 0; - int mismatch = 0; - int severe = 0; - int similar = 0; - for (MatchResult matchResult : results) { - if (matchResult.getStatus() == MatchStatus.OK) { - ok++; - } else if (matchResult.getStatus() == MatchStatus.MISMATCH) { - mismatch++; - } else if (matchResult.getStatus() == MatchStatus.SIMILAR_REACTION_FOUND) { - similar++; - } else { - severe++; - } - } - writer.println("<p>Reactions checked: " + (results.size()) + "</p>"); - writer.println("<p>OK: " + ok + "</p>"); - writer.println("<p>MISMATCH: " + mismatch + "</p>"); - writer.println("<p>SEVERE PROBLEMS: " + severe + "</p>"); - writer.println("<p>SIMILAR: " + similar + "</p>"); - - writer.println("</body></html>"); - writer.close(); - - } - - /** - * Object to which the report is written. - */ - private PrintWriter writer; - - /** - * Creates report stream and prints header of the report. - * - * @throws FileNotFoundException - * if there is a problem with creating report file - * @throws UnsupportedEncodingException - * thrown when there are problems with encoding - */ - private void printHeader() throws FileNotFoundException, UnsupportedEncodingException { - writer = new PrintWriter("out/report/report.html", "UTF-8"); - writer.println("<html><head></head><body>"); - writer.println("<table cellspacing=\"0\">"); - - String resultString = "<tr>"; - resultString += "<td" + style + ">Reaction</td>"; - resultString += "<td" + style + ">REACTOME ID</td>"; - resultString += "<td" + style + ">Status</td>"; - resultString += "<td" + style + ">Similarity</td>"; - resultString += "<td" + style + ">Unknown reaction input</td>"; - resultString += "<td" + style + ">Unknown reaction modifier</td>"; - resultString += "<td" + style + ">Unknown reaction output</td>"; - resultString += "<td" + style + ">Unknown reactome input</td>"; - resultString += "<td" + style + ">Unknown reactome modifier</td>"; - resultString += "<td" + style + ">Unknown reactome output</td>"; - resultString += "</tr>"; - writer.println(resultString); - - } - - /** - * Formatter of decimal numbers. - */ - private DecimalFormat df = new DecimalFormat("#.##"); - - /** - * Style used by report cells. - */ - private String style = " style=\"border-width:1;border-style:solid;border-color:#000000;\" "; - - /** - * Prints result row. - * - * @param result - * result to be printed - * @throws IOException - * @throws AnnotatorException - */ - private void printResult(MatchResult result) throws IOException, AnnotatorException { - String color = "#000000"; - String status = ""; - String error = ""; - switch (result.getStatus()) { - case OK: - color = "#52D017"; - status = "OK"; - error = "<td colspan=\"6\" " + style + "></td>"; - return; - case SIMILAR_REACTION_FOUND: - color = "#5757E0"; - status = "SIMILAR"; - error = "<td colspan=\"6\" " + style + "></td>"; - return; - case MISMATCH: - color = "#FFFF00"; - status = "MISMATCH"; - error += "<td" + style + ">" + dataFormatter.getInvalidLocalInputString(result) + " </td>"; - error += "<td" + style + ">" + dataFormatter.getInvalidLocalModifierString(result) + " </td>"; - error += "<td" + style + ">" + dataFormatter.getInvalidLocalOutputString(result) + " </td>"; - error += "<td" + style + ">" + dataFormatter.getInvalidReactomeInputString(result) + " </td>"; - error += "<td" + style + ">" + dataFormatter.getInvalidReactomeModifierString(result) + " </td>"; - error += "<td" + style + ">" + dataFormatter.getInvalidReactomeOutputString(result) + " </td>"; - break; - case INVALID_REACTOME_ID: - color = "#FF0000"; - status = "REACTOME id does not point to reaction"; - error = "<td colspan=\"6\" " + style + "></td>"; - return; - case INVALID_REACTION_WITH_PHEONTYPE: - color = "#FF0000"; - status = "Impossible to map reaction to reactome - reaction contains Phenotype"; - error = "<td colspan=\"6\" " + style + "></td>"; - return; - default: - return; - } - String resultString = "<tr bgcolor = \"" + color + "\">"; - String reactionId = result.getLocalReaction().getIdReaction(); - String reactomId = null; - reactomId = rcu.getReactomeIdentifierForReaction(result.getLocalReaction()); - - resultString += "<td" + style + "><a target=\"_blank\" href=\"" + PdMapAnnotations.getLinkForReaction(result.getLocalReaction()) + "\">" + reactionId - + "</a> "; - resultString += "<a target=\"_blank\" href=\"" + rcu.getReactomeUrlForStableIdentifier(reactomId) + "\">" + reactomId + "</a></td>"; - - if (result.getReactomeReaction() != null) { - reactomId = result.getReactomeReaction().getStableIdentifier().getIdentifier() + "." - + result.getReactomeReaction().getStableIdentifier().getIdentifierVersion(); - } else { - reactomId = rcu.getReactomeIdentifierForReaction(result.getLocalReaction()); - } - - resultString += "<td" + style + "><a target=\"_blank\" href=\"" + rcu.getReactomeUrlForStableIdentifier(reactomId) + "\">" + reactomId + "</a></td>"; - resultString += "<td" + style + ">" + status + "</td>"; - resultString += "<td" + style + ">" + df.format(result.getScore() * IProgressUpdater.MAX_PROGRESS) + "%</td>"; - resultString += error; - resultString += "</tr>"; - writer.println(resultString); - System.out.println(resultString); - } - - /** - * Compares our model reaction to reactome representation. - * - * @param id - * identifier of our reaction - * @return result of reaction comparison - * @throws IOException - * thrown whene there are problems accessing reactome reaction - * @throws ComparatorException - */ - private MatchResult checkReaction(String id) throws IOException, ComparatorException { - return checkReaction(model.getReactionByReactionId(id)); - } - - /** - * Compares our model reaction to reactome representation. - * - * @param reaction - * our reaction - * @return result of reaction comparison - * @throws IOException - * thrown whene there are problems accessing reactome reaction - * @throws ComparatorException - */ - private MatchResult checkReaction(Reaction reaction) throws IOException, ComparatorException { - String stableIdentifier = rcu.getReactomeIdentifierForReaction(reaction); - if (stableIdentifier != null) { - String identifier = stableIdentifier.split("\\.")[0]; - String version = stableIdentifier.split("\\.")[1]; - - ReactomeDatabaseObject object = rc.getFullObjectForStableIdentifier(identifier, version); - if (object != null && object instanceof ReactomeReactionlikeEvent) { - return reactionComparator.compareReactions(reaction, (ReactomeReactionlikeEvent) object); - - } else { - MatchResult result = new MatchResult(); - result.setLocalReaction(reaction); - result.setStatus(MatchStatus.INVALID_REACTOME_ID); - return result; - } - } - return null; - } - - /** - * @return the reactionComparator - */ - public ReactionComparator getReactionComparator() { - return reactionComparator; - } - - /** - * @param reactionComparator - * the reactionComparator to set - */ - public void setReactionComparator(ReactionComparator reactionComparator) { - this.reactionComparator = reactionComparator; - } - - /** - * @return the dataFormatter - */ - public DataFormatter getDataFormatter() { - return dataFormatter; - } - - /** - * @param dataFormatter - * the dataFormatter to set - */ - public void setDataFormatter(DataFormatter dataFormatter) { - this.dataFormatter = dataFormatter; - } - - /** - * @return the rc - * @see #rc - */ - public DataSourceUpdater getRc() { - return rc; - } - - /** - * @param rc - * the rc to set - * @see #rc - */ - public void setRc(DataSourceUpdater rc) { - this.rc = rc; - } - -} +package lcsb.mapviewer.run; + +import static org.junit.Assert.fail; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.UnsupportedEncodingException; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import lcsb.mapviewer.annotation.services.annotators.AnnotatorException; +import lcsb.mapviewer.common.IProgressUpdater; +import lcsb.mapviewer.converter.ConverterParams; +import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; +import lcsb.mapviewer.model.map.Element; +import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.model.map.reaction.Reaction; +import lcsb.mapviewer.model.map.species.Species; +import lcsb.mapviewer.persist.ApplicationContextLoader; +import lcsb.mapviewer.reactome.model.ReactomeDatabaseObject; +import lcsb.mapviewer.reactome.model.ReactomeReactionlikeEvent; +import lcsb.mapviewer.reactome.utils.ComparatorException; +import lcsb.mapviewer.reactome.utils.DataFormatter; +import lcsb.mapviewer.reactome.utils.DataSourceUpdater; +import lcsb.mapviewer.reactome.utils.ReactionComparator; +import lcsb.mapviewer.reactome.utils.ReactomeQueryUtil; +import lcsb.mapviewer.reactome.utils.comparators.MatchResult; +import lcsb.mapviewer.reactome.utils.comparators.MatchResult.MatchStatus; + +import org.apache.log4j.Logger; +import org.apache.log4j.PropertyConfigurator; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * This class generates report of comparison between data on PD-map and + * reactome. + * + * @author Piotr Gawron + * + */ + +public class ReactomeComparison { + /** + * Number of nanoseconds in second :). + */ + private static final double NANOSECONDS_IN_SECOND = 1000000000.0; + + /** + * Local model used for comparison. + */ + private Model model; + + /** + * Default class logger. + */ + private static Logger logger = Logger.getLogger(ReactomeComparison.class); + + + /** + * Comparator of reactions between our model and reactome. + */ + @Autowired + private ReactionComparator reactionComparator; + + /** + * Class used for accessing reactome data. + */ + @Autowired + private DataSourceUpdater rc; + + /** + * Util class used for manipulating information in reactome objects. + */ + @Autowired + private ReactomeQueryUtil rcu; + + /** + * Formatter used for reaction comparison. + */ + @Autowired + private DataFormatter dataFormatter; + + /** + * Static main method used to run this stand alone code. + * + * @param args + * command line arguments + */ + public static void main(String[] args) { + long startTime = System.nanoTime(); + PropertyConfigurator.configure("src/main/webapp/WEB-INF/resources/log4j.properties"); + ReactomeComparison main = new ReactomeComparison(); + ApplicationContextLoader.loadApplicationContext("consoleApplicationContext.xml"); + ApplicationContextLoader.injectDependencies(main); + main.run(); + long endTime = System.nanoTime(); + + long duration = endTime - startTime; + double sec = duration / NANOSECONDS_IN_SECOND; + System.out.println("Duration: " + new DecimalFormat("#.###").format(sec) + "s"); + } + + /** + * Executes comparison between model and reactome representation. + */ + public void run() { + try { + model = new CellDesignerXmlParser().createModel(new ConverterParams().filename(PdMapAnnotations.getLastPdFilename())); + + Set<String> list = new HashSet<String>(); + + for (Element element : model.getElements()) { + if (element instanceof Species) { + list.add(((Species) element).getName()); + } + } + logger.debug("Species: " + list.size()); + + List<String> ids = new ArrayList<String>(); + for (Reaction reaction : model.getReactions()) { + ids.add(reaction.getIdReaction()); + } + Collections.sort(ids); + List<MatchResult> results = new ArrayList<MatchResult>(); + + printHeader(); + int i = 0; + for (String string : ids) { + Reaction reaction = model.getReactionByReactionId(string); + logger.info("Reaction: " + string + "; " + (i++) + "/" + ids.size()); + if (rcu.getReactomeIdentifierForReaction(reaction) != null) { + MatchResult result = checkReaction(string); + if (result != null) { + results.add(result); + printResult(result); + } + } else { + ReactomeReactionlikeEvent reactomReaction = rcu.getSimilarReaction(reaction); + if (reactomReaction != null) { + MatchResult matchResult = new MatchResult(); + matchResult.setStatus(MatchStatus.SIMILAR_REACTION_FOUND); + matchResult.setLocalReaction(reaction); + matchResult.setReactomeReaction(reactomReaction); + results.add(matchResult); + printResult(matchResult); + + } + } + } + printFooter(results); + + } catch (Exception e) { + e.printStackTrace(); + fail("Unknown exception"); + } + + } + + /** + * Prints report footer. + * + * @param results + * results used in the report + */ + private void printFooter(List<MatchResult> results) { + writer.println("</table>"); + + int ok = 0; + int mismatch = 0; + int severe = 0; + int similar = 0; + for (MatchResult matchResult : results) { + if (matchResult.getStatus() == MatchStatus.OK) { + ok++; + } else if (matchResult.getStatus() == MatchStatus.MISMATCH) { + mismatch++; + } else if (matchResult.getStatus() == MatchStatus.SIMILAR_REACTION_FOUND) { + similar++; + } else { + severe++; + } + } + writer.println("<p>Reactions checked: " + (results.size()) + "</p>"); + writer.println("<p>OK: " + ok + "</p>"); + writer.println("<p>MISMATCH: " + mismatch + "</p>"); + writer.println("<p>SEVERE PROBLEMS: " + severe + "</p>"); + writer.println("<p>SIMILAR: " + similar + "</p>"); + + writer.println("</body></html>"); + writer.close(); + + } + + /** + * Object to which the report is written. + */ + private PrintWriter writer; + + /** + * Creates report stream and prints header of the report. + * + * @throws FileNotFoundException + * if there is a problem with creating report file + * @throws UnsupportedEncodingException + * thrown when there are problems with encoding + */ + private void printHeader() throws FileNotFoundException, UnsupportedEncodingException { + writer = new PrintWriter("out/report/report.html", "UTF-8"); + writer.println("<html><head></head><body>"); + writer.println("<table cellspacing=\"0\">"); + + String resultString = "<tr>"; + resultString += "<td" + style + ">Reaction</td>"; + resultString += "<td" + style + ">REACTOME ID</td>"; + resultString += "<td" + style + ">Status</td>"; + resultString += "<td" + style + ">Similarity</td>"; + resultString += "<td" + style + ">Unknown reaction input</td>"; + resultString += "<td" + style + ">Unknown reaction modifier</td>"; + resultString += "<td" + style + ">Unknown reaction output</td>"; + resultString += "<td" + style + ">Unknown reactome input</td>"; + resultString += "<td" + style + ">Unknown reactome modifier</td>"; + resultString += "<td" + style + ">Unknown reactome output</td>"; + resultString += "</tr>"; + writer.println(resultString); + + } + + /** + * Formatter of decimal numbers. + */ + private DecimalFormat df = new DecimalFormat("#.##"); + + /** + * Style used by report cells. + */ + private String style = " style=\"border-width:1;border-style:solid;border-color:#000000;\" "; + + /** + * Prints result row. + * + * @param result + * result to be printed + * @throws IOException + * @throws AnnotatorException + */ + private void printResult(MatchResult result) throws IOException, AnnotatorException { + String color = "#000000"; + String status = ""; + String error = ""; + switch (result.getStatus()) { + case OK: + color = "#52D017"; + status = "OK"; + error = "<td colspan=\"6\" " + style + "></td>"; + return; + case SIMILAR_REACTION_FOUND: + color = "#5757E0"; + status = "SIMILAR"; + error = "<td colspan=\"6\" " + style + "></td>"; + return; + case MISMATCH: + color = "#FFFF00"; + status = "MISMATCH"; + error += "<td" + style + ">" + dataFormatter.getInvalidLocalInputString(result) + " </td>"; + error += "<td" + style + ">" + dataFormatter.getInvalidLocalModifierString(result) + " </td>"; + error += "<td" + style + ">" + dataFormatter.getInvalidLocalOutputString(result) + " </td>"; + error += "<td" + style + ">" + dataFormatter.getInvalidReactomeInputString(result) + " </td>"; + error += "<td" + style + ">" + dataFormatter.getInvalidReactomeModifierString(result) + " </td>"; + error += "<td" + style + ">" + dataFormatter.getInvalidReactomeOutputString(result) + " </td>"; + break; + case INVALID_REACTOME_ID: + color = "#FF0000"; + status = "REACTOME id does not point to reaction"; + error = "<td colspan=\"6\" " + style + "></td>"; + return; + case INVALID_REACTION_WITH_PHEONTYPE: + color = "#FF0000"; + status = "Impossible to map reaction to reactome - reaction contains Phenotype"; + error = "<td colspan=\"6\" " + style + "></td>"; + return; + default: + return; + } + String resultString = "<tr bgcolor = \"" + color + "\">"; + String reactionId = result.getLocalReaction().getIdReaction(); + String reactomId = null; + reactomId = rcu.getReactomeIdentifierForReaction(result.getLocalReaction()); + + resultString += "<td" + style + "><a target=\"_blank\" href=\"" + PdMapAnnotations.getLinkForReaction(result.getLocalReaction()) + "\">" + reactionId + + "</a> "; + resultString += "<a target=\"_blank\" href=\"" + rcu.getReactomeUrlForStableIdentifier(reactomId) + "\">" + reactomId + "</a></td>"; + + if (result.getReactomeReaction() != null) { + reactomId = result.getReactomeReaction().getStableIdentifier().getIdentifier() + "." + + result.getReactomeReaction().getStableIdentifier().getIdentifierVersion(); + } else { + reactomId = rcu.getReactomeIdentifierForReaction(result.getLocalReaction()); + } + + resultString += "<td" + style + "><a target=\"_blank\" href=\"" + rcu.getReactomeUrlForStableIdentifier(reactomId) + "\">" + reactomId + "</a></td>"; + resultString += "<td" + style + ">" + status + "</td>"; + resultString += "<td" + style + ">" + df.format(result.getScore() * IProgressUpdater.MAX_PROGRESS) + "%</td>"; + resultString += error; + resultString += "</tr>"; + writer.println(resultString); + System.out.println(resultString); + } + + /** + * Compares our model reaction to reactome representation. + * + * @param id + * identifier of our reaction + * @return result of reaction comparison + * @throws IOException + * thrown whene there are problems accessing reactome reaction + * @throws ComparatorException + */ + private MatchResult checkReaction(String id) throws IOException, ComparatorException { + return checkReaction(model.getReactionByReactionId(id)); + } + + /** + * Compares our model reaction to reactome representation. + * + * @param reaction + * our reaction + * @return result of reaction comparison + * @throws IOException + * thrown whene there are problems accessing reactome reaction + * @throws ComparatorException + */ + private MatchResult checkReaction(Reaction reaction) throws IOException, ComparatorException { + String stableIdentifier = rcu.getReactomeIdentifierForReaction(reaction); + if (stableIdentifier != null) { + String identifier = stableIdentifier.split("\\.")[0]; + String version = stableIdentifier.split("\\.")[1]; + + ReactomeDatabaseObject object = rc.getFullObjectForStableIdentifier(identifier, version); + if (object != null && object instanceof ReactomeReactionlikeEvent) { + return reactionComparator.compareReactions(reaction, (ReactomeReactionlikeEvent) object); + + } else { + MatchResult result = new MatchResult(); + result.setLocalReaction(reaction); + result.setStatus(MatchStatus.INVALID_REACTOME_ID); + return result; + } + } + return null; + } + + /** + * @return the reactionComparator + */ + public ReactionComparator getReactionComparator() { + return reactionComparator; + } + + /** + * @param reactionComparator + * the reactionComparator to set + */ + public void setReactionComparator(ReactionComparator reactionComparator) { + this.reactionComparator = reactionComparator; + } + + /** + * @return the dataFormatter + */ + public DataFormatter getDataFormatter() { + return dataFormatter; + } + + /** + * @param dataFormatter + * the dataFormatter to set + */ + public void setDataFormatter(DataFormatter dataFormatter) { + this.dataFormatter = dataFormatter; + } + + /** + * @return the rc + * @see #rc + */ + public DataSourceUpdater getRc() { + return rc; + } + + /** + * @param rc + * the rc to set + * @see #rc + */ + public void setRc(DataSourceUpdater rc) { + this.rc = rc; + } + +} diff --git a/console/src/main/java/lcsb/mapviewer/run/ReactomeExport.java b/console/src/main/java/lcsb/mapviewer/run/ReactomeExport.java index 40882f8f5d..556976542d 100644 --- a/console/src/main/java/lcsb/mapviewer/run/ReactomeExport.java +++ b/console/src/main/java/lcsb/mapviewer/run/ReactomeExport.java @@ -1,616 +1,616 @@ -package lcsb.mapviewer.run; - -import java.awt.Rectangle; -import java.awt.geom.Point2D; -import java.io.IOException; -import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import lcsb.mapviewer.converter.ConverterParams; -import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; -import lcsb.mapviewer.model.map.Element; -import lcsb.mapviewer.model.map.agregator.Compartment; -import lcsb.mapviewer.model.map.layout.alias.Alias; -import lcsb.mapviewer.model.map.layout.alias.CompartmentAlias; -import lcsb.mapviewer.model.map.layout.alias.ComplexAlias; -import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; -import lcsb.mapviewer.model.map.model.Model; -import lcsb.mapviewer.model.map.reaction.AbstractNode; -import lcsb.mapviewer.model.map.reaction.Modifier; -import lcsb.mapviewer.model.map.reaction.NodeOperator; -import lcsb.mapviewer.model.map.reaction.Product; -import lcsb.mapviewer.model.map.reaction.Reactant; -import lcsb.mapviewer.model.map.reaction.Reaction; -import lcsb.mapviewer.model.map.reaction.ReactionNode; -import lcsb.mapviewer.model.map.species.ComplexSpecies; -import lcsb.mapviewer.model.map.species.Ion; -import lcsb.mapviewer.model.map.species.Protein; -import lcsb.mapviewer.model.map.species.SimpleMolecule; -import lcsb.mapviewer.model.map.species.Species; -import lcsb.mapviewer.persist.ApplicationContextLoader; -import lcsb.mapviewer.reactome.model.ReactomeDatabaseObject; -import lcsb.mapviewer.reactome.utils.DataSourceUpdater; -import lcsb.mapviewer.reactome.utils.ReactomeQueryUtil; - -import org.apache.log4j.Logger; -import org.apache.log4j.PropertyConfigurator; -import org.springframework.beans.factory.annotation.Autowired; - -/** - * This class create a data that could be used by visualized in reactome - * visualization framework. It was developed only for test purpose and has no - * real value. - */ -public class ReactomeExport { - /** - * Size of the map to vizualize. - */ - private static final int DEFAULT_SIZE = 30000; - /** - * Bounds of the map to vizualize. - */ - private static Rectangle bound = new Rectangle(0, 0, DEFAULT_SIZE, DEFAULT_SIZE); - /** - * Default class logger. - */ - private static Logger logger = Logger.getLogger(ReactomeExport.class.getName()); - - /** - * Class used for accessing reactome data. - */ - @Autowired - private DataSourceUpdater rc; - - /** - * Util class used for manipulating information in reactome objects. - */ - @Autowired - private ReactomeQueryUtil rcu; - - /** - * Static main method used to run this stand alone code. - * - * @param args - * command line arguments - */ - public static void main(String[] args) { - PropertyConfigurator.configure("src/main/webapp/WEB-INF/resources/log4j.properties"); - ReactomeExport main = new ReactomeExport(); - ApplicationContextLoader.loadApplicationContext("consoleApplicationContext.xml"); - ApplicationContextLoader.injectDependencies(main); - main.run(); - - } - - /** - * String containing the result of export. - */ - private String result = ""; - - /** - * Adds text to the output. - * - * @param str - * text to add - */ - private void print(String str) { - result += str; - } - - /** - * Identifier counter used for generating identifiers in the reactome - * visualization model. - */ - private int id = 0; - - /** - * Map between aliases in our model and identifiers that will be used in the - * reactome vizualization model. - */ - private Map<Alias, Integer> tempIds = new HashMap<Alias, Integer>(); - - /** - * Creates reactome identifier for alias. - * - * @param alias - * object for which identifier is created - * @return identifier of the alias - */ - public int addElement(Alias alias) { - int result = -1; - if (tempIds.containsKey(alias)) { - result = tempIds.get(alias); - } else { - tempIds.put(alias, ++id); - result = id; - - if (alias instanceof ComplexAlias) { - for (Alias a : ((ComplexAlias) alias).getAliases()) { - addElement(a); - } - } else if (alias instanceof CompartmentAlias) { - for (Alias a : ((CompartmentAlias) alias).getAliases()) { - addElement(a); - } - } - } - - return result; - } - - /** - * Creates file with reactome vizualization. - */ - private void run() { - CellDesignerXmlParser p = new CellDesignerXmlParser(); - try { - Model model = p.createModel(new ConverterParams().filename(PdMapAnnotations.getLastPdFilename())); - print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); - print("<Process reactomeId=\"0\">\n"); - print("<Properties>\n"); - print("<displayName>PD map</displayName>\n"); - print("</Properties>\n"); - printAliases(model); - printReactions(model); - print("</Process>\n"); - - PrintWriter writer = new PrintWriter("out/report/reactome-viewer.xml", "UTF-8"); - writer.print(result); - writer.close(); - - } catch (Exception e) { - logger.error(e.getMessage()); - e.printStackTrace(); - } - - } - - /** - * Creates representation of the aliases in the reactome visualization model. - * - * @param model - * our model to be visualized - * @throws IOException - * thrown when there are problems accessing reactome database - */ - private void printAliases(Model model) throws IOException { - print("<Nodes>\n"); - List<Alias> aliases = new ArrayList<Alias>(); - aliases.addAll(model.getAliases()); - Collections.sort(aliases, Alias.SIZE_COMPARATOR); - for (Alias alias : aliases) { - if (!aliasFeasible(alias)) { - continue; - } - int currId = addElement(alias); - Element element = null; - Map<String, String> parameters = new HashMap<String, String>(); - Map<String, String> attributes = new HashMap<String, String>(); - - attributes.put("id", currId + ""); - attributes.put("position", (int) alias.getCenterX() + " " + (int) alias.getCenterY()); - attributes.put("bounds", alias.getX().intValue() + " " + alias.getY().intValue() + " " + alias.getWidth().intValue() + " " - + alias.getHeight().intValue()); - attributes.put("textPosition", (int) alias.getCenterX() + " " + (int) alias.getCenterY()); - attributes.put("reactomeId", "0"); - - Set<Integer> components = new HashSet<Integer>(); - String type = ""; - if (alias instanceof SpeciesAlias) { - element = ((SpeciesAlias) alias).getSpecies(); - String stableIdentifier = rcu.getReactomeIdentifierForSpecies(((SpeciesAlias) alias).getSpecies()); - if (stableIdentifier != null) { - ReactomeDatabaseObject obj = rc.getFullObjectForStableIdentifier(stableIdentifier); - if (obj != null && obj.getDbId() != null) { - attributes.put("reactomeId", obj.getDbId() + ""); - } - } - parameters.put("displayName", ((Species) element).getName()); - if (alias instanceof ComplexAlias) { - for (Alias a : ((ComplexAlias) alias).getAliases()) { - components.add(addElement(a)); - } - } - } - if (alias instanceof CompartmentAlias) { - element = ((CompartmentAlias) alias).getCompartment(); - parameters.put("displayName", ((Compartment) element).getName()); - for (Alias a : ((CompartmentAlias) alias).getAliases()) { - components.add(addElement(a)); - } - } - - if (element instanceof ComplexSpecies) { - type = "org.gk.render.RenderableComplex"; - attributes.put("hideComponents", "true"); - attributes.put("textPosition", (int) alias.getCenterX() + " " + (int) (alias.getY() + alias.getHeight())); - } else if (element instanceof SimpleMolecule) { - type = "org.gk.render.RenderableChemical"; - } else if (element instanceof Ion) { - type = "org.gk.render.RenderableChemical"; - } else if (element instanceof Protein) { - type = "org.gk.render.RenderableProtein"; - } else if (element instanceof Species) { - type = "org.gk.render.RenderableEntity"; - } else if (element instanceof Compartment) { - type = "org.gk.render.RenderableCompartment"; - } else { - logger.debug("Ignoring: " + parameters.get("displayName") + "(" + element.getClass() + ")"); - continue; - } - print("<" + type); - for (String string : attributes.keySet()) { - print(" " + string + "=\"" + attributes.get(string) + "\""); - } - print(">"); - for (String key : parameters.keySet()) { - print("<" + key + ">" + parameters.get(key) + "</" + key + ">"); - } - - if (components.size() != 0) { - print("\n <Components>\n"); - for (Integer i : components) { - print(" <Component id=\"" + i + "\"/>\n"); - } - print(" </Components>\n"); - } - print("</" + type + ">\n"); - - } - print("</Nodes>\n"); - } - - /** - * Creates reactions in reactome visuazliation model from our model. - * - * @param model - * model to be visualized - * @throws IOException - * thrown when there are problems with accessing reactome database - */ - private void printReactions(Model model) throws IOException { - print("<Edges>\n"); - for (Reaction reaction : model.getReactions()) { - if (!isReactionFeasible(reaction)) { - continue; - } - int currId = ++id; - Map<String, String> parameters = new HashMap<String, String>(); - Map<Integer, String> inputs = new HashMap<Integer, String>(); - Map<Integer, String> outputs = new HashMap<Integer, String>(); - Map<Integer, String> catalysts = new HashMap<Integer, String>(); - - Map<String, String> attributes = new HashMap<String, String>(); - - attributes.put("id", currId + ""); - attributes.put("position", (int) reaction.getCenterPoint().getX() + " " + (int) reaction.getCenterPoint().getY()); - attributes.put("points", getReactionMiddlePoints(reaction)); - attributes.put("lineWidth", "1.0"); - attributes.put("reactomeId", "0"); - - parameters.put("displayName", reaction.getIdReaction()); - - String stableIdentifier = rcu.getReactomeIdentifierForReaction(reaction); - if (stableIdentifier != null) { - ReactomeDatabaseObject obj = rc.getFullObjectForStableIdentifier(stableIdentifier); - if (obj != null && obj.getDbId() != null) { - attributes.put("reactomeId", obj.getDbId() + ""); - } - } - - for (ReactionNode node : reaction.getReactionNodes()) { - Integer id = tempIds.get(node.getAlias()); - if (node instanceof Reactant) { - inputs.put(id, getInputString((Reactant) node)); - } else if (node instanceof Product) { - outputs.put(id, getOutputString((Product) node)); - } else if (node instanceof Modifier) { - catalysts.put(id, getModifierString((Modifier) node)); - } - } - - String type = "org.gk.render.RenderableReaction"; - - print("<" + type); - for (String string : attributes.keySet()) { - print(" " + string + "=\"" + attributes.get(string) + "\""); - } - print(">\n"); - print(" <Properties>\n"); - for (String key : parameters.keySet()) { - print(" <" + key + ">" + parameters.get(key) + "</" + key + ">\n"); - } - print(" </Properties>\n"); - - if (inputs.size() != 0) { - print(" <Inputs>\n"); - for (Integer i : inputs.keySet()) { - print(" <Input id=\"" + i + "\" points=\"" + inputs.get(i) + "\"/>\n"); - } - print(" </Inputs>\n"); - } - if (outputs.size() != 0) { - print(" <Outputs>\n"); - for (Integer i : outputs.keySet()) { - print(" <Output id=\"" + i + "\" points=\"" + outputs.get(i) + "\"/>\n"); - } - print(" </Outputs>\n"); - } - if (catalysts.size() != 0) { - print(" <Catalysts>\n"); - for (Integer i : catalysts.keySet()) { - print(" <Catalyst id=\"" + i + "\" points=\"" + catalysts.get(i) + "\"/>\n"); - } - print(" </Catalysts>\n"); - } - print("</" + type + ">\n"); - - } - - print("</Edges>\n"); - } - - /** - * Returns string representing modifier. - * - * @param node - * modifier in our model - * @return string representing modifier that can be used in reactome - * visualization - */ - private String getModifierString(ReactionNode node) { - String result = null; - List<Point2D> points = node.getLine().getPoints(); - for (int i = 0; i < points.size() - 1; i++) { - if (result == null) { - result = ""; - } else { - result += ", "; - } - Point2D point = points.get(i); - result += (int) point.getX() + " " + (int) point.getY(); - } - return result; - } - - /** - * Returns string representing product. - * - * @param node - * product in our model - * @return string representing product that can be used in reactome - * visualization - */ - private String getOutputString(ReactionNode node) { - for (NodeOperator tmpNode : node.getReaction().getOperators()) { - if (tmpNode.isProductOperator()) { - String result = null; - List<Point2D> points = node.getLine().getPoints(); - for (int i = points.size() - 1; i >= 0; i--) { - if (result == null) { - result = ""; - } else { - result += ", "; - } - Point2D point = points.get(i); - result += (int) point.getX() + " " + (int) point.getY(); - } - return result; - } - } - Point2D point = node.getLine().getEndPoint(); - String result = (int) point.getX() + " " + (int) point.getY(); - return result; - } - - /** - * Returns string representing reactant. - * - * @param node - * reactant in our model - * @return string representing reactant that can be used in reactome - * visualization - */ - private String getInputString(ReactionNode node) { - for (NodeOperator tmpNode : node.getReaction().getOperators()) { - if (tmpNode.isReactantOperator()) { - String result = null; - List<Point2D> points = node.getLine().getPoints(); - for (int i = 0; i < points.size(); i++) { - if (result == null) { - result = ""; - } else { - result += ", "; - } - Point2D point = points.get(i); - result += (int) point.getX() + " " + (int) point.getY(); - } - return result; - } - } - Point2D point = node.getLine().getPoints().get(0); - String result = (int) point.getX() + " " + (int) point.getY(); - return result; - } - - /** - * Check if reaction can be easily transformed into reactome vizualization - * tool. - * - * @param reaction - * reaction to be checked - * @return <code>true</code> if reaction can be easily transformed, - * <code>false</code> otherwise - */ - private boolean isReactionFeasible(Reaction reaction) { - for (ReactionNode node : reaction.getReactionNodes()) { - if (!aliasFeasible(node.getAlias())) { - return false; - } - } - int counter = 0; - for (NodeOperator node : reaction.getOperators()) { - if (node.isProductOperator()) { - counter++; - } - if (counter > 1) { - logger.debug("To many operators in the input: " + reaction.getIdReaction()); - return false; - } - } - counter = 0; - for (NodeOperator node : reaction.getOperators()) { - if (node.isReactantOperator()) { - counter++; - } - if (counter > 1) { - logger.debug("To many operators in the output: " + reaction.getIdReaction()); - return false; - } - } - counter = 0; - for (NodeOperator node : reaction.getOperators()) { - if (node.isModifierOperator()) { - logger.debug("To complicated catalyst: " + reaction.getIdReaction()); - return false; - } - } - return true; - } - - /** - * Returns string representing reaction line. - * - * @param reaction - * reaction to be transformed - * @return string representing reaction line - */ - private String getReactionMiddlePoints(Reaction reaction) { - String result = null; - NodeOperator node = null; - for (NodeOperator n : reaction.getOperators()) { - if (n.isReactantOperator()) { - node = n; - } - } - if (node != null) { - for (Point2D point : node.getLine().getPoints()) { - if (result == null) { - result = (int) point.getX() + " " + (int) point.getY(); - } else { - result += ", " + (int) point.getX() + " " + (int) point.getY(); - } - } - } else { - AbstractNode tmp = null; - for (AbstractNode reactionNode : reaction.getNodes()) { - if (reactionNode instanceof Reactant) { - tmp = reactionNode; - } - } - List<Point2D> points = tmp.getLine().getPoints(); - for (int i = 0; i < points.size(); i++) { - Point2D point = points.get(i); - if (result == null) { - result = (int) point.getX() + " " + (int) point.getY(); - } else { - result += ", " + (int) point.getX() + " " + (int) point.getY(); - } - } - } - - node = null; - for (NodeOperator n : reaction.getOperators()) { - if (n.isProductOperator()) { - node = n; - } - } - if (node != null) { - List<Point2D> points = node.getLine().getPoints(); - for (int i = points.size() - 1; i >= 0; i--) { - Point2D point = points.get(i); - if (result == null) { - result = (int) point.getX() + " " + (int) point.getY(); - } else { - result += ", " + (int) point.getX() + " " + (int) point.getY(); - } - } - } else { - AbstractNode tmp = null; - for (AbstractNode reactionNode : reaction.getNodes()) { - if (reactionNode instanceof Product) { - tmp = reactionNode; - } - } - List<Point2D> points = tmp.getLine().getPoints(); - for (int i = 0; i < points.size(); i++) { - Point2D point = points.get(i); - if (result == null) { - result = (int) point.getX() + " " + (int) point.getY(); - } else { - result += ", " + (int) point.getX() + " " + (int) point.getY(); - } - } - } - - return result; - } - - /** - * Checks if alias can be put into reactome vizualization. - * - * @param alias - * alias to check - * @return <code>true</code> if alias can be put into reactome vizualization, - * <code>false</code> otherwise - */ - public boolean aliasFeasible(Alias alias) { - Point2D point = new Point2D.Double(alias.getX(), alias.getY()); - Point2D point2 = new Point2D.Double(alias.getX() + alias.getWidth(), alias.getY() + alias.getHeight()); - if (bound.contains(point) && bound.contains(point2)) { - return true; - } - return false; - } - - /** - * @return the rc - * @see #rc - */ - public DataSourceUpdater getRc() { - return rc; - } - - /** - * @param rc - * the rc to set - * @see #rc - */ - public void setRc(DataSourceUpdater rc) { - this.rc = rc; - } - - /** - * @return the rcu - * @see #rcu - */ - public ReactomeQueryUtil getRcu() { - return rcu; - } - - /** - * @param rcu - * the rcu to set - * @see #rcu - */ - public void setRcu(ReactomeQueryUtil rcu) { - this.rcu = rcu; - } - -} +package lcsb.mapviewer.run; + +import java.awt.Rectangle; +import java.awt.geom.Point2D; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import lcsb.mapviewer.converter.ConverterParams; +import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; +import lcsb.mapviewer.model.map.Element; +import lcsb.mapviewer.model.map.agregator.Compartment; +import lcsb.mapviewer.model.map.layout.alias.Alias; +import lcsb.mapviewer.model.map.layout.alias.CompartmentAlias; +import lcsb.mapviewer.model.map.layout.alias.ComplexAlias; +import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; +import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.model.map.reaction.AbstractNode; +import lcsb.mapviewer.model.map.reaction.Modifier; +import lcsb.mapviewer.model.map.reaction.NodeOperator; +import lcsb.mapviewer.model.map.reaction.Product; +import lcsb.mapviewer.model.map.reaction.Reactant; +import lcsb.mapviewer.model.map.reaction.Reaction; +import lcsb.mapviewer.model.map.reaction.ReactionNode; +import lcsb.mapviewer.model.map.species.ComplexSpecies; +import lcsb.mapviewer.model.map.species.Ion; +import lcsb.mapviewer.model.map.species.Protein; +import lcsb.mapviewer.model.map.species.SimpleMolecule; +import lcsb.mapviewer.model.map.species.Species; +import lcsb.mapviewer.persist.ApplicationContextLoader; +import lcsb.mapviewer.reactome.model.ReactomeDatabaseObject; +import lcsb.mapviewer.reactome.utils.DataSourceUpdater; +import lcsb.mapviewer.reactome.utils.ReactomeQueryUtil; + +import org.apache.log4j.Logger; +import org.apache.log4j.PropertyConfigurator; +import org.springframework.beans.factory.annotation.Autowired; + +/** + * This class create a data that could be used by visualized in reactome + * visualization framework. It was developed only for test purpose and has no + * real value. + */ +public class ReactomeExport { + /** + * Size of the map to vizualize. + */ + private static final int DEFAULT_SIZE = 30000; + /** + * Bounds of the map to vizualize. + */ + private static Rectangle bound = new Rectangle(0, 0, DEFAULT_SIZE, DEFAULT_SIZE); + /** + * Default class logger. + */ + private static Logger logger = Logger.getLogger(ReactomeExport.class.getName()); + + /** + * Class used for accessing reactome data. + */ + @Autowired + private DataSourceUpdater rc; + + /** + * Util class used for manipulating information in reactome objects. + */ + @Autowired + private ReactomeQueryUtil rcu; + + /** + * Static main method used to run this stand alone code. + * + * @param args + * command line arguments + */ + public static void main(String[] args) { + PropertyConfigurator.configure("src/main/webapp/WEB-INF/resources/log4j.properties"); + ReactomeExport main = new ReactomeExport(); + ApplicationContextLoader.loadApplicationContext("consoleApplicationContext.xml"); + ApplicationContextLoader.injectDependencies(main); + main.run(); + + } + + /** + * String containing the result of export. + */ + private String result = ""; + + /** + * Adds text to the output. + * + * @param str + * text to add + */ + private void print(String str) { + result += str; + } + + /** + * Identifier counter used for generating identifiers in the reactome + * visualization model. + */ + private int id = 0; + + /** + * Map between aliases in our model and identifiers that will be used in the + * reactome vizualization model. + */ + private Map<Alias, Integer> tempIds = new HashMap<Alias, Integer>(); + + /** + * Creates reactome identifier for alias. + * + * @param alias + * object for which identifier is created + * @return identifier of the alias + */ + public int addElement(Alias alias) { + int result = -1; + if (tempIds.containsKey(alias)) { + result = tempIds.get(alias); + } else { + tempIds.put(alias, ++id); + result = id; + + if (alias instanceof ComplexAlias) { + for (Alias a : ((ComplexAlias) alias).getAliases()) { + addElement(a); + } + } else if (alias instanceof CompartmentAlias) { + for (Alias a : ((CompartmentAlias) alias).getAliases()) { + addElement(a); + } + } + } + + return result; + } + + /** + * Creates file with reactome vizualization. + */ + private void run() { + CellDesignerXmlParser p = new CellDesignerXmlParser(); + try { + Model model = p.createModel(new ConverterParams().filename(PdMapAnnotations.getLastPdFilename())); + print("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"); + print("<Process reactomeId=\"0\">\n"); + print("<Properties>\n"); + print("<displayName>PD map</displayName>\n"); + print("</Properties>\n"); + printAliases(model); + printReactions(model); + print("</Process>\n"); + + PrintWriter writer = new PrintWriter("out/report/reactome-viewer.xml", "UTF-8"); + writer.print(result); + writer.close(); + + } catch (Exception e) { + logger.error(e.getMessage()); + e.printStackTrace(); + } + + } + + /** + * Creates representation of the aliases in the reactome visualization model. + * + * @param model + * our model to be visualized + * @throws IOException + * thrown when there are problems accessing reactome database + */ + private void printAliases(Model model) throws IOException { + print("<Nodes>\n"); + List<Alias> aliases = new ArrayList<Alias>(); + aliases.addAll(model.getAliases()); + Collections.sort(aliases, Alias.SIZE_COMPARATOR); + for (Alias alias : aliases) { + if (!aliasFeasible(alias)) { + continue; + } + int currId = addElement(alias); + Element element = null; + Map<String, String> parameters = new HashMap<String, String>(); + Map<String, String> attributes = new HashMap<String, String>(); + + attributes.put("id", currId + ""); + attributes.put("position", (int) alias.getCenterX() + " " + (int) alias.getCenterY()); + attributes.put("bounds", alias.getX().intValue() + " " + alias.getY().intValue() + " " + alias.getWidth().intValue() + " " + + alias.getHeight().intValue()); + attributes.put("textPosition", (int) alias.getCenterX() + " " + (int) alias.getCenterY()); + attributes.put("reactomeId", "0"); + + Set<Integer> components = new HashSet<Integer>(); + String type = ""; + if (alias instanceof SpeciesAlias) { + element = ((SpeciesAlias) alias).getSpecies(); + String stableIdentifier = rcu.getReactomeIdentifierForSpecies(((SpeciesAlias) alias).getSpecies()); + if (stableIdentifier != null) { + ReactomeDatabaseObject obj = rc.getFullObjectForStableIdentifier(stableIdentifier); + if (obj != null && obj.getDbId() != null) { + attributes.put("reactomeId", obj.getDbId() + ""); + } + } + parameters.put("displayName", ((Species) element).getName()); + if (alias instanceof ComplexAlias) { + for (Alias a : ((ComplexAlias) alias).getAliases()) { + components.add(addElement(a)); + } + } + } + if (alias instanceof CompartmentAlias) { + element = ((CompartmentAlias) alias).getCompartment(); + parameters.put("displayName", ((Compartment) element).getName()); + for (Alias a : ((CompartmentAlias) alias).getAliases()) { + components.add(addElement(a)); + } + } + + if (element instanceof ComplexSpecies) { + type = "org.gk.render.RenderableComplex"; + attributes.put("hideComponents", "true"); + attributes.put("textPosition", (int) alias.getCenterX() + " " + (int) (alias.getY() + alias.getHeight())); + } else if (element instanceof SimpleMolecule) { + type = "org.gk.render.RenderableChemical"; + } else if (element instanceof Ion) { + type = "org.gk.render.RenderableChemical"; + } else if (element instanceof Protein) { + type = "org.gk.render.RenderableProtein"; + } else if (element instanceof Species) { + type = "org.gk.render.RenderableEntity"; + } else if (element instanceof Compartment) { + type = "org.gk.render.RenderableCompartment"; + } else { + logger.debug("Ignoring: " + parameters.get("displayName") + "(" + element.getClass() + ")"); + continue; + } + print("<" + type); + for (String string : attributes.keySet()) { + print(" " + string + "=\"" + attributes.get(string) + "\""); + } + print(">"); + for (String key : parameters.keySet()) { + print("<" + key + ">" + parameters.get(key) + "</" + key + ">"); + } + + if (components.size() != 0) { + print("\n <Components>\n"); + for (Integer i : components) { + print(" <Component id=\"" + i + "\"/>\n"); + } + print(" </Components>\n"); + } + print("</" + type + ">\n"); + + } + print("</Nodes>\n"); + } + + /** + * Creates reactions in reactome visuazliation model from our model. + * + * @param model + * model to be visualized + * @throws IOException + * thrown when there are problems with accessing reactome database + */ + private void printReactions(Model model) throws IOException { + print("<Edges>\n"); + for (Reaction reaction : model.getReactions()) { + if (!isReactionFeasible(reaction)) { + continue; + } + int currId = ++id; + Map<String, String> parameters = new HashMap<String, String>(); + Map<Integer, String> inputs = new HashMap<Integer, String>(); + Map<Integer, String> outputs = new HashMap<Integer, String>(); + Map<Integer, String> catalysts = new HashMap<Integer, String>(); + + Map<String, String> attributes = new HashMap<String, String>(); + + attributes.put("id", currId + ""); + attributes.put("position", (int) reaction.getCenterPoint().getX() + " " + (int) reaction.getCenterPoint().getY()); + attributes.put("points", getReactionMiddlePoints(reaction)); + attributes.put("lineWidth", "1.0"); + attributes.put("reactomeId", "0"); + + parameters.put("displayName", reaction.getIdReaction()); + + String stableIdentifier = rcu.getReactomeIdentifierForReaction(reaction); + if (stableIdentifier != null) { + ReactomeDatabaseObject obj = rc.getFullObjectForStableIdentifier(stableIdentifier); + if (obj != null && obj.getDbId() != null) { + attributes.put("reactomeId", obj.getDbId() + ""); + } + } + + for (ReactionNode node : reaction.getReactionNodes()) { + Integer id = tempIds.get(node.getAlias()); + if (node instanceof Reactant) { + inputs.put(id, getInputString((Reactant) node)); + } else if (node instanceof Product) { + outputs.put(id, getOutputString((Product) node)); + } else if (node instanceof Modifier) { + catalysts.put(id, getModifierString((Modifier) node)); + } + } + + String type = "org.gk.render.RenderableReaction"; + + print("<" + type); + for (String string : attributes.keySet()) { + print(" " + string + "=\"" + attributes.get(string) + "\""); + } + print(">\n"); + print(" <Properties>\n"); + for (String key : parameters.keySet()) { + print(" <" + key + ">" + parameters.get(key) + "</" + key + ">\n"); + } + print(" </Properties>\n"); + + if (inputs.size() != 0) { + print(" <Inputs>\n"); + for (Integer i : inputs.keySet()) { + print(" <Input id=\"" + i + "\" points=\"" + inputs.get(i) + "\"/>\n"); + } + print(" </Inputs>\n"); + } + if (outputs.size() != 0) { + print(" <Outputs>\n"); + for (Integer i : outputs.keySet()) { + print(" <Output id=\"" + i + "\" points=\"" + outputs.get(i) + "\"/>\n"); + } + print(" </Outputs>\n"); + } + if (catalysts.size() != 0) { + print(" <Catalysts>\n"); + for (Integer i : catalysts.keySet()) { + print(" <Catalyst id=\"" + i + "\" points=\"" + catalysts.get(i) + "\"/>\n"); + } + print(" </Catalysts>\n"); + } + print("</" + type + ">\n"); + + } + + print("</Edges>\n"); + } + + /** + * Returns string representing modifier. + * + * @param node + * modifier in our model + * @return string representing modifier that can be used in reactome + * visualization + */ + private String getModifierString(ReactionNode node) { + String result = null; + List<Point2D> points = node.getLine().getPoints(); + for (int i = 0; i < points.size() - 1; i++) { + if (result == null) { + result = ""; + } else { + result += ", "; + } + Point2D point = points.get(i); + result += (int) point.getX() + " " + (int) point.getY(); + } + return result; + } + + /** + * Returns string representing product. + * + * @param node + * product in our model + * @return string representing product that can be used in reactome + * visualization + */ + private String getOutputString(ReactionNode node) { + for (NodeOperator tmpNode : node.getReaction().getOperators()) { + if (tmpNode.isProductOperator()) { + String result = null; + List<Point2D> points = node.getLine().getPoints(); + for (int i = points.size() - 1; i >= 0; i--) { + if (result == null) { + result = ""; + } else { + result += ", "; + } + Point2D point = points.get(i); + result += (int) point.getX() + " " + (int) point.getY(); + } + return result; + } + } + Point2D point = node.getLine().getEndPoint(); + String result = (int) point.getX() + " " + (int) point.getY(); + return result; + } + + /** + * Returns string representing reactant. + * + * @param node + * reactant in our model + * @return string representing reactant that can be used in reactome + * visualization + */ + private String getInputString(ReactionNode node) { + for (NodeOperator tmpNode : node.getReaction().getOperators()) { + if (tmpNode.isReactantOperator()) { + String result = null; + List<Point2D> points = node.getLine().getPoints(); + for (int i = 0; i < points.size(); i++) { + if (result == null) { + result = ""; + } else { + result += ", "; + } + Point2D point = points.get(i); + result += (int) point.getX() + " " + (int) point.getY(); + } + return result; + } + } + Point2D point = node.getLine().getPoints().get(0); + String result = (int) point.getX() + " " + (int) point.getY(); + return result; + } + + /** + * Check if reaction can be easily transformed into reactome vizualization + * tool. + * + * @param reaction + * reaction to be checked + * @return <code>true</code> if reaction can be easily transformed, + * <code>false</code> otherwise + */ + private boolean isReactionFeasible(Reaction reaction) { + for (ReactionNode node : reaction.getReactionNodes()) { + if (!aliasFeasible(node.getAlias())) { + return false; + } + } + int counter = 0; + for (NodeOperator node : reaction.getOperators()) { + if (node.isProductOperator()) { + counter++; + } + if (counter > 1) { + logger.debug("To many operators in the input: " + reaction.getIdReaction()); + return false; + } + } + counter = 0; + for (NodeOperator node : reaction.getOperators()) { + if (node.isReactantOperator()) { + counter++; + } + if (counter > 1) { + logger.debug("To many operators in the output: " + reaction.getIdReaction()); + return false; + } + } + counter = 0; + for (NodeOperator node : reaction.getOperators()) { + if (node.isModifierOperator()) { + logger.debug("To complicated catalyst: " + reaction.getIdReaction()); + return false; + } + } + return true; + } + + /** + * Returns string representing reaction line. + * + * @param reaction + * reaction to be transformed + * @return string representing reaction line + */ + private String getReactionMiddlePoints(Reaction reaction) { + String result = null; + NodeOperator node = null; + for (NodeOperator n : reaction.getOperators()) { + if (n.isReactantOperator()) { + node = n; + } + } + if (node != null) { + for (Point2D point : node.getLine().getPoints()) { + if (result == null) { + result = (int) point.getX() + " " + (int) point.getY(); + } else { + result += ", " + (int) point.getX() + " " + (int) point.getY(); + } + } + } else { + AbstractNode tmp = null; + for (AbstractNode reactionNode : reaction.getNodes()) { + if (reactionNode instanceof Reactant) { + tmp = reactionNode; + } + } + List<Point2D> points = tmp.getLine().getPoints(); + for (int i = 0; i < points.size(); i++) { + Point2D point = points.get(i); + if (result == null) { + result = (int) point.getX() + " " + (int) point.getY(); + } else { + result += ", " + (int) point.getX() + " " + (int) point.getY(); + } + } + } + + node = null; + for (NodeOperator n : reaction.getOperators()) { + if (n.isProductOperator()) { + node = n; + } + } + if (node != null) { + List<Point2D> points = node.getLine().getPoints(); + for (int i = points.size() - 1; i >= 0; i--) { + Point2D point = points.get(i); + if (result == null) { + result = (int) point.getX() + " " + (int) point.getY(); + } else { + result += ", " + (int) point.getX() + " " + (int) point.getY(); + } + } + } else { + AbstractNode tmp = null; + for (AbstractNode reactionNode : reaction.getNodes()) { + if (reactionNode instanceof Product) { + tmp = reactionNode; + } + } + List<Point2D> points = tmp.getLine().getPoints(); + for (int i = 0; i < points.size(); i++) { + Point2D point = points.get(i); + if (result == null) { + result = (int) point.getX() + " " + (int) point.getY(); + } else { + result += ", " + (int) point.getX() + " " + (int) point.getY(); + } + } + } + + return result; + } + + /** + * Checks if alias can be put into reactome vizualization. + * + * @param alias + * alias to check + * @return <code>true</code> if alias can be put into reactome vizualization, + * <code>false</code> otherwise + */ + public boolean aliasFeasible(Alias alias) { + Point2D point = new Point2D.Double(alias.getX(), alias.getY()); + Point2D point2 = new Point2D.Double(alias.getX() + alias.getWidth(), alias.getY() + alias.getHeight()); + if (bound.contains(point) && bound.contains(point2)) { + return true; + } + return false; + } + + /** + * @return the rc + * @see #rc + */ + public DataSourceUpdater getRc() { + return rc; + } + + /** + * @param rc + * the rc to set + * @see #rc + */ + public void setRc(DataSourceUpdater rc) { + this.rc = rc; + } + + /** + * @return the rcu + * @see #rcu + */ + public ReactomeQueryUtil getRcu() { + return rcu; + } + + /** + * @param rcu + * the rcu to set + * @see #rcu + */ + public void setRcu(ReactomeQueryUtil rcu) { + this.rcu = rcu; + } + +} diff --git a/console/src/main/java/lcsb/mapviewer/run/VibineSnippet.java b/console/src/main/java/lcsb/mapviewer/run/VibineSnippet.java index 63122b2de2..32f4a07f0f 100644 --- a/console/src/main/java/lcsb/mapviewer/run/VibineSnippet.java +++ b/console/src/main/java/lcsb/mapviewer/run/VibineSnippet.java @@ -1,116 +1,116 @@ -package lcsb.mapviewer.run; - -import java.io.FileNotFoundException; -import java.text.DecimalFormat; -import java.util.List; - -import org.apache.log4j.Logger; - -import lcsb.mapviewer.converter.ConverterParams; -import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; -import lcsb.mapviewer.model.map.Element; -import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; -import lcsb.mapviewer.model.map.model.Model; -import lcsb.mapviewer.model.map.reaction.Reaction; -import lcsb.mapviewer.model.map.reaction.ReactionNode; - -/** - * This class is a snippet for Vibine collaboration project. It shows how to - * access our internal data structures and source files. - * - * @author Piotr Gawron - * - */ -public class VibineSnippet { - - /** - * Number of nanoseconds in second. - */ - private static final double NANOSECONDS_IN_SECOND = 1000000000.0; - - /** - * CellDesigner file on with some data that is used in this snippet (it's PD - * map from June 2015). - */ - private static final String INPUT_FILE = "testFiles/pd_full/PD_150625_3.xml"; - - /** - * Default class logger. - */ - private final Logger logger = Logger.getLogger(VibineSnippet.class); - - /** - * Main entry point to the program. - * - * @param args - * parameters with which the program was run - */ - public static void main(String[] args) { - VibineSnippet main = new VibineSnippet(); - long startTime = System.nanoTime(); - - try { - main.run(); - } catch (Exception e) { - main.logger.error(e, e); - } finally { - long endTime = System.nanoTime(); - long duration = endTime - startTime; - double sec = duration / NANOSECONDS_IN_SECOND; - System.out.println("Duration: " + new DecimalFormat("#.###").format(sec) + "s"); - } - } - - /** - * This method transform {@link #inputOptions input data}. - * - * @throws FileNotFoundException - * - * @throws Exception - * thrown when the there is a problem... - */ - private void run() throws Exception { - logger.debug("Opening file: " + INPUT_FILE); - - CellDesignerXmlParser parser = new CellDesignerXmlParser(); - Model model = parser.createModel(new ConverterParams().filename(INPUT_FILE)); - - logger.debug("File processed."); - - logger.debug("-------------------------------"); - logger.debug("Number of elements: " + model.getElements().size()); - logger.debug("Number of aliases for these elements: " + model.getAliases().size()); - - logger.debug("Number of reactions: " + model.getReactions().size()); - - logger.debug("-------------------------------"); - String speciesId = "s4351"; - String reactionId = "re332"; - Element element = model.getElementByElementId(speciesId); - - List<SpeciesAlias> aliases = model.getAliasesBySpeciesId(speciesId); - - logger.debug("Element with id: " + speciesId); - logger.debug("Element type: " + element.getClass()); - logger.debug("Element name: " + element.getName()); - logger.debug("Element is located in " + aliases.size() + " places on the map."); - logger.debug("Here are coordinates: "); - for (SpeciesAlias speciesAlias : aliases) { - logger.debug( - speciesAlias.getAliasId() + " - " + speciesAlias.getX() + "," + speciesAlias.getY() + "," + speciesAlias.getWidth() + "," - + speciesAlias.getHeight()); - } - - logger.debug("-------------------------------"); - Reaction reaction = model.getReactionByReactionId(reactionId); - - logger.debug("Reaction with id: " + reactionId); - logger.debug("Reaction has " + reaction.getReactionNodes().size() + " members."); - for (ReactionNode node : reaction.getReactionNodes()) { - logger.debug( - node.getClass().getSimpleName() + "; points to " + node.getElement().getClass().getSimpleName() + "[" + node.getElement().getElementId() + "]"); - } - logger.debug("-------------------------------"); - } - -} +package lcsb.mapviewer.run; + +import java.io.FileNotFoundException; +import java.text.DecimalFormat; +import java.util.List; + +import org.apache.log4j.Logger; + +import lcsb.mapviewer.converter.ConverterParams; +import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; +import lcsb.mapviewer.model.map.Element; +import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; +import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.model.map.reaction.Reaction; +import lcsb.mapviewer.model.map.reaction.ReactionNode; + +/** + * This class is a snippet for Vibine collaboration project. It shows how to + * access our internal data structures and source files. + * + * @author Piotr Gawron + * + */ +public class VibineSnippet { + + /** + * Number of nanoseconds in second. + */ + private static final double NANOSECONDS_IN_SECOND = 1000000000.0; + + /** + * CellDesigner file on with some data that is used in this snippet (it's PD + * map from June 2015). + */ + private static final String INPUT_FILE = "testFiles/pd_full/PD_150625_3.xml"; + + /** + * Default class logger. + */ + private final Logger logger = Logger.getLogger(VibineSnippet.class); + + /** + * Main entry point to the program. + * + * @param args + * parameters with which the program was run + */ + public static void main(String[] args) { + VibineSnippet main = new VibineSnippet(); + long startTime = System.nanoTime(); + + try { + main.run(); + } catch (Exception e) { + main.logger.error(e, e); + } finally { + long endTime = System.nanoTime(); + long duration = endTime - startTime; + double sec = duration / NANOSECONDS_IN_SECOND; + System.out.println("Duration: " + new DecimalFormat("#.###").format(sec) + "s"); + } + } + + /** + * This method transform {@link #inputOptions input data}. + * + * @throws FileNotFoundException + * + * @throws Exception + * thrown when the there is a problem... + */ + private void run() throws Exception { + logger.debug("Opening file: " + INPUT_FILE); + + CellDesignerXmlParser parser = new CellDesignerXmlParser(); + Model model = parser.createModel(new ConverterParams().filename(INPUT_FILE)); + + logger.debug("File processed."); + + logger.debug("-------------------------------"); + logger.debug("Number of elements: " + model.getElements().size()); + logger.debug("Number of aliases for these elements: " + model.getAliases().size()); + + logger.debug("Number of reactions: " + model.getReactions().size()); + + logger.debug("-------------------------------"); + String speciesId = "s4351"; + String reactionId = "re332"; + Element element = model.getElementByElementId(speciesId); + + List<SpeciesAlias> aliases = model.getAliasesBySpeciesId(speciesId); + + logger.debug("Element with id: " + speciesId); + logger.debug("Element type: " + element.getClass()); + logger.debug("Element name: " + element.getName()); + logger.debug("Element is located in " + aliases.size() + " places on the map."); + logger.debug("Here are coordinates: "); + for (SpeciesAlias speciesAlias : aliases) { + logger.debug( + speciesAlias.getAliasId() + " - " + speciesAlias.getX() + "," + speciesAlias.getY() + "," + speciesAlias.getWidth() + "," + + speciesAlias.getHeight()); + } + + logger.debug("-------------------------------"); + Reaction reaction = model.getReactionByReactionId(reactionId); + + logger.debug("Reaction with id: " + reactionId); + logger.debug("Reaction has " + reaction.getReactionNodes().size() + " members."); + for (ReactionNode node : reaction.getReactionNodes()) { + logger.debug( + node.getClass().getSimpleName() + "; points to " + node.getElement().getClass().getSimpleName() + "[" + node.getElement().getElementId() + "]"); + } + logger.debug("-------------------------------"); + } + +} diff --git a/console/src/test/java/lcsb/mapviewer/run/PdMapAnnotationsTest.java b/console/src/test/java/lcsb/mapviewer/run/PdMapAnnotationsTest.java index 587c930333..3c0f4bfef1 100644 --- a/console/src/test/java/lcsb/mapviewer/run/PdMapAnnotationsTest.java +++ b/console/src/test/java/lcsb/mapviewer/run/PdMapAnnotationsTest.java @@ -1,40 +1,40 @@ -package lcsb.mapviewer.run; - -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import java.io.File; - -import org.apache.log4j.Logger; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -import lcsb.mapviewer.run.PdMapAnnotations; - -public class PdMapAnnotationsTest { - Logger logger = Logger.getLogger(PdMapAnnotationsTest.class); - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void test() { - try { - String fileName = PdMapAnnotations.getLastPdFilename(); - assertNotNull(fileName); - File file = new File(fileName); - assertTrue(file.exists()); - } catch (Exception e) { - e.printStackTrace(); - fail("Unknown exception occurred"); - } - } - -} +package lcsb.mapviewer.run; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.io.File; + +import org.apache.log4j.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import lcsb.mapviewer.run.PdMapAnnotations; + +public class PdMapAnnotationsTest { + Logger logger = Logger.getLogger(PdMapAnnotationsTest.class); + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void test() { + try { + String fileName = PdMapAnnotations.getLastPdFilename(); + assertNotNull(fileName); + File file = new File(fileName); + assertTrue(file.exists()); + } catch (Exception e) { + e.printStackTrace(); + fail("Unknown exception occurred"); + } + } + +} diff --git a/console/testFiles/pd_full/PD_151217_2/layouts/PD substantia nigra.txt b/console/testFiles/pd_full/PD_151217_2/layouts/PD substantia nigra.txt index 8f57d5c9d2..5ed3ee8742 100644 --- a/console/testFiles/pd_full/PD_151217_2/layouts/PD substantia nigra.txt +++ b/console/testFiles/pd_full/PD_151217_2/layouts/PD substantia nigra.txt @@ -1,4342 +1,4342 @@ -# VERSION=1.0 -# NAME=PD substantia nigra +# VERSION=1.0 +# NAME=PD substantia nigra # DESCRIPTION=Differential transcriptome expression from post mortem tissue. Meta-analysis from 8 published datasets, FDR = 0.05, see PMIDs 23832570 and 25447234. -name value -GBE1 -0,943978048 -SLC18A2 -0,941309505 -KCNJ6 -0,894120983 -DLK1 -0,887122171 -PTDSS1 -0,851959645 -FGF13 -0,842876271 -PCDH8 -0,83524894 -ZNF226 -0,82900335 -SLC6A3 -0,824713365 -PIP5K1B -0,812285785 -DENR -0,81101551 -TPBG -0,806963209 -PRKAR2B -0,805288865 -OSBPL10 -0,80406299 -ALDH1A1 -0,795042129 -GGCX -0,795035797 -ACP2 -0,794853979 -SLITRK5 -0,793842132 -FAM70A -0,793715412 -HPRT1 -0,792370336 -CCNH -0,790971864 -MYRIP -0,78490295 -TUBB2A -0,783142444 -ACTR10 -0,782043082 -BASP1 -0,778702387 -CADPS2 -0,777552826 -PID1 -0,775106213 -SV2C -0,774895093 -RBM3 -0,77091551 -REEP1 -0,770000111 -RIMBP2 -0,766421185 -CNIH3 -0,765790316 -DMXL2 -0,765309344 -LOC10431 -0,762992699 -SV2B -0,759985564 -AGK -0,756506198 -RCAN2 -0,753762002 -LPPR4 -0,753018962 -RALYL -0,75270126 -L1CAM -0,751978689 -BCAS2 -0,751241508 -LOC100131795 -0,750350108 -TH -0,748260596 -AV756161 -0,747351587 -TRIM36 -0,746057792 -MPPED2 -0,743864716 -NELL2 -0,742513977 -MAGED1 -0,739190733 -LRRC49 -0,738776851 -SYNGR3 -0,734846774 -ERC2 -0,734619705 -VBP1 -0,73223558 -UQCC -0,729749962 -DCLK1 -0,725139215 -GSS -0,724321987 -OPA1 -0,723790592 -PPP2R2B -0,720892147 -COPS4 -0,720599852 -NSF -0,720580224 -DLD -0,72035948 -DYNC1I1 -0,719837984 -GABARAPL3 -0,717235008 -GPRASP1 -0,71302626 -NAP1L2 -0,712876929 -AMPH -0,711957162 -PNMAL1 -0,70952389 -RGS6 -0,706463 -LDB2 -0,704777497 -TTC19 -0,704232585 -SCN3B -0,703738866 -ATPIF1 -0,702603531 -BEX1 -0,700382911 -LMO3 -0,699029823 -TBC1D9 -0,698189481 -NDUFS1 -0,697230219 -INSM1 -0,696524737 -PARL -0,696362568 -MRPL15 -0,688780959 -C3orf14 -0,687875821 -C19orf62 -0,687403479 -PCYOX1L -0,686812669 -VRK1 -0,685016241 -MDH2 -0,684889561 -SMYD3 -0,684642724 -ASAH1 -0,68459801 -GSTA4 -0,684021936 -NDUFA9 -0,683116722 -ATP5C1 -0,682289667 -DDX25 -0,681511867 -GNG3 -0,681122999 -MUDENG -0,67996077 -SCG2 -0,679728044 -MOAP1 -0,679575281 -SYT1 -0,678979261 -ATP6V1H -0,6786546 -SHOC2 -0,677754756 -PCSK1 -0,677441918 -LBH -0,67710638 -HK1 -0,676818391 -KIAA0319 -0,676346138 -SMAP1 -0,67618103 -EHBP1 -0,675429621 -RAP1GAP2 -0,673705297 -FABP7 -0,673485271 -LRRN3 -0,6731503 -AHNAK2 -0,672875949 -DHDDS -0,671959403 -SNAPC5 -0,670824633 -C17orf108 -0,670563093 -AL390170 -0,67026906 -PTS -0,669577055 -NUDT11 -0,668061506 -HMP19 -0,66794356 -IMMT -0,667541939 -RGS4 -0,667109174 -RET -0,667088994 -PBLD -0,666164981 -AP3M2 -0,666056972 -WDR7 -0,665751643 -ATP6V0D1 -0,665487037 -RTF1 -0,664652469 -TUBB3 -0,664644351 -CHCHD2 -0,664529051 -DYNLT3 -0,663584428 -RAB6B -0,662755469 -CHGB -0,661865706 -NGFRAP1 -0,659441958 -AZIN1 -0,659394366 -EN1 -0,659313013 -SNX10 -0,659251628 -MIA3 -0,65882244 -ANK1 -0,657621479 -NR4A2 -0,65598531 -ANAPC13 -0,655864214 -RGS7 -0,654445938 -NME5 -0,652754395 -TXNDC9 -0,652019899 -PPIP5K2 -0,651763237 -RFK -0,651442652 -BE674466 -0,651048329 -PEG10 -0,650932122 -PIAS2 -0,650823358 -CUX2 -0,649970555 -SEPT6 -0,649422911 -FKBP1B -0,649416387 -C12orf10 -0,648407487 -HMGCS1 -0,648164918 -WDR61 -0,648133373 -GFPT1 -0,647751981 -MLLT11 -0,647471245 -AGTR1 -0,645674318 -CSNK1D -0,645408463 -WDR47 -0,64495088 -PSMD14 -0,644669314 -CISD1 -0,643780748 -PSMD11 -0,642982055 -KCNS3 -0,642919136 -TIMM8B -0,642730563 -RUNDC3B -0,641744336 -ANKRD6 -0,640032629 -MDH1 -0,639623665 -STMN2 -0,639070421 -BAI3 -0,638894116 -STX12 -0,638382169 -NECAP1 -0,638376593 -NIT2 -0,638223243 -CIRBP -0,637859912 -XK -0,636787355 -KIAA1797 -0,636384728 -ICMT -0,636379567 -GALT -0,636138691 -SPINT2 -0,635454321 -PAIP1 -0,634724103 -TAGLN3 -0,63459569 -CADPS -0,634245008 -GALNT11 -0,634168707 -SLC9A6 -0,632805526 -ANKRD34C -0,63217094 -COPG2IT1 -0,63213856 -VPS4B -0,63135628 -ATP6V0E2 -0,631164455 -SC5DL -0,631137699 -CNPY2 -0,630875303 -GCC2 -0,630691438 -CRYZL1 -0,63015348 -MOBKL3 -0,630076244 -SNCA -0,629316875 -STAM -0,628134338 -TUBA4A -0,627764216 -MAK16 -0,627148096 -FRY -0,626684765 -UBE2V2 -0,626378865 -RWDD2B -0,626170788 -FBXO9 -0,62572532 -FLJ41278 -0,6251633 -SLC30A9 -0,624759053 -LOC100132015 -0,623179237 -EXOG -0,622056922 -RAP1GAP -0,618803848 -DYNC1LI1 -0,618641756 -HARS -0,618639749 -NDUFA5 -0,618245275 -SPCS1 -0,618130333 -PSMB7 -0,618122572 -NETO2 -0,618103081 -ATP5G3 -0,617855025 -UCHL1 -0,617452524 -FAM127A -0,616124191 -TSSC1 -0,615619431 -CBLN1 -0,615519237 -CYB5R1 -0,615294192 -PSMG1 -0,61487171 -AKAP12 -0,614821543 -CYB561 -0,614281499 -KCND3 -0,613554227 -GABRB1 -0,613364723 -SLIT1 -0,613251897 -HN1 -0,612796898 -F8 -0,612749576 -VSNL1 -0,611517123 -ATP5A1 -0,611141848 -ARMCX5 -0,610703909 -AI097640 -0,610659067 -CERK -0,610508368 -TMX4 -0,610174408 -TSPAN13 -0,609932725 -CAMLG -0,609409157 -NDUFA7 -0,609351405 -STRAP -0,609237631 -RTCD1 -0,607502869 -ORC5L -0,606910471 -SCG5 -0,606870723 -HSPA12A -0,606863939 -VAV3 -0,606070683 -TUBB2C -0,60582666 -DCTN2 -0,605238426 -OCRL -0,604661192 -HPCAL4 -0,604023171 -ARL1 -0,604008234 -CDK14 -0,603712397 -TLK1 -0,603591955 -BLVRA -0,603201697 -NEFL -0,602887281 -SLC25A32 -0,602708801 -ATXN10 -0,602624835 -UQCRC2 -0,601726567 -SLC25A3 -0,601470752 -MYL12B -0,601373186 -CDS2 -0,601292766 -DDC -0,601079077 -BSCL2 -0,6009448 -CACNB3 -0,598982611 -RIMS3 -0,598771066 -LASS6 -0,598387226 -FIBP -0,598382328 -LRPPRC -0,598144321 -PYROXD1 -0,598012671 -MAP3K9 -0,597438703 -CHL1 -0,5969101 -FJX1 -0,596748319 -PFN2 -0,596551333 -ATMIN -0,59649395 -LIN7B -0,596058244 -AV704232 -0,595274626 -PPP2R5C -0,594797769 -SNAP91 -0,59414072 -AKT3 -0,593859242 -NDUFAB1 -0,593111219 -CCDC28A -0,59307395 -GLOD4 -0,592429097 -STXBP1 -0,591440124 -HLTF -0,591296161 -CRMP1 -0,590916915 -KIAA0513 -0,590696005 -GHITM -0,590624599 -ATP6V1B2 -0,590367192 -USP14 -0,589739205 -RNFT2 -0,589705749 -SCG3 -0,589375952 -ATP5B -0,588999541 -FAM136A -0,588982627 -UBE2N -0,588308222 -ANXA6 -0,588071667 -MRTO4 -0,58799806 -SNRK -0,587183425 -CACNA2D2 -0,587134808 -IFT57 -0,586933566 -PPP3CB -0,586906049 -RICH2 -0,586554767 -ME3 -0,586514247 -THOC7 -0,585617181 -FAM188A -0,584083221 -EIF2B3 -0,582997986 -CNTNAP1 -0,582856877 -SCRN1 -0,582791752 -ACAT1 -0,582760841 -IDI1 -0,582694626 -PBX1 -0,582658829 -CDC42 -0,582658446 -NBEA -0,582614884 -PPP1R2 -0,581839918 -ACTR6 -0,581817384 -TAF9 -0,581794162 -NIPSNAP1 -0,581711722 -SEC61A2 -0,58139821 -WDR37 -0,581272248 -VWA5A -0,581248993 -CDC27 -0,580500838 -MYT1L -0,580491453 -PSMC1 -0,580473356 -KATNB1 -0,578133005 -ZWINT -0,577661475 -C12orf24 -0,577181135 -SLC25A46 -0,577144749 -DOLK -0,576794187 -APOO -0,576716633 -GCH1 -0,576494714 -TBC1D30 -0,575582077 -DCTN3 -0,575526778 -FBXL2 -0,575141782 -KIFAP3 -0,574923419 -CMAS -0,574834972 -C18orf10 -0,574780811 -PNMA2 -0,574504978 -PDHX -0,574434123 -SAMM50 -0,574204311 -NDUFA2 -0,574087728 -NPTN -0,573534504 -HIGD1A -0,573110642 -CYC1 -0,573010558 -HMGCR -0,572959475 -TRAPPC2L -0,572517332 -IMPA1 -0,572397104 -IMPACT -0,572070372 -KIAA0802 -0,572067617 -DSTN -0,571964512 -C5orf44 -0,571958339 -CCK -0,571148184 -OGDHL -0,571078621 -TCP11L1 -0,570951095 -RNF14 -0,569913578 -IARS -0,569079443 -CDH8 -0,569072707 -RNF41 -0,568830451 -SCN3A -0,568276898 -PSMD12 -0,567936617 -TNFRSF21 -0,567631199 -FIG4 -0,566751868 -DDX24 -0,566446037 -MARK1 -0,566206858 -ATP8A2 -0,565754513 -ACLY -0,565055263 -DDX42 -0,564984354 -KIF3C -0,564949485 -PIN1 -0,564290859 -PSEN2 -0,564206755 -TERF2IP -0,564084181 -VDAC3 -0,563895581 -B3GNT1 -0,563686309 -CHN1 -0,563660153 -GLO1 -0,561564055 -RAB11A -0,561549092 -PRPS1 -0,561391557 -MAP2 -0,561080301 -NHP2 -0,56096586 -DNAJA2 -0,560780556 -NDRG4 -0,560771764 -HNRNPA0 -0,560406816 -NDUFV2 -0,559975953 -ADH5 -0,559909821 -FAM3C -0,559672666 -COPS7A -0,559265307 -SULT4A1 -0,558733244 -MATN3 -0,558346148 -TMEM14A -0,557817575 -HRASLS -0,557799459 -TMEM14B -0,557593404 -TTC1 -0,557573183 -R3HDM1 -0,557428266 -AUH -0,55725646 -C5orf22 -0,55714645 -TUBB -0,557095971 -C5orf13 -0,55663948 -COX7A2L -0,556219721 -POMP -0,556110434 -ATP5J2 -0,555267292 -ZNF204P -0,555121445 -INA -0,554984251 -NUP93 -0,55488654 -STAU2 -0,55454534 -VAT1 -0,554180752 -DDB1 -0,554146967 -THY1 -0,554057809 -SRPRB -0,553818923 -IMP4 -0,553554219 -SRP19 -0,552319097 -FUCA1 -0,551919323 -PRKCZ -0,551777138 -CD2BP2 -0,55167071 -C12orf43 -0,551436389 -SUSD4 -0,55137396 -W88821 -0,551080268 -LSM4 -0,550328209 -SNAP25 -0,550276399 -ACSL6 -0,549806401 -MYH10 -0,549550685 -DDHD2 -0,548942799 -PRKACA -0,548422775 -CHRNB3 -0,547701041 -NEFM -0,547618123 -PLD3 -0,547495065 -GSPT2 -0,547329995 -ATP6V1E1 -0,546911033 -GABBR2 -0,546899558 -IPW -0,546596796 -SCAMP5 -0,546380917 -RFPL1S -0,545994554 -BSN -0,545979557 -MAGI1 -0,54490486 -DRG1 -0,544733954 -PITPNB -0,544704547 -LETMD1 -0,544636809 -AI263044 -0,544470885 -STOML1 -0,544383238 -GBAS -0,544103215 -RAB3GAP1 -0,543092086 -ACTG1 -0,54300405 -PPME1 -0,542943175 -AFG3L2 -0,542490245 -DNAJC6 -0,541912283 -TUBA1B -0,541625287 -ABCE1 -0,541581351 -ARF3 -0,541401116 -SRSF3 -0,54134715 -NEFH -0,540578844 -ADK -0,540377244 -TIMM17A -0,540158649 -ELOVL6 -0,540054201 -FAM189A1 -0,539987546 -ATP6V1A -0,539816156 -OAT -0,53960074 -KIAA0284 -0,539436564 -SLC25A12 -0,538986194 -AP3D1 -0,538816413 -ISCU -0,53848727 -CDH10 -0,538458105 -APEH -0,538385859 -TMEM35 -0,537944022 -NDFIP1 -0,537769873 -U79277 -0,537586945 -SYNGR1 -0,53757151 -MEAF6 -0,537175986 -DNM1 -0,536361784 -DEF8 -0,536162488 -PDXK -0,536128962 -RIT2 -0,536060129 -AACS -0,535868362 -RAB3A -0,535840143 -LXN -0,535676847 -CCBL2 -0,53559953 -ATXN7L3B -0,535570224 -RCN2 -0,535264733 -SDC2 -0,535187449 -NRXN3 -0,534911729 -SDC1 -0,534748047 -PSMD1 -0,534162775 -UBA5 -0,534098166 -PEX11B -0,533915774 -RAP1GDS1 -0,533764019 -NUPL1 -0,533680375 -ARMCX1 -0,533607326 -SDHAP1 -0,533209621 -PJA2 -0,532853246 -ACOT7 -0,532662038 -SEZ6L -0,532618647 -CELF2 -0,532603645 -CXorf40A -0,532513065 -NDUFB5 -0,532279155 -GARS -0,532224902 -NRG1 -0,532009485 -SEC31B -0,53180843 -ME1 -0,531466374 -PSMD8 -0,531445018 -MSL1 -0,531268404 -PCLO -0,531166247 -RAB14 -0,531006634 -MAGED2 -0,530858407 -EIF3K -0,530846086 -MMD -0,530845303 -MYO5A -0,530805656 -NCRNA00094 -0,530597959 -KIAA1107 -0,53057188 -KIAA0564 -0,530294183 -PSMB2 -0,530140819 -C1orf114 -0,530111522 -GCLM -0,529867963 -NDN -0,529086871 -SRD5A1 -0,528786683 -DNAJB9 -0,528374918 -SLC7A8 -0,528181836 -CLIP3 -0,527794519 -NDUFB1 -0,527724864 -CLSTN2 -0,52726691 -C14orf156 -0,527148764 -CIAPIN1 -0,527136633 -ATP5F1 -0,527047789 -PSMB5 -0,526841307 -FAM32A -0,526499611 -KIAA1644 -0,526147045 -RTN1 -0,526062751 -EXOSC9 -0,525622526 -PFKM -0,525053758 -TCF25 -0,524910517 -ATP5O -0,524889972 -PTPRN2 -0,524794642 -SNX4 -0,524373257 -ATP6V1G2 -0,524016622 -SLC35E3 -0,523930118 -SLC2A6 -0,52364368 -SUCLA2 -0,523588063 -PLCB1 -0,523263994 -TMEM30A -0,521872901 -PDE4D -0,521870014 -RAB5A -0,521632556 -MAPK9 -0,521572661 -CAP2 -0,521120749 -RPS6KA3 -0,520660932 -GNAO1 -0,520506337 -PSMD6 -0,520132666 -TBCE -0,519679173 -C9orf125 -0,519623009 -MN1 -0,51937171 -MFSD1 -0,51842841 -KIF3A -0,518357676 -SHFM1 -0,517546292 -NRIP3 -0,516545986 -ANKMY2 -0,516365077 -CDK5 -0,516196782 -REEP5 -0,516165841 -SLC1A1 -0,516141732 -UBE2K -0,516036367 -SMEK2 -0,515537555 -PI4K2A -0,515462049 -TTC39A -0,514924765 -GUCY1B3 -0,514788287 -QPCT -0,514170797 -ST6GALNAC5 -0,514077764 -ATP6V1F -0,513941613 -HSD17B12 -0,513489073 -PPFIA2 -0,51321383 -PLCH1 -0,512855521 -CNTN6 -0,512564243 -ENTPD6 -0,512350634 -ALAS1 -0,512141897 -RUNDC3A -0,511994377 -PCMT1 -0,511547085 -IDS -0,511290223 -PLEKHB2 -0,510964275 -CDO1 -0,510668427 -NDUFB6 -0,510219117 -COX6C -0,509869079 -OPTN -0,509603205 -PSMA1 -0,509510596 -STS -0,509361214 -TIMM10 -0,509318807 -C1D -0,509252454 -GAP43 -0,509215292 -CCDC6 -0,509150548 -TRIM37 -0,509012308 -ATP2B2 -0,508803511 -PGAM1 -0,50863259 -GGNBP2 -0,508616013 -SRP72 -0,508482078 -TCEAL2 -0,508464868 -SV2A -0,508330914 -CDK5R2 -0,508227652 -FHOD3 -0,508155146 -FECH -0,508046235 -ATP2A3 -0,507932978 -SUB1 -0,507787459 -ACO2 -0,507726776 -C20orf3 -0,507526055 -SEC22B -0,507453281 -VPS35 -0,507278509 -MRPS33 -0,507141908 -TXNL4A -0,50704416 -ARHGEF9 -0,506224253 -RBM9 -0,506096633 -TMEM135 -0,506088817 -UHRF1BP1L -0,505757524 -ME2 -0,505446593 -BZRAP1 -0,505378895 -MCAT -0,50534007 -AKAP6 -0,505213579 -COPS3 -0,505110121 -MRPS35 -0,505107922 -YWHAB -0,505015581 -PEX7 -0,504955276 -COPS8 -0,504746043 -OXCT1 -0,504643125 -MAD2L1 -0,504589351 -MCTS1 -0,504510155 -LGALS8 -0,50448664 -ACP1 -0,504339709 -MX1 -0,50393674 -NCALD -0,50389725 -TASP1 -0,503797818 -AGTPBP1 -0,503605082 -RNF128 -0,503554068 -PSMD13 -0,503503704 -TXN -0,50336484 -NHLH2 -0,50325399 -USP12 -0,503149229 -PFDN4 -0,502988386 -NAP1L3 -0,502893901 -MRPL20 -0,502624211 -ACSL3 -0,502355771 -MTPAP -0,502307088 -PMPCB -0,502239978 -SH3GL3 -0,502227406 -API5 -0,502196949 -CAPNS1 -0,5020898 -YWHAZ -0,501747483 -TOMM70A -0,501591565 -STX18 -0,501503813 -HNRNPK -0,501464694 -LRP1B -0,501433491 -CDC123 -0,500993468 -DCTN6 -0,500740808 -VAPB -0,500599356 -CCDC56 -0,499906136 -GOT2 -0,499477446 -RHEB -0,499343134 -PSMD2 -0,499333749 -YPEL5 -0,49910251 -ATP5G1 -0,499077107 -TUBA1A -0,498949544 -GSTM3 -0,498766376 -EPB41L1 -0,498605796 -EPS15 -0,498447403 -ENO2 -0,498261848 -ASMTL -0,498100631 -FH -0,498098378 -CLTC -0,497596743 -PSMA3 -0,497405846 -UROS -0,497291028 -OLFM1 -0,496832922 -ATP6V1G1 -0,496818916 -B3GALNT1 -0,496135395 -PHLPP2 -0,496077027 -TSPYL1 -0,495383913 -SERINC1 -0,49538338 -RPL15 -0,495355843 -ITFG1 -0,495195881 -PDHB -0,494999933 -RABL3 -0,494855325 -TMEM22 -0,49462563 -MCFD2 -0,494506103 -GABARAPL1 -0,494373853 -MAGEL2 -0,493987847 -VPS33B -0,493750355 -CDIPT -0,493440531 -ATP6V0B -0,493438352 -CLGN -0,493358721 -SEC23A -0,493255831 -C7orf43 -0,49286586 -ARL3 -0,492481932 -SLC12A5 -0,492392187 -LAPTM4B -0,492348426 -LOC285359 -0,492290998 -LARP1 -0,49192011 -YME1L1 -0,491725992 -RAB2A -0,491586306 -SPATA20 -0,490991626 -ASH2L -0,490785052 -PTBP2 -0,490747846 -WTAP -0,490599757 -NANS -0,490410248 -SCFD1 -0,490269997 -EPB49 -0,489916122 -TUFT1 -0,489843226 -POP4 -0,489594415 -CACNA1G -0,489236615 -PRPF19 -0,48917604 -NCOA4 -0,488872014 -C1orf216 -0,488856307 -TXNL1 -0,488777426 -AMPD2 -0,48875487 -ASL -0,488300478 -PFDN1 -0,48807629 -EXTL2 -0,488020888 -RPA3 -0,48773487 -ACVR1B -0,487609726 -ANKRD46 -0,487476076 -GRIA1 -0,48726366 -PSMB6 -0,487099126 -CAPRIN2 -0,486969775 -SRGAP3 -0,48684289 -ARPC5L -0,486786621 -PSME3 -0,486309204 -NME2 -0,486066455 -ISCA1 -0,485683262 -ZNF365 -0,485504618 -PINK1 -0,485341061 -RWDD2A -0,48504437 -EXOC1 -0,484927354 -ECE2 -0,484617735 -WDR77 -0,484600271 -AI890972 -0,484490353 -ERBB4 -0,484253264 -PSMD4 -0,483962197 -RAB6C -0,483864006 -CSTF3 -0,483798153 -NIPA2 -0,483638091 -AK5 -0,483482302 -C17orf91 -0,483141592 -INPP4B -0,482534933 -PJA1 -0,482372063 -BE551361 -0,482367089 -B4GALT5 -0,48224903 -MTX2 -0,481915827 -MGST3 -0,481667788 -TRMT11 -0,481613419 -PTPRN -0,481522612 -DNAJC12 -0,48150495 -FTSJ2 -0,481162212 -CCT8 -0,48112028 -PGAP1 -0,481030935 -SLC25A44 -0,480898127 -AMIGO2 -0,480319409 -SCAMP1 -0,480275681 -RBKS -0,480222 -SYN1 -0,48014199 -APEX1 -0,479680328 -AL157484 -0,4790893 -PAK3 -0,479026618 -SLC25A13 -0,478484409 -EIF1B -0,478403329 -DLAT -0,478235597 -AI375694 -0,47804406 -PMS2L1 -0,477748782 -DYNC2LI1 -0,477528415 -RANBP9 -0,477445784 -PTPN20A -0,476653786 -ZMYM4 -0,476508652 -UQCRQ -0,476353248 -EXOSC7 -0,476299374 -NDUFB3 -0,476207507 -LCMT1 -0,476121484 -ZNF547 -0,47597802 -TBCA -0,475802982 -MAPK8IP3 -0,475554385 -N80935 -0,475378775 -SLC4A3 -0,475327531 -AASDHPPT -0,475086681 -CAND2 -0,475049952 -CXorf40B -0,474988185 -FXYD6 -0,47456179 -RNF10 -0,474499733 -ELOVL4 -0,474412575 -AAK1 -0,474378982 -SEH1L -0,474159291 -PTPRU -0,473978747 -LPGAT1 -0,473432618 -VPS24 -0,473360696 -MCF2 -0,473341916 -FAR2 -0,473007144 -CKMT1A -0,472884518 -TMED3 -0,472883274 -RNASEH1 -0,47283341 -NDUFA3 -0,472657747 -GLS -0,472644869 -FAM168A -0,472617309 -KLHDC10 -0,472577269 -GLRX5 -0,472478522 -SYT17 -0,472292582 -PAM -0,472018566 -CLTB -0,471770785 -COPS2 -0,470912718 -DDA1 -0,470419616 -PCSK2 -0,470372976 -SLC25A6 -0,470332168 -TPI1 -0,470300584 -MECR -0,47026417 -ORC4L -0,47025895 -ITPR1 -0,470228063 -HMG20A -0,470060529 -GNB5 -0,470039178 -TMEM208 -0,469963608 -NCAPG -0,469752447 -GLRB -0,469638821 -ATP6V1D -0,469577982 -AKAP11 -0,469501191 -SH3GL2 -0,46948768 -NISCH -0,469445416 -SIPA1L1 -0,469275377 -PFKP -0,469125064 -LYRM4 -0,469088537 -SLC4A1AP -0,46898494 -AP2A2 -0,468669242 -CX3CL1 -0,46850557 -WBP11 -0,468444743 -LASP1 -0,468444317 -GOT1 -0,468375399 -C6orf120 -0,468133996 -SPAG7 -0,468070563 -SERGEF -0,467688975 -TFB2M -0,4675501 -AP3B2 -0,467537408 -PAFAH1B1 -0,467362101 -BPGM -0,467130793 -CRAT -0,466839519 -DDX1 -0,466770911 -ADAM23 -0,46652833 -ASB6 -0,466473575 -PCDHA1 -0,466456945 -TUSC3 -0,465574044 -TCEA2 -0,465512943 -SMARCA4 -0,4653413 -DAPK1 -0,465142929 -DBNDD1 -0,464965333 -NDUFC2 -0,464959656 -IDH3B -0,464778307 -CDC37L1 -0,464692992 -WDR11 -0,464429092 -CD200 -0,464378251 -TUSC2 -0,464289641 -IRGQ -0,464009317 -CALY -0,463919598 -NNT -0,463872117 -MSH2 -0,463745236 -GYG1 -0,463657489 -FAM134C -0,463380379 -RTN2 -0,463379977 -RBM12 -0,463289569 -SYNJ1 -0,463207762 -ABCA5 -0,462881594 -ENTPD4 -0,462777994 -MAP2K4 -0,462732144 -AIMP2 -0,46256199 -PITPNA -0,462484131 -BNIP3 -0,461982272 -COPS5 -0,461956463 -BRE -0,461910476 -MIR21 -0,461667267 -ATP5S -0,46152488 -SIN3B -0,461515059 -NAT10 -0,461457105 -MTCH2 -0,461117099 -ACHE -0,461032229 -PSD3 -0,46079613 -UCHL3 -0,460466303 -SMPX -0,459975528 -USP11 -0,459753441 -RNF187 -0,459566796 -AAGAB -0,458932639 -ENY2 -0,458770966 -NDEL1 -0,458614173 -FAM184A -0,458384449 -TOX4 -0,458204483 -SLC25A15 -0,458110832 -SACM1L -0,458050139 -ADARB1 -0,458034616 -SPHK2 -0,457781426 -CES2 -0,457687554 -CYFIP2 -0,457201169 -KPNA2 -0,457034156 -ACTR1A -0,456856222 -SLC25A22 -0,456321526 -DPYSL3 -0,456025294 -PRKAR1A -0,455984698 -SIDT1 -0,455560984 -TIPRL -0,455474112 -EIF5 -0,455347544 -C16orf58 -0,455176502 -RAB7A -0,454946879 -MFSD6 -0,454914435 -NDUFS2 -0,454605666 -APOOL -0,454580027 -GNB1 -0,454284789 -SARS -0,454282127 -PIK3R3 -0,454240907 -SERINC3 -0,454097365 -ST3GAL5 -0,45407104 -DHRS11 -0,453695947 -NEDD8 -0,45367218 -RAB15 -0,453664346 -HSPA13 -0,453577406 -OLA1 -0,453153228 -C3orf18 -0,45312023 -AF131844 -0,453027105 -C12orf52 -0,452914604 -ACBD3 -0,452894377 -PCIF1 -0,452240197 -BMP2K -0,451224584 -TSPYL5 -0,450674174 -SEC63 -0,450642641 -C7orf44 -0,450408444 -PWP1 -0,450360796 -SLC25A14 -0,45012674 -SYP -0,449768016 -PRKCB -0,449564151 -KIF2A -0,449276369 -PEX26 -0,449100108 -SDHA -0,448617251 -PITRM1 -0,448602767 -PPA2 -0,448269554 -MAN2A2 -0,448177121 -FAM49A -0,448170721 -KCTD9 -0,448062861 -REEP2 -0,44801948 -NDUFS3 -0,447803075 -CHGA -0,447356315 -UBE2E3 -0,447311178 -LOC595101 -0,447006376 -RNF170 -0,446698112 -TMCO1 -0,446651514 -PCCB -0,446640741 -RAB1A -0,44645249 -ATP1A1 -0,446309137 -KIAA1045 -0,446174802 -CASD1 -0,445992918 -C3orf37 -0,445975885 -RAD17 -0,445659766 -BBS4 -0,445631347 -TBC1D19 -0,445509157 -TSG101 -0,445289202 -DKK3 -0,445181251 -KCNQ2 -0,444911548 -EIF4E -0,44477948 -LOC100134209 -0,444742688 -OSTF1 -0,444651424 -PPCS -0,444330494 -ATP13A2 -0,443924538 -DHRS7B -0,443866868 -TSN -0,443785273 -AI201594 -0,443780197 -UBE2J1 -0,443536878 -C12orf51 -0,443320039 -INPP5F -0,44324612 -KIAA0391 -0,443138749 -NDUFB8 -0,442168118 -COX8A -0,442151263 -PLCB4 -0,442128902 -UQCRC1 -0,442055114 -RNMT -0,442010619 -PSMB4 -0,441631296 -ATP9A -0,441570839 -COMMD8 -0,441419712 -STX7 -0,441415012 -UQCRFS1 -0,441387219 -ARMC8 -0,441335025 -USP33 -0,441131902 -SC4MOL -0,441051846 -AVL9 -0,440604375 -CORO1C -0,440555184 -ATP6V0A1 -0,440500219 -AKTIP -0,440321706 -C11orf49 -0,440065839 -ACCN1 -0,439959618 -DYNC1H1 -0,439954428 -RTN4 -0,439926435 -IFT52 -0,439664934 -ARIH1 -0,439616652 -SLC23A2 -0,439279622 -FDPS -0,439263979 -ZW10 -0,439088192 -C6orf211 -0,438493952 -CAPZA2 -0,438442617 -TRIM9 -0,43841496 -PANK2 -0,438226487 -SLC25A36 -0,437878589 -TM7SF2 -0,437751686 -GPD1L -0,437274057 -TM2D3 -0,437156245 -TBC1D22A -0,436837159 -AFF2 -0,436678505 -PSMA4 -0,43652406 -SCAPER -0,436328183 -KPNB1 -0,43624217 -C8orf33 -0,436164892 -RRAS2 -0,435924543 -PNMA1 -0,435862986 -DRD2 -0,435854058 -CCDC92 -0,435740221 -CYB5B -0,435703661 -DNM1L -0,435497666 -FAM98A -0,435109538 -CYCS -0,43500707 -UBE2B -0,434857087 -DCTPP1 -0,434751269 -ENC1 -0,434576571 -SAP18 -0,434463135 -MED7 -0,43446171 -UBXN6 -0,433506891 -MAEA -0,433493136 -C20orf27 -0,433220759 -ARFGEF2 -0,4331108 -FKBP9 -0,433030189 -COQ10B -0,432955202 -SNRNP25 -0,432902395 -PHKB -0,432809153 -CETN2 -0,432732838 -PIK3R4 -0,432641256 -EFR3A -0,432263211 -FAM162A -0,432255742 -LOC732160 -0,432226821 -SRPK2 -0,432044566 -USP9X -0,431489845 -DENND2A -0,431031563 -PPP2CA -0,430950806 -CHST1 -0,430892555 -OSBPL9 -0,430720865 -TPM3 -0,430527364 -UGP2 -0,430314768 -AL049387 -0,430134526 -ARHGDIG -0,429952838 -GPR161 -0,429932801 -HGSNAT -0,429440496 -TCEAL4 -0,429402449 -KHDC1 -0,429285977 -SPATA7 -0,428924113 -NIPSNAP3B -0,428922472 -NHP2L1 -0,42870798 -BZW2 -0,428685674 -BZW1 -0,428658261 -ABCF3 -0,428526247 -PEX19 -0,428349422 -POLR2K -0,42820853 -FAM134B -0,428156057 -TUBGCP4 -0,428150919 -CSNK2A1 -0,427824997 -PPP2R5D -0,427719013 -CEND1 -0,427667723 -RNF11 -0,427514623 -EBNA1BP2 -0,427275229 -SDHC -0,42690156 -ATP6AP2 -0,426823582 -MAPK1 -0,426681157 -YTHDC2 -0,425950246 -ACTR3B -0,425721173 -LRRC47 -0,424928312 -ANO10 -0,424906321 -MORF4L2 -0,424702281 -NAE1 -0,424669605 -GRSF1 -0,424576498 -UBE3C -0,42455123 -RRM1 -0,424268285 -IARS2 -0,424201991 -HINT1 -0,423973896 -B4GALT7 -0,423964657 -OBSL1 -0,423852756 -RPH3A -0,423713255 -PTPRM -0,423526608 -TRAP1 -0,423405292 -GSTO1 -0,423136683 -PGK1 -0,423107749 -KCTD2 -0,423033005 -AKAP9 -0,423014145 -KIAA0090 -0,422971022 -NIF3L1 -0,422805913 -SAE1 -0,422487927 -TRAPPC4 -0,422454822 -UBE3B -0,422322842 -MRPL13 -0,422291395 -ARF1 -0,422218883 -NCKAP1 -0,421739152 -COX11 -0,421717769 -XPA -0,421552598 -FKBP11 -0,421544606 -ZFAND1 -0,42136139 -RUSC1 -0,421250909 -PSMC2 -0,42099626 -MCM4 -0,420976269 -HEXA -0,420954607 -PDE4A -0,420795908 -VPS45 -0,420785909 -OGFOD1 -0,420640442 -ADPGK -0,420505817 -AP2M1 -0,420467875 -PSMD5 -0,420139323 -PGRMC1 -0,420109613 -CLASP2 -0,419942702 -CAMTA1 -0,419843296 -COX5A -0,419753275 -BCAP29 -0,419678508 -C21orf59 -0,419586484 -INSIG1 -0,419347593 -NDUFAF1 -0,419256514 -SNCG -0,419205938 -NCAN -0,418993508 -SLC24A3 -0,418714364 -MAP2K1 -0,418679322 -BRCC3 -0,418660516 -MYCBP2 -0,418420128 -PREPL -0,41818051 -TUFM -0,418149804 -LYRM2 -0,41810337 -ORC3L -0,417994092 -TSR2 -0,417894679 -SLC41A3 -0,41774061 -DZIP3 -0,417712026 -MRPS11 -0,417644175 -B4GALT6 -0,41761846 -CHD5 -0,417472 -TUBA1C -0,417351982 -OTUB1 -0,41729395 -DCAF6 -0,417154254 -UQCR10 -0,417021115 -BEX4 -0,416948363 -RTN3 -0,416868526 -GOLT1B -0,416408995 -MRPL3 -0,416396676 -DDX19A -0,416375948 -C4orf41 -0,416356919 -SEMA3G -0,416349944 -TUBA3D -0,416216957 -B4GALNT1 -0,415958605 -TOR1A -0,415819164 -SUPT16H -0,415597727 -ACTR3 -0,415469056 -ABCB9 -0,415410201 -SERF1B -0,415262572 -PSMC6 -0,415072747 -GALNT2 -0,414525722 -ARF5 -0,414370994 -TCEB1 -0,414262524 -FEN1 -0,414164817 -HS2ST1 -0,413801139 -FBXL15 -0,413238338 -ANAPC10 -0,413161353 -MAPK10 -0,413048251 -FGF12 -0,412576909 -GTF2B -0,412561968 -CALM3 -0,412474461 -C12orf5 -0,412385409 -BTRC -0,412323302 -UBXN8 -0,411884422 -G6PC3 -0,411853401 -MARK4 -0,411850043 -SDHB -0,411814414 -FXC1 -0,411804756 -KIAA1467 -0,411406746 -COL4A3BP -0,411372338 -MADD -0,411317373 -SLC25A11 -0,411257994 -APBB3 -0,411242683 -LDHB -0,411172229 -ENTPD3 -0,410988615 -CAMK2B -0,410817586 -C15orf24 -0,410807275 -RAB11FIP5 -0,410722406 -C18orf1 -0,410410534 -IL13RA2 -0,410393436 -TMEFF1 -0,40994415 -TAX1BP1 -0,409905258 -ABHD11 -0,409662969 -SETD4 -0,409479623 -NARS -0,409352949 -LOC441259 -0,409193342 -SMAD2 -0,408937637 -MAGEH1 -0,408820062 -LPIN2 -0,408744346 -WRB -0,408371938 -HSPB11 -0,408269901 -COMMD9 -0,407620354 -RMND1 -0,407542555 -RBP1 -0,407484296 -TSPAN7 -0,407465467 -YKT6 -0,407243851 -ATP5L -0,407238078 -STAT1 -0,407123963 -SPTAN1 -0,407085674 -SLBP -0,407034029 -FAM115A -0,407018502 -ATP1B1 -0,407007242 -GIN1 -0,406994648 -SLC25A4 -0,406703055 -RPAP3 -0,40653888 -ELAVL4 -0,406510215 -LDHA -0,406394191 -GABRG2 -0,406143723 -ACOT1 -0,406088493 -LZTFL1 -0,406077259 -LARP4 -0,406073312 -PTPRG -0,405852123 -DIRAS2 -0,405793372 -SNCB -0,405789504 -CDS1 -0,405765281 -ARL2BP -0,405758176 -BCL2L13 -0,405729545 -STAT4 -0,405634359 -C17orf75 -0,405632179 -ELAVL2 -0,405590653 -DNM3 -0,405342092 -SNX16 -0,404866663 -TACO1 -0,40485549 -HPGD -0,404805074 -CHMP2B -0,404775945 -DPP8 -0,404495701 -SYBU -0,403649563 -CHP -0,403478973 -GTF2H5 -0,403475179 -PPP2R5B -0,403191055 -TRAK1 -0,402996995 -ACSL4 -0,402921692 -RABGAP1L -0,402883713 -PSMB3 -0,402864552 -ASTN1 -0,402784524 -TIMM23B -0,402679864 -NDUFC1 -0,402669713 -GPM6A -0,402645229 -NCDN -0,402391637 -TMEM183A -0,402206694 -LACTB2 -0,402125728 -SFPQ -0,401934429 -SLC1A4 -0,401903736 -LOC731884 -0,401617561 -TTC3 -0,401599425 -APBA1 -0,401587582 -FAM20B -0,401527926 -ISOC1 -0,401479145 -TMEM70 -0,401425176 -GLUD1 -0,401204073 -NDUFA4 -0,401152135 -SHANK2 -0,401076931 -NDUFA6 -0,400922451 -FAM128A -0,400907344 -TSNAX -0,400758374 -BLCAP -0,400561763 -WASF3 -0,400514139 -MTMR6 -0,400412018 -CBARA1 -0,399961135 -SMCR7L -0,399645568 -REXO2 -0,399637796 -ASTN2 -0,399013865 -FBXO31 -0,398919379 -MRPS10 -0,398754479 -GNAL -0,398117434 -RDH11 -0,398104472 -ANKH -0,398086916 -EPHA5 -0,397910595 -DPY19L2P2 -0,397861593 -NRXN1 -0,39777997 -FOXA1 -0,397622781 -AGGF1 -0,397583973 -CLCN6 -0,397581706 -PRKAG1 -0,397496639 -GRM5 -0,397456403 -BCAT1 -0,397331444 -MAP1LC3B -0,397317027 -HMGCL -0,397130437 -IFIT5 -0,397045055 -FAM82B -0,397007464 -TMEM189-UBE2V1 -0,39671729 -TMEM160 -0,396535704 -PIGZ -0,396390486 -VDAC2 -0,3962914 -BCAP31 -0,396227306 -CUL2 -0,395939867 -C5orf30 -0,395902062 -VAMP4 -0,395520757 -CLTA -0,395495699 -NOS1AP -0,395452681 -YWHAH -0,395414553 -AGL -0,39537715 -PPIA -0,395286888 -POLR2E -0,395239973 -FAM190B -0,395231307 -CAND1 -0,395218949 -DIABLO -0,395167608 -FAM155A -0,395099838 -FAM174B -0,394929763 -ABCA11P -0,394841999 -LMF1 -0,394801997 -EIF3I -0,394774336 -RRAGA -0,39363313 -SLC25A5 -0,39336993 -BTBD3 -0,393323586 -SLC38A6 -0,393193457 -TSPYL4 -0,39289974 -NDUFA8 -0,392898828 -ERI3 -0,392853573 -CDH11 -0,392815946 -VPS11 -0,392712183 -RPP40 -0,39270293 -SMS -0,392616216 -USP4 -0,39251437 -RAN -0,392486577 -SYT11 -0,392234251 -SEC23IP -0,392233152 -SUPV3L1 -0,392124663 -TOX3 -0,392048323 -OSBPL3 -0,391742979 -ATP5J -0,391738382 -APC -0,391687772 -EIF2AK2 -0,391678642 -MPPE1 -0,391534871 -CHD3 -0,391021702 -BE858194 -0,390954653 -GPN2 -0,390821549 -TMEM97 -0,39059622 -BRF2 -0,390477924 -NSDHL -0,390017568 -LOC654342 -0,389476483 -SATB1 -0,389035394 -RPP14 -0,388984247 -C16orf68 -0,388858051 -PHF14 -0,388842446 -CKAP5 -0,388699527 -MMADHC -0,388406258 -MEST -0,388313548 -UQCRH -0,387974488 -GBAP1 -0,387823169 -PMPCA -0,387778282 -TMEM41B -0,387668262 -SCLY -0,387620138 -OXA1L -0,387520115 -CLPX -0,387517816 -EML1 -0,387443167 -DPP6 -0,387318033 -FBXO3 -0,387294212 -GAPDH -0,386769027 -ATP6V1C1 -0,386766958 -PRAF2 -0,386484628 -NAA35 -0,386425969 -EIF4H -0,386302469 -SGSH -0,386196526 -CLCN3 -0,386084887 -SMARCA1 -0,385880429 -FAM158A -0,385760557 -AP3S2 -0,385712457 -EIF1AX -0,385367803 -RNF115 -0,385287305 -GPI -0,385266179 -SEC62 -0,385020013 -G3BP2 -0,384968143 -NDUFV1 -0,38487232 -C19orf42 -0,384758261 -BEND5 -0,384699839 -KCNAB2 -0,384620267 -EVL -0,384619104 -MTMR9 -0,384460721 -SIRT3 -0,384239932 -CNIH -0,383916854 -TOLLIP -0,383913386 -C11orf2 -0,383735535 -NUDCD3 -0,383703548 -MED4 -0,383545823 -RABGEF1 -0,38353381 -PTN -0,383407974 -GBF1 -0,383365739 -C1orf163 -0,383317238 -LOC100129361 -0,383315417 -CUL4B -0,383032231 -OXR1 -0,382758654 -TRIM33 -0,382726006 -GPC5 -0,382713696 -C11orf51 -0,382673891 -MAN1C1 -0,382595078 -FGF9 -0,382294616 -SPOCK2 -0,382267861 -GLMN -0,382038722 -MPP1 -0,381567886 -KIF21B -0,381555674 -RND1 -0,381481938 -PEX1 -0,381462705 -C2orf34 -0,381417191 -OTUD3 -0,381344145 -MSRB2 -0,381206334 -CCDC85B -0,38118283 -RGS3 -0,380621769 -SERPINI1 -0,380596066 -C14orf2 -0,380470075 -IDH3G -0,380458518 -POLR2C -0,380378788 -CTNNA2 -0,380377628 -XRCC6 -0,380295972 -EIF3A -0,380281294 -CRBN -0,380214781 -RPS6KC1 -0,3801397 -NUDT2 -0,380057201 -GOLPH3L -0,379823471 -CSNK1A1 -0,379812095 -NDUFB2 -0,379757693 -FTO -0,37940886 -SLC6A15 -0,379271656 -PCP4 -0,379256762 -NIT1 -0,37912136 -CCNC -0,378699092 -DGKB -0,378485235 -RANBP6 -0,377965444 -DNAJC8 -0,377764456 -MAPRE2 -0,377675379 -ARFGAP2 -0,377574006 -BDNF -0,377511436 -HSD17B10 -0,376728332 -AKAP7 -0,376531212 -EHD1 -0,376479944 -PSMD10 -0,376243528 -FABP5L2 -0,376090187 -VAMP7 -0,376017526 -WBP4 -0,375749974 -MAP1B -0,375485017 -SMPDL3A -0,375390185 -GPR89C -0,375362209 -SEPT2 -0,37512019 -GPX3 -0,374915078 -AARSD1 -0,374664572 -HSPA9 -0,37466397 -MAP1A -0,374598439 -C16orf62 -0,374459363 -CARKD -0,374388504 -ASS1 -0,374197776 -WDR12 -0,374046313 -ABHD14A -0,37397421 -SPIN2B -0,373568971 -RAB6A -0,373528481 -PTPRF -0,373483075 -RRAGB -0,373427062 -STK39 -0,373365187 -COX7B -0,373307822 -PDCL -0,373110957 -ATP2A2 -0,373066228 -PPM1E -0,37285382 -TRMT61B -0,372798595 -C21orf33 -0,372766056 -MGMT -0,372730061 -LPHN3 -0,372647138 -WBP2 -0,372385809 -ACSBG1 -0,372296169 -PGRMC2 -0,372287654 -LRRC20 -0,372239514 -AGA -0,372171162 -NRCAM -0,372117405 -FUT9 -0,372053568 -C22orf28 -0,371916518 -MRPS15 -0,371914782 -UFM1 -0,371876489 -CAMK2G -0,371790847 -AVPI1 -0,371692415 -MAST2 -0,371637676 -PPP1R7 -0,371553142 -EEF1A2 -0,371514176 -ATP5D -0,371416456 -EEF1E1 -0,37139203 -NLRP1 -0,371368381 -PMS2CL -0,371209965 -CDK5R1 -0,371120209 -C2orf72 -0,371108998 -OAZ2 -0,3710748 -AL109698 -0,37073584 -INPP4A -0,370700597 -ERH -0,370513944 -CAMK1G -0,370474818 -MED24 -0,370430566 -DMXL1 -0,370287216 -COMMD4 -0,370258812 -NOMO3 -0,370043447 -MORF4 -0,369691968 -ZNHIT3 -0,369651044 -GDPD5 -0,369635923 -CUL5 -0,369519961 -AP1B1 -0,369511443 -YARS -0,369387873 -ABHD10 -0,36913324 -KCNB1 -0,369083149 -SKP1 -0,369015624 -FBXO28 -0,368924883 -ATR -0,368436696 -TMED2 -0,368132686 -ARPC1A -0,367983188 -PHYH -0,367958422 -MRPL22 -0,367879083 -SRRD -0,367868238 -WDYHV1 -0,367821841 -EIF3CL -0,367732775 -HMGB3 -0,367450086 -DENND1B -0,36732795 -ALDH5A1 -0,367318431 -CCNA1 -0,367103911 -FAM134A -0,367014983 -DZIP1 -0,366778091 -WASF1 -0,366602553 -ATXN3 -0,366426778 -CCDC25 -0,3658102 -ERP29 -0,365799413 -IVD -0,365499555 -SNX24 -0,365222253 -CDK20 -0,365176415 -TTC9 -0,365148586 -RBM8A -0,36488846 -AMACR -0,364562114 -TBPL1 -0,364450426 -PTPMT1 -0,364434415 -CANX -0,364232908 -ELAC2 -0,364131757 -EIF2S1 -0,364109368 -AKR1B1 -0,363915593 -ACADM -0,363858719 -RGS16 -0,363795844 -SLC20A1 -0,363602798 -MTUS2 -0,363384151 -ZMIZ2 -0,363364816 -NDUFS4 -0,363146027 -AW242701 -0,363104323 -SNAPC3 -0,363053639 -ENOPH1 -0,362868334 -LYRM1 -0,362706602 -TRMT12 -0,362561085 -BAALC -0,362539013 -CHMP1B -0,362404908 -ATP1A3 -0,362300724 -TOMM20 -0,362192747 -PEX14 -0,362047536 -EIF2AK1 -0,361934247 -CNNM2 -0,361790716 -PPOX -0,361753445 -TAC1 -0,361655557 -GLRX3 -0,361266708 -OBFC1 -0,360197329 -MFN2 -0,360036589 -DGCR14 -0,359808857 -FAM175B -0,359691136 -PARP2 -0,359639462 -GPR107 -0,359495249 -TUBGCP5 -0,35920098 -ENSA -0,359186957 -UMPS -0,358973056 -SSBP1 -0,358916914 -PFDN2 -0,358707301 -IFFO1 -0,35859667 -CCT2 -0,358497035 -PSMA5 -0,358414139 -ZC3H15 -0,358397302 -EPHX2 -0,358269729 -CALB1 -0,358259257 -POP7 -0,358253841 -MRPL12 -0,357874032 -DFNA5 -0,357815106 -PIAS1 -0,357740062 -ARL4C -0,35770713 -HRAS -0,357592893 -CEP68 -0,35754909 -SNRPA1 -0,357535253 -SCP2 -0,357518758 -C4orf27 -0,356816465 -TMEM185B -0,35662055 -SPAG16 -0,356585241 -ESYT1 -0,356493695 -PTP4A1 -0,356347412 -PDLIM2 -0,356333479 -MSRA -0,355999453 -UAP1 -0,355870622 -CDK16 -0,355785531 -MBOAT7 -0,355761708 -FARSA -0,355610517 -MRPS7 -0,355424517 -EPHB2 -0,355389176 -LOC729991-MEF2B -0,355378273 -PDHA1 -0,355252318 -ACTL6B -0,355166654 -SAR1A -0,355144478 -KDM1A -0,355067715 -PRDX3 -0,354963773 -ETF1 -0,354759299 -ARMCX2 -0,354758912 -IQSEC1 -0,35395949 -TIMM13 -0,353925241 -AP2B1 -0,353904118 -STYK1 -0,353863363 -CDK7 -0,353806664 -DLG3 -0,353783905 -SEPHS2 -0,353722454 -MTOR -0,353463273 -PPIH -0,353351383 -GRPEL1 -0,353254529 -C9orf91 -0,353075824 -RGS17 -0,353023569 -NTSR1 -0,352789658 -HNRNPH2 -0,352751195 -HCCS -0,3526918 -C2orf3 -0,352661516 -TFDP2 -0,352647453 -GOSR2 -0,352396188 -PSMB1 -0,352279045 -MPI -0,35224609 -DUSP26 -0,351953212 -HERC1 -0,351631367 -SORD -0,351295095 -TUBB2B -0,351140866 -LPCAT4 -0,351128323 -CFL1 -0,351124653 -ARPP19 -0,350935095 -MTMR4 -0,350923479 -COX7A2 -0,350878835 -PGM1 -0,350865278 -RHOQ -0,350802567 -CCDC53 -0,350756677 -UQCRB -0,350742301 -NAPA -0,350657124 -CSDC2 -0,35061274 -BECN1 -0,350596093 -GYG2 -0,350535323 -GPKOW -0,35045328 -FXYD7 -0,350387292 -CYLD -0,349973469 -CSPG5 -0,349825086 -TTC15 -0,349816074 -ILF2 -0,349761198 -STOML2 -0,349586681 -CACNB2 -0,349516102 -VARS -0,349372141 -ZSCAN18 -0,349241937 -PTRH2 -0,349224021 -P2RX5 -0,349175679 -RALB -0,349042784 -NUBPL -0,348899542 -NCBP2 -0,348786336 -DKFZp434H1419 -0,348772873 -UFSP2 -0,348370783 -ARHGEF17 -0,348050229 -FXR2 -0,34801331 -INSIG2 -0,347755165 -XRCC5 -0,347746659 -CLTCL1 -0,34759935 -TMEM177 -0,347585446 -VAMP2 -0,347189398 -EML2 -0,347084746 -SNUPN -0,346850632 -GPX4 -0,346688538 -RASA1 -0,346685342 -USP46 -0,346590476 -LSM5 -0,346546029 -SEC31A -0,34652486 -PALM2-AKAP2 -0,346447335 -CKAP2 -0,346385113 -ELOVL5 -0,346375127 -PMS2L3 -0,346133275 -PAQR3 -0,346117871 -ST8SIA3 -0,34604187 -FDX1 -0,34603415 -C12orf4 -0,345989709 -COQ7 -0,345988262 -UROD -0,345987158 -RPE65 -0,345902642 -DCK -0,345889475 -RARS -0,345819092 -CAPZA1 -0,345775372 -NRN1 -0,345693574 -RNF7 -0,345545425 -ABAT -0,345474072 -CRY2 -0,345467057 -HR -0,345290796 -CACNA2D3 -0,345213407 -TWIST1 -0,345148814 -P4HTM -0,345112277 -GDI1 -0,344731063 -GRIA3 -0,344721718 -D4S234E -0,344715573 -TMEM151B -0,344385728 -MPHOSPH6 -0,344298044 -PYGB -0,344201683 -MARCH6 -0,344086188 -AL050136 -0,343680587 -NDUFS6 -0,343667551 -TRAPPC9 -0,343555476 -PYGL -0,343533875 -EFNB3 -0,343417492 -SCD -0,343398039 -TFG -0,342863204 -PPFIA3 -0,342761025 -SENP6 -0,342750174 -KCMF1 -0,342689973 -GNAS -0,342684217 -MAPK6 -0,342588157 -PRMT5 -0,34246621 -SEPT11 -0,342460355 -MEIS3P1 -0,342265108 -FABP3 -0,3421554 -YIPF6 -0,3420929 -FABP6 -0,342074193 -SRSF9 -0,341825092 -AP1AR -0,341737984 -PKNOX2 -0,341609179 -PAK6 -0,341535575 -PRKAA1 -0,341378959 -UBA3 -0,34130955 -OAZ1 -0,341251276 -EID1 -0,340941987 -MRPS28 -0,340842312 -AA890010 -0,340724739 -OSBP -0,340497775 -ATP6V0C -0,34047911 -ARHGAP24 -0,340414643 -PNKP -0,340118439 -PSMD7 -0,340085658 -IPO9 -0,340071575 -ARF4 -0,339993296 -TERF2 -0,339818219 -SRSF2 -0,339525933 -PSMC5 -0,33950993 -TM9SF1 -0,339389717 -ACAT2 -0,339093022 -CDK8 -0,33909169 -KIAA0196 -0,338987444 -TFPT -0,338941882 -TRPC4AP -0,338718194 -TUBG1 -0,338211067 -SCN2B -0,338080627 -MTHFD1 -0,338071854 -ATPAF2 -0,338050158 -IGSF1 -0,337997383 -RGPD6 -0,337877048 -C16orf45 -0,33773508 -C10orf76 -0,337659307 -UBE2A -0,33762595 -PQLC1 -0,337612976 -SOD1 -0,337454918 -ARPC2 -0,337418781 -MEMO1 -0,33728488 -CSDE1 -0,337036578 -PHYHIP -0,336992273 -LYPLA1 -0,33698776 -NDUFA1 -0,336883322 -MARCKSL1 -0,336747008 -DCTN1 -0,336745427 -COX6A1 -0,336728807 -DPM1 -0,336614034 -ELP3 -0,336602956 -LOC653566 -0,336555692 -COX7BP1 -0,336528019 -CAPZB -0,336348777 -DCUN1D4 -0,335942405 -UCHL5 -0,335933871 -PSIP1 -0,335684272 -MRS2 -0,335589123 -RABGAP1 -0,335570544 -KCNA6 -0,335454989 -RAC1 -0,335429141 -ZMYM2 -0,33542626 -MRPL17 -0,335371398 -MLF1 -0,335274724 -RFC3 -0,33507418 -ARMCX3 -0,335005795 -GMDS -0,334931775 -KIAA0317 -0,334922749 -CAMSAP1 -0,334678333 -LSG1 -0,334628714 -PNPO -0,334625052 -THOC5 -0,334532053 -C11orf58 -0,334154436 -MTCH1 -0,334038037 -KAL1 -0,333848755 -OMG -0,333590731 -KLHL7 -0,333537148 -TTPAL -0,333489991 -GLA -0,333336937 -SEZ6L2 -0,333262252 -SNURF -0,333035272 -ARL6IP1 -0,332988884 -BFSP1 -0,332976059 -MAPKSP1 -0,332894473 -HABP4 -0,332672498 -SLC8A2 -0,332645114 -CKAP4 -0,332543738 -NPM1 -0,332250102 -CLSTN3 -0,332157745 -RUSC2 -0,33210981 -RCHY1 -0,331805148 -CACNA1D -0,331681156 -ZFAND5 -0,331302172 -TACC2 -0,331046487 -CHCHD3 -0,331008486 -RGS2 -0,330792786 -LDOC1 -0,330775706 -BTN2A1 -0,33075204 -WDR45 -0,330593865 -W87688 -0,330499179 -YWHAQ -0,330473094 -RAB3GAP2 -0,33029144 -HTRA2 -0,330240669 -SNRPD1 -0,330240562 -ANXA7 -0,330030639 -KIAA1024 -0,329770804 -RAD51C -0,329735785 -PRPF18 -0,329474331 -CCT6B -0,329361737 -ABCD3 -0,329205796 -PARN -0,329139621 -APOL2 -0,328983174 -MRPS18A -0,32863432 -RASL10A -0,328581006 -COG8 -0,328398026 -ZNF512B -0,327877848 -ATP5H -0,327758416 -PRDM4 -0,327710757 -TSPAN3 -0,327644045 -EPB41L3 -0,327416874 -APLNR -0,327394979 -TFR2 -0,327337619 -GADD45A -0,327012981 -POLR3F -0,326871651 -FASTKD3 -0,326789822 -TCERG1 -0,326746174 -VPS41 -0,326459968 -C17orf101 -0,325979143 -EXOC3 -0,325763291 -SLC25A17 -0,325666279 -GDAP1L1 -0,325526797 -HCFC1R1 -0,325022815 -SF3B5 -0,324878766 -TEX10 -0,324812522 -PSMA7 -0,324673715 -TCTN3 -0,324389244 -NOVA1 -0,32437578 -RABEPK -0,324366299 -ALG5 -0,324335095 -ENOSF1 -0,32427768 -SH3BGRL3 -0,32409913 -CTNND2 -0,324002004 -NKRF -0,323983769 -SLC6A1 -0,323833407 -MAPK1IP1L -0,323722226 -RAB22A -0,323713658 -GRP -0,323354345 -SDS -0,323335387 -IBTK -0,323304602 -CARS -0,322679359 -WWP1 -0,322463311 -ARL8B -0,322442301 -SLC19A2 -0,322361872 -F8A3 -0,322202521 -LPHN1 -0,322183082 -SMARCD3 -0,322148361 -GPN1 -0,322024809 -FAF2 -0,322014431 -SLC35B1 -0,321878066 -MPV17 -0,321698226 -TOM1 -0,321634922 -NEDD4L -0,321518057 -MRFAP1L1 -0,321393672 -C6orf62 -0,321303598 -POLR3B -0,321247444 -HTR2A -0,321189596 -CUL3 -0,321141566 -PSMD9 -0,321108014 -LRP3 -0,32099653 -TMEM62 -0,320873847 -PLS3 -0,320803014 -SUMO1 -0,32076762 -DLG4 -0,320617015 -ANKRD17 -0,320557554 -ARFIP2 -0,320500236 -HMGN4 -0,320196335 -PRKAG2 -0,319945607 -STAR -0,319749743 -NF1 -0,319726773 -ATOX1 -0,31967306 -UBE2M -0,319629201 -NDRG3 -0,319446308 -SNPH -0,319396594 -TPD52 -0,319178712 -PLK2 -0,319120325 -C1QBP -0,318975829 -SRSF8 -0,318843616 -USP22 -0,318806098 -GPD1 -0,318728943 -MAPK8IP2 -0,318691894 -USP20 -0,318610382 -RPA2 -0,31845096 -CCPG1 -0,318358561 -NQO2 -0,318256129 -POLR3C -0,318231923 -HBXIP -0,318079181 -MRPS31 -0,318018334 -SNRPB2 -0,31801084 -CACNG3 -0,317104885 -CCNE1 -0,316783937 -NDUFAF4 -0,316755785 -GRK6 -0,316405946 -ZER1 -0,316363024 -CHCHD7 -0,316179658 -C20orf29 -0,315860291 -AI693193 -0,315746456 -TPMT -0,315745725 -TPPP3 -0,315557058 -CTH -0,315210231 -HSDL2 -0,31516145 -MAPRE3 -0,314964867 -NLE1 -0,314918022 -ARHGEF4 -0,314777145 -STK19 -0,314737564 -AW503390 -0,314280211 -KIAA1279 -0,314104435 -CA14 -0,313849822 -CYP2E1 -0,313441486 -FHL1 -0,313417456 -MYL6B -0,313075964 -PACRG -0,3129322 -SCN2A -0,312912414 -POLR3G -0,312898745 -MED6 -0,312862133 -PCSK1N -0,312861133 -FLJ10038 -0,312756044 -PHTF1 -0,312716368 -PRPF4 -0,312654478 -RPRD1A -0,312642779 -HLF -0,312545473 -MTMR1 -0,312535102 -MFN1 -0,312461722 -C1orf50 -0,312398425 -QPRT -0,312349796 -ZDHHC6 -0,31229266 -ITGAE -0,311863717 -SLC18A1 -0,311739998 -CD83 -0,311711539 -GGCT -0,311631664 -KIAA0100 -0,311503156 -OPN3 -0,311374884 -SSX2IP -0,311111099 -NUCB2 -0,31105706 -UTP11L -0,311015852 -GOLGA8B -0,310924837 -UST -0,310734373 -PRKCI -0,310493775 -AP2S1 -0,310480065 -WBSCR22 -0,310476192 -PPP3CA -0,310434457 -PDSS2 -0,310396648 -PEG3 -0,310335546 -ATP5E -0,310319916 -GABRA5 -0,310200087 -AGPAT4 -0,310173061 -PDCD10 -0,310157516 -DDOST -0,310094837 -RPL23 -0,309992315 -HOMER1 -0,309485866 -C1orf123 -0,309187816 -POLE3 -0,309012195 -DDX41 -0,308923345 -HSD17B8 -0,308824584 -GMPR2 -0,308792858 -SCARB2 -0,308695909 -DGUOK -0,308606021 -MAGEF1 -0,308535371 -FOXA2 -0,308348483 -GLS2 -0,308287643 -TBCC -0,308286536 -FBXO41 -0,308255485 -SLC12A1 -0,308214984 -PELO -0,308137793 -KCNE1L -0,30811412 -RBBP4 -0,308007454 -UBL5 -0,307720013 -KLHL12 -0,307571676 -FTSJ1 -0,307464516 -ZFYVE16 -0,307366442 -PPT1 -0,3073579 -ZC3H13 -0,307293327 -DYRK1A -0,307183877 -PHACTR2 -0,306935621 -SLITRK3 -0,306872073 -PI4KA -0,306770561 -RNPS1 -0,306364972 -RALGAPB -0,306086767 -BRP44 -0,305953308 -BNIP1 -0,305883874 -SUPT4H1 -0,305675152 -BCKDK -0,30566687 -PLAA -0,305619464 -ACTR2 -0,305363631 -PION -0,305054773 -NFU1 -0,305010295 -CCT6A -0,304801168 -KIAA0427 -0,304585348 -EHD3 -0,304533089 -FAM63B -0,304437794 -STK25 -0,304425083 -POLB -0,304419007 -MRPL35 -0,304416576 -UBE2Z -0,3043165 -GSTZ1 -0,304133065 -AP3S1 -0,30395899 -SPATS2L -0,303776395 -LOC729580 -0,303766036 -RALGAPA1 -0,303697943 -PUF60 -0,303647762 -DAP3 -0,303640732 -AHI1 -0,303570806 -UBE2NL -0,303361552 -TMEM164 -0,303165514 -DOCK3 -0,303099341 -CADM3 -0,303050893 -ZNF219 -0,302968533 -PRKAR1B -0,302898104 -DOK5 -0,302798088 -ORMDL2 -0,302372011 -ACVR2A -0,302331205 -ALDOA -0,30171568 -ATRN -0,301666345 -COX7C -0,301597748 -PRKDC -0,301229867 -GNG10 -0,300757182 -SNX17 -0,300752701 -RBMS1 -0,300466996 -AJAP1 -0,300458474 -PREP -0,300414848 -ALDOC -0,300361514 -LAMA4 -0,300246196 -PI4KAP1 -0,300223018 -TMEM222 -0,30010369 -PIGB -0,299980372 -SSSCA1 -0,29997354 -DCUN1D1 -0,299517655 -DLSTP1 -0,299414392 -ITM2B -0,299325985 -AK025651 -0,299260618 -ACOT13 -0,299073057 -ZNF593 -0,298588283 -LOC100129250 -0,298385026 -H2AFY -0,298292243 -IGF1 -0,298232454 -KIAA0368 -0,29819687 -FKBP3 -0,298122528 -C12orf49 -0,297820161 -PRKRIR -0,297808472 -GLUD2 -0,297805688 -NBL1 -0,297799978 -PTPN4 -0,297657679 -LOC644617 -0,297586698 -IL33 -0,297538719 -CUL4A -0,29730361 -SIP1 -0,297199387 -POLDIP2 -0,297140479 -EBP -0,297109427 -FASTKD2 -0,296665172 -SMPD1 -0,296658212 -FAM55C -0,296650198 -TRPV2 -0,296465177 -DOPEY1 -0,29633822 -SCYL3 -0,296201386 -UBL3 -0,296188632 -STK38L -0,296164266 -APITD1 -0,296017845 -SFXN1 -0,295918484 -CPT1A -0,295754312 -USP8 -0,29570338 -MRPS30 -0,295702739 -ATG7 -0,295335659 -C10orf88 -0,29514056 -PIPOX -0,295018193 -RAC3 -0,294600261 -CIAO1 -0,294564961 -KLC2 -0,294523931 -LEPROTL1 -0,29448316 -ENDOD1 -0,294147277 -FEM1B -0,294007766 -IRS1 -0,293342341 -CYP51A1 -0,293155923 -DYNLRB1 -0,292974645 -TOM1L2 -0,292906836 -TDP2 -0,292808809 -MRPL49 -0,292778686 -LRP8 -0,292767989 -MOSPD1 -0,292730297 -C6orf134 -0,29255632 -TRPC1 -0,29249815 -RASL11B -0,292459191 -AL109671 -0,292334441 -TTC37 -0,292136499 -ODZ4 -0,292070818 -KIN -0,291741417 -KPNA1 -0,291721639 -CAST -0,291558763 -NDUFA13 -0,291524477 -AKR1A1 -0,29149158 -QARS -0,29146477 -MRPS22 -0,29145846 -MMACHC -0,291414294 -UBQLN2 -0,291358191 -PIK3CB -0,291242041 -COX6B1 -0,291081182 -PDK2 -0,290962723 -RABGGTB -0,290962562 -SR140 -0,290943983 -ATF2 -0,290881352 -FADS1 -0,290820194 -SRP14 -0,290691218 -RAD23B -0,290632171 -AHCY -0,290521401 -RINT1 -0,290502144 -SRP54 -0,290224786 -COX5B -0,289972152 -NBN -0,289962803 -DDX50 -0,289845246 -NUFIP1 -0,289611609 -HDGFRP3 -0,289540354 -HBA2 -0,289412602 -SRP9L1 -0,289377441 -ARFGEF1 -0,289327503 -FAM13B -0,289118442 -DIMT1L -0,288943725 -LPO -0,28888192 -VPS28 -0,288730564 -SSR3 -0,28867602 -SEPT7 -0,288663677 -NARS2 -0,288651232 -EMG1 -0,288493971 -HSPA8 -0,288488899 -TBC1D13 -0,288209587 -TTC35 -0,288076299 -GTPBP4 -0,287916733 -SPG7 -0,287774853 -PAFAH1B3 -0,28772138 -MAPT -0,28765216 -RERGL -0,287509361 -HNRNPD -0,287438947 -PLCL2 -0,287391702 -HLA-DPA1 -0,287200849 -CD55 -0,286966384 -IDH3A -0,286870398 -STXBP5L -0,286801199 -MAP3K12 -0,286334641 -PPP2R1A -0,286259611 -TMEM126B -0,286136364 -CDKN3 -0,286064506 -ABCC5 -0,286013319 -TMEM127 -0,285913561 -DNAJC2 -0,285585137 -SEC61G -0,285583827 -SSR1 -0,285489405 -AIMP1 -0,285281231 -YTHDF2 -0,285194578 -FAM86B1 -0,285046154 -CTBP1 -0,285027477 -CHRFAM7A -0,285001423 -SSBP3 -0,284934817 -MRPL46 -0,284930449 -TSPAN6 -0,284861931 -MYST2 -0,284824247 -GGH -0,284817124 -PRKACB -0,2847024 -C2orf47 -0,284692381 -NLK -0,284579832 -ASNS -0,28445955 -EXOC5 -0,28439526 -OAZ3 -0,284379411 -CTNNBIP1 -0,284364924 -PVR -0,284070802 -C16orf80 -0,284019987 -UBE3A -0,283816198 -EAPP -0,28376748 -IGSF3 -0,283764031 -KCND2 -0,283569047 -FOXK2 -0,283286684 -SLC35A2 -0,283204451 -TBCB -0,283168385 -SLC38A1 -0,283158141 -ACCN2 -0,283147998 -FAM149A -0,283126904 -TIMM22 -0,283102824 -EIF4ENIF1 -0,28310048 -THSD1P1 -0,282819454 -MAGED4 -0,282562753 -CLASP1 -0,282510547 -C1orf61 -0,282424601 -C6orf106 -0,282397365 -WDR44 -0,282155933 -GNL3 -0,282115302 -RCBTB1 -0,28192202 -OSTM1 -0,281535242 -AGPAT5 -0,281510168 -PRNP -0,281405094 -APPBP2 -0,281330465 -GAD1 -0,281295305 -NECAB3 -0,281056363 -ABCF1 -0,280961256 -DNAJC7 -0,280750506 -EPHB1 -0,280596899 -GPRC5A -0,280368026 -HSPA14 -0,280049432 -CLPTM1 -0,280042656 -SGPP1 -0,27999737 -ABCG4 -0,279891909 -GFRA1 -0,279146972 -ATP5SL -0,278849245 -CTSO -0,278677227 -DCTN4 -0,278556645 -MAP2K2 -0,278535478 -ZNF423 -0,278503712 -FUS -0,278285124 -ACTR8 -0,278282163 -PRR13 -0,278189761 -ZNF329 -0,278179162 -RNASEH2B -0,278151755 -LOC284244 -0,278099761 -FAM117A -0,277715513 -MREG -0,277651168 -C2orf18 -0,277609469 -AW612311 -0,277599115 -SYNRG -0,277434047 -SMARCE1 -0,277346186 -DNAJA3 -0,277188103 -PPP2R5E -0,2770317 -TMCO6 -0,276951805 -C6orf35 -0,276886272 -DDX18 -0,276619655 -TTLL1 -0,276373935 -LANCL1 -0,276361838 -SNRPE -0,276287655 -DTX4 -0,276233703 -IDH2 -0,276017451 -SACS -0,275814599 -ABHD2 -0,275491786 -VAMP1 -0,275092752 -AGPAT1 -0,27504004 -TYMS -0,274913065 -ZDHHC3 -0,27479568 -LMO1 -0,274566957 -UVRAG -0,274559415 -HBB -0,274385467 -PSMA2 -0,274273938 -CD24 -0,27422103 -GRAMD1B -0,27394685 -PRC1 -0,27393137 -YARS2 -0,27376193 -SIGMAR1 -0,273597834 -CPEB3 -0,273534888 -ARMC9 -0,273442678 -DNAJC10 -0,273369377 -TM9SF4 -0,27326642 -RBX1 -0,273166064 -C13orf1 -0,273151402 -PDCD4 -0,273130523 -LUZP2 -0,272843047 -APLP2 -0,272609838 -USO1 -0,272598741 -SH3BP5 -0,272512602 -PPP1R11 -0,272494252 -PEMT -0,272485616 -CDC16 -0,272287144 -LCMT2 -0,272235596 -DCX -0,271983078 -DDAH1 -0,271924121 -UBE2D2 -0,271815552 -TANK -0,271664689 -AW974666 -0,271662837 -USH1C -0,271630244 -BDH1 -0,271624449 -B9D1 -0,271589518 -BRD9 -0,271105209 -USP7 -0,271052865 -TRIM2 -0,270764995 -PARK7 -0,270634786 -NSFL1C -0,270597248 -COQ2 -0,269953826 -HNRPDL -0,269787459 -NOV -0,269731303 -SLC25A28 -0,269706278 -EXT2 -0,26958066 -VLDLR -0,269148459 -SLC4A4 -0,268895862 -SMURF1 -0,268798637 -ORC2L -0,268275919 -ZC4H2 -0,268056536 -SDHAF1 -0,267985583 -VDAC1 -0,267895013 -ALDH1A3 -0,267738476 -PNPLA4 -0,267586498 -HAGH -0,267406111 -CNTNAP2 -0,267355858 -KPNA3 -0,267278305 -LRBA -0,267216793 -DPYSL4 -0,267150239 -MCCC2 -0,26714725 -KBTBD4 -0,267031071 -DCTD -0,267005887 -C1orf21 -0,266982234 -C2orf43 -0,26679916 -SF3A3 -0,266732334 -PTPN3 -0,266674559 -FBXO21 -0,26664933 -CCT7 -0,266615147 -CLNS1A -0,266539743 -HAPLN1 -0,266160364 -SYT13 -0,26591944 -SENP5 -0,265695364 -HMGB2 -0,265556554 -CANT1 -0,265168032 -CGREF1 -0,265157579 -GRM1 -0,26510368 -ZFHX4 -0,265049797 -PVRL3 -0,264999073 -ADAR -0,264636454 -TRIM3 -0,264561355 -ANP32E -0,264413865 -PDLIM7 -0,264406742 -MLH1 -0,264377914 -PRKCA -0,264376056 -CYB5R3 -0,264120933 -PDE1A -0,263919942 -LOC100127998 -0,263915362 -WSB2 -0,263691169 -RPF1 -0,263404659 -CXCL12 -0,26333499 -TMEM66 -0,263285506 -EIF6 -0,263232223 -NFE2L1 -0,262789646 -KLHL20 -0,262772392 -PPM1H -0,262689193 -PIN4 -0,262483899 -TUBA4B -0,26241982 -ECT2 -0,262276809 -MGC5566 -0,261888759 -C9orf116 -0,261830489 -ASB1 -0,261751394 -ABCC8 -0,261735107 -ELOVL2 -0,261638578 -PHB2 -0,261466477 -ZNF580 -0,261379751 -DNAJC24 -0,261364702 -PSMB10 -0,261344946 -CSE1L -0,261292597 -ANKRD27 -0,261154598 -TUBG2 -0,261047779 -C6orf162 -0,261001828 -AL034399 -0,260886813 -GLT8D1 -0,26052144 -SRR -0,260520305 -MCC -0,260395686 -COX4I1 -0,260324715 -SEP15 -0,260222524 -RNF103 -0,260210477 -ZNF576 -0,260159221 -MGEA5 -0,260092677 -RSL24D1 -0,259958151 -USP13 -0,25969613 -MLLT3 -0,259631882 -SRI -0,259268888 -NCS1 -0,259133737 -MAPKAPK5 -0,259103348 -IQCG -0,25908825 -FN3KRP -0,258914892 -BCKDHB -0,258870249 -GOLGA5 -0,258736414 -RDBP -0,258483881 -SUPT7L -0,258355414 -METTL1 -0,258206012 -CREB3 -0,258159408 -TMEM111 -0,258136123 -NRSN2 -0,257397396 -CNTN1 -0,257314074 -COX10 -0,257277055 -SERPINB9 -0,257269621 -MTF2 -0,256976969 -EDNRB -0,25676028 -HSF2 -0,25652969 -POLR2L -0,256424652 -TRIM58 -0,256294322 -DACH1 -0,256241463 -UEVLD -0,256239024 -ATP1B3 -0,256215499 -SAP130 -0,256053262 -TRPC6 -0,255890704 -HERC6 -0,255794959 -NAV3 -0,255707496 -GOSR1 -0,25567987 -CNR1 -0,255506006 -PSME4 -0,25522233 -CAMKV -0,254605479 -ADSL -0,254512794 -BCS1L -0,254298738 -CCNB1 -0,253924801 -SNX2 -0,253887319 -ASAP2 -0,25387509 -WDR70 -0,253565737 -PTPRE -0,253309549 -SEPT5 -0,253058348 -SCML1 -0,253051964 -BCR -0,252946659 -MAGOH -0,252829021 -SEMA4F -0,25277628 -CLIP1 -0,252764211 -JMJD4 -0,252747043 -ZMYND11 -0,25273006 -CPSF6 -0,252574141 -PTPRA -0,252430519 -PLA2G12A -0,252393049 -MXRA5 -0,252290125 -RFX5 -0,252264534 -WARS -0,252174212 -HUS1 -0,252166663 -VCAM1 -0,251733145 -CEACAM21 -0,25171453 -RHOT1 -0,251514974 -EMD -0,251327933 -TSPYL2 -0,251307071 -THNSL1 -0,25130438 -NDUFB4 -0,251250318 -CHMP5 -0,251232028 -SKAP2 -0,251185084 -LRPAP1 -0,251070101 -COMMD3 -0,251069448 -ROGDI -0,250917557 -PPAP2B -0,25089017 -ADSS -0,250852878 -LGI2 -0,250809779 -CBX6 -0,250671998 -NELF -0,250584567 -DENND5B -0,250357567 -ATP2C1 -0,239139672 -SUMO2 -0,233193565 -KRAS -0,208565613 -PEX3 -0,200767265 -PRDX2 -0,195371323 -PDCD2 -0,194653063 -TM2D1 -0,189207426 -KHDRBS1 -0,16653347 -KLC1 -0,156510024 -ANK2 -0,155852142 -HBS1L -0,155006259 -NTRK3 -0,121314135 -PTPRO -0,110200451 -PLEKHA5 -0,10184855 -GCOM1 -0,091608137 -TIMM8A -0,084179504 -MKRN1 -0,074942655 -PLA2G4B -0,068760926 -RUFY3 -0,059042335 -RIMS2 -0,057507607 -C21orf2 -0,054091983 -METAP2 -0,053236401 -LRRC40 -0,040678287 -RPL10 -0,034862755 -RIOK3 -0,033313025 -SYNCRIP -0,027340658 -UNC45A -0,021866459 -MPZL1 -0,020796077 -RANBP1 -0,01610173 -ITGB1BP1 -0,011025016 -UBC -0,009666523 -RER1 -0,007044099 -PDS5B -0,005231512 -NCAM1 -0,004638056 -LIMCH1 0,003894784 -VPS13D 0,014841215 -WDFY3 0,017457694 -MRP63 0,023151675 -TSR1 0,064261585 -GRB10 0,066410415 -FAM128B 0,074972161 -PAK2 0,079518764 -PKP4 0,080237181 -TMEM144 0,083124821 -C3orf63 0,086752023 -DDAH2 0,250378216 -AF238870 0,250544885 -PTMS 0,250667518 -JAG1 0,250675664 -RPL32 0,25075902 -UXT 0,250812127 -HSP90B1 0,250888984 -SS18 0,250904748 -RND2 0,250918958 -CLEC4M 0,250931594 -AU147194 0,251115897 -IL1RAPL1 0,251119435 -EPB41L2 0,251131328 -TFDP3 0,251241244 -GAL3ST4 0,251281983 -EDN2 0,251371356 -SFTPC 0,251372616 -TRMT61A 0,251534845 -GPR4 0,251535902 -KEAP1 0,251692277 -RNF122 0,251718243 -NOTCH2 0,251745042 -WDR1 0,251871256 -NFX1 0,252023298 -DOHH 0,252100123 -NES 0,252167647 -SRSF10 0,252172984 -AQP3 0,252182392 -LOC728412 0,252404082 -RCN3 0,252455902 -CSNK1G1 0,252462493 -KCNS1 0,252601737 -CCDC71 0,252614101 -JUND 0,252645305 -LYST 0,252718314 -TPCN1 0,252770336 -MTA1 0,252823052 -RIN1 0,252841454 -ATHL1 0,252944239 -FTSJ3 0,253136044 -SERPINA1 0,253202139 -STARD7 0,2533744 -MRPL34 0,253425868 -PPID 0,25344089 -SH3PXD2A 0,253534644 -UBA7 0,253547625 -RUNX1 0,253686159 -ARNTL 0,253823553 -STAT6 0,253840779 -CASKIN2 0,25393147 -NFATC4 0,253965486 -LILRB2 0,254041373 -PPP1R13L 0,254173566 -RAP1A 0,254249533 -OTUD4 0,254380531 -ZNF516 0,254390037 -ZC3H14 0,254430628 -BTD 0,254441889 -ABHD4 0,254494909 -MT3 0,254554667 -PTCH1 0,254572046 -CDC42EP3 0,254591236 -LOC150776 0,254715807 -PTGES 0,254816225 -TPM2 0,254867646 -TAGLN 0,254960085 -AL050032 0,254984309 -HPN 0,25500915 -FLNC 0,255046574 -GJB3 0,255060346 -RAB40B 0,255071999 -CST1 0,255226531 -FGF21 0,255229382 -AW574933 0,255334628 -FGF5 0,255461872 -CLCN7 0,2555275 -BAHCC1 0,255618646 -FANCA 0,255627746 -CYBA 0,255682121 -TIE1 0,255683605 -ANKHD1-EIF4EBP3 0,255707685 -CDV3 0,255740411 -COL9A1 0,255878907 -TTC31 0,256049153 -ZIC1 0,256075896 -CCDC121 0,256090992 -FUT4 0,256155794 -UCP3 0,256197327 -AU146391 0,25625958 -MMP2 0,256269664 -STXBP2 0,256386629 -TMEM87A 0,2564575 -FXR1 0,256493521 -RDX 0,256507051 -HPS1 0,256516919 -TRAM2 0,256517872 -HYAL2 0,256778041 -TNFRSF14 0,256783849 -NEK7 0,256861333 -AGRN 0,256876471 -SMC4 0,256895131 -GAS7 0,256949822 -PDE4B 0,256950938 -CHD4 0,256970114 -SPP1 0,257084517 -HECA 0,257172806 -NXF2B 0,257181225 -LILRA5 0,257188463 -SCAP 0,257267679 -SNX1 0,257354288 -GIGYF2 0,257400552 -CELF1 0,257407908 -HSD17B14 0,257420303 -DUOX1 0,25770603 -MRM1 0,257826185 -NBR2 0,257852879 -FAM176B 0,257955278 -SYNPO 0,257997864 -GPRIN2 0,258040238 -IER3 0,25816919 -ZNF506 0,258198461 -NM_016414 0,25824817 -VPS53 0,258358594 -PGPEP1 0,258378109 -GNL1 0,25847832 -OGFR 0,258496938 -CXCR2 0,258632799 -C1orf38 0,258857462 -RPL22 0,258901214 -NM_018041 0,259005358 -MYOF 0,259133176 -NGB 0,259197495 -CLIC4 0,259260666 -TBC1D9B 0,259295717 -KCND1 0,259337213 -RNASET2 0,259420675 -EXT1 0,259568659 -AQR 0,259572114 -VWA1 0,259618684 -MUC3A 0,259647513 -CAV1 0,259682957 -IRF4 0,259719685 -OR7C1 0,259728956 -SETDB1 0,259737838 -E2F6 0,259867146 -TFEB 0,259924981 -CPSF3L 0,26005015 -MARCH8 0,260576922 -MFSD11 0,260945964 -ETAA1 0,260954881 -SMARCD2 0,260999203 -RGS12 0,261024661 -CCNG2 0,261112401 -RPS8 0,261183649 -IL17RA 0,261275371 -NUDC 0,261284708 -ZNF133 0,261329337 -ATP13A1 0,261543252 -PICK1 0,26166607 -C20orf117 0,261682534 -GIPR 0,261728602 -HIST2H4B 0,261730186 -S100A11P1 0,261732522 -MARCH3 0,26174629 -ZBED4 0,261794357 -KHK 0,261822851 -SCAMP2 0,26194666 -AF070579 0,261954742 -TECR 0,261998101 -AK024915 0,262016665 -CASP7 0,262240261 -PDK4 0,262293861 -MYO7A 0,262479993 -TUBBP5 0,262483574 -TMEM143 0,262491406 -NAP1L1 0,262524812 -PLEKHB1 0,262542861 -ING1 0,262679424 -SPSB3 0,262786186 -C9orf167 0,262955615 -NTM 0,262977412 -FIP1L1 0,263199662 -FYCO1 0,26321575 -GGT1 0,263227324 -ALG12 0,263240056 -IGL@ 0,263282588 -PPBP 0,263290228 -SNX13 0,263292989 -SRSF4 0,263309909 -CYTH1 0,263721364 -AL050035 0,263831657 -TRMU 0,263920451 -TIMP1 0,263959235 -RFNG 0,263965598 -HIP1R 0,264033626 -NR1H3 0,264039538 -NT5C2 0,264091319 -FNTB 0,264115077 -SAR1B 0,264175117 -GIT1 0,26420824 -RRAGD 0,264311012 -HAP1 0,26435511 -FLT3LG 0,264378926 -NM_018612 0,264421364 -SLC7A9 0,26447762 -GLTSCR2 0,264541217 -SUN1 0,264635751 -CEP152 0,264663399 -MBTD1 0,264688291 -SYT12 0,264690461 -ACTR5 0,264835312 -EIF4A1 0,264933012 -COX7A1 0,26511391 -CMTM6 0,265385079 -FAM102A 0,265449454 -AW970584 0,265532869 -FMO5 0,265619005 -N4BP2L1 0,26587536 -SPAG11A 0,265939376 -TGFBI 0,265987004 -RYK 0,266131346 -SERBP1 0,266135884 -AK021988 0,266152576 -NCAM2 0,266199101 -AK024995 0,266233606 -RAB9A 0,266259326 -SYNJ2 0,266313048 -PHLDB1 0,266315252 -PKN1 0,266439146 -MFAP3L 0,266558078 -PPFIBP2 0,266640652 -WBP5 0,266861878 -TMX1 0,266949292 -SLC6A12 0,267009029 -C3AR1 0,267017849 -CSRP2 0,267020264 -SP3 0,267034674 -ATN1 0,267069634 -GNB3 0,267107148 -TIAL1 0,267113358 -GPATCH8 0,267177985 -PMEPA1 0,267182372 -MAP2K3 0,267199274 -NM_018033 0,267304029 -WWTR1 0,267350058 -SEMA6A 0,267400431 -RBPJ 0,267426168 -AL049279 0,267438916 -IL1RN 0,267473934 -QKI 0,267577841 -SOX15 0,267588393 -DMTF1 0,267672579 -RPL19 0,267821304 -TRIM39R 0,267839755 -SLC26A6 0,267879749 -NM_025056 0,267969441 -BBS9 0,267969882 -M85256 0,26799656 -ADORA3 0,268097905 -TMEM176B 0,268515164 -SECTM1 0,268600799 -ST14 0,268612452 -ARHGEF18 0,268652414 -SIRT5 0,268726991 -MYBPC1 0,268763379 -RPL15P22 0,268793196 -SIGLEC15 0,268860828 -DNAJA1 0,26890035 -LMBR1L 0,269042598 -GIMAP4 0,269074847 -MFAP3 0,269075993 -ABCA6 0,269120338 -AW836210 0,26919833 -LOC100133772 0,269228182 -CHST4 0,269387102 -RNASEH2A 0,269387986 -RPL18 0,269450865 -RPLP2 0,269486597 -MEPE 0,269489799 -FAM106A 0,269545639 -GATAD1 0,269621956 -PPP2R3A 0,269725552 -MASP2 0,269836416 -MYO10 0,26992164 -PIGG 0,269941407 -SMG5 0,269952017 -IFI30 0,269956381 -AK025180 0,269971157 -AMD1 0,269982316 -LMOD1 0,270125966 -SNX15 0,270191178 -SCARB1 0,270338985 -SERTAD3 0,270373355 -MBD5 0,270430073 -SLC2A5 0,270454389 -ITCH 0,270468949 -ADA 0,270490353 -PWP2 0,270541137 -ARHGEF1 0,270572389 -C2CD2 0,270675538 -EIF1 0,27071329 -C1orf35 0,270772513 -IFI16 0,270855012 -LOC285830 0,270905428 -IL10 0,271025993 -MORC4 0,2712707 -CA11 0,271346355 -C5orf54 0,271348162 -C14orf93 0,271428228 -RPL17P7 0,271481741 -TMEM161A 0,271564557 -LRCH3 0,271627825 -DFFB 0,271779652 -BAZ1B 0,271859723 -DKFZp547G183 0,271894591 -RAB11FIP2 0,271895928 -PCK1 0,27194659 -TMPRSS5 0,27195628 -TIPARP 0,272078235 -UBE2L3 0,272125747 -ZNF672 0,272142507 -GALNT10 0,272151507 -EXD2 0,272173543 -KAT2B 0,272322281 -RPS11 0,27237174 -POLR2H 0,272422791 -IGLL3 0,272574443 -AA554430 0,272578205 -DOCK10 0,272578712 -DMC1 0,272606886 -CD40 0,272762332 -CDK11A 0,272811711 -UCKL1 0,272898303 -FAM125B 0,273084179 -UBXN7 0,273084433 -SMA4 0,273204796 -DYNLT1 0,273349219 -CTTNBP2NL 0,273380758 -HSPH1 0,273396703 -CYP39A1 0,273418193 -HOMER3 0,273432217 -RRBP1 0,273480926 -ATAD2B 0,27361049 -LGALS3 0,273847411 -LASS2 0,273913098 -ZNF451 0,273935073 -NXPH4 0,27404559 -C22orf46 0,274118605 -KDM4B 0,27422483 -GPNMB 0,274363725 -CYHR1 0,274415705 -CCDC9 0,274487483 -WWC2 0,274522318 -ZNF652 0,274533788 -ILK 0,274538403 -CTDP1 0,27455992 -LOC51152 0,274810051 -AL442084 0,274963062 -CPNE7 0,275259638 -CENPB 0,275294531 -TCIRG1 0,275300556 -PRPF40A 0,275423637 -ARHGAP17 0,27552534 -LOC100133811 0,275961848 -ADAM17 0,276019886 -CRISPLD2 0,276144309 -IFIH1 0,276175289 -LOC440434 0,276293985 -DCLK2 0,276369722 -MS4A6A 0,276482788 -VASH1 0,276499979 -SRSF7 0,276513035 -B3GAT3 0,276752575 -CALHM2 0,276762436 -MAP4 0,276867434 -DULLARD 0,27687625 -CTSS 0,276943812 -BAG3 0,277040195 -KRT8P12 0,277155277 -POLR2F 0,277193722 -CD14 0,277207134 -SF3B1 0,277255775 -EZH1 0,277320185 -MBD1 0,277342685 -MITF 0,277407356 -BAIAP2 0,277445862 -FCGR2B 0,277531437 -PAQR4 0,277547889 -NFATC2IP 0,277597337 -CAT 0,277600148 -TJP2 0,277610024 -CCNA2 0,277687494 -GEM 0,277887602 -C2orf54 0,277935237 -HIRIP3 0,278018588 -MCM3APAS 0,278082892 -CFB 0,278130274 -TAGLN2 0,278365668 -AK024851 0,278382784 -HGD 0,278585783 -NR2E1 0,278716062 -SEC61A1 0,278797194 -PDE4DIP 0,278806635 -FRMD4A 0,278822955 -RHOC 0,278842121 -UBTF 0,278963815 -NCOR2 0,279024257 -PPP6R3 0,279218049 -ALAS2 0,279327775 -SPSB1 0,279537438 -SGMS1 0,279545277 -TEAD4 0,279565374 -AK024897 0,27961031 -IRS2 0,279708094 -TRIM62 0,279977776 -AF308291 0,279984986 -AK022362 0,280079092 -KIAA0495 0,280115197 -CUL7 0,280170918 -PARD3 0,280192562 -NUP98 0,280376383 -DHRS4L2 0,280391865 -AK024093 0,280444114 -VEGFB 0,280560816 -PTEN 0,280592383 -NBPF10 0,280620974 -CASP1 0,280699269 -AK2 0,280734467 -MLX 0,280792537 -GNG11 0,280826824 -HNRNPM 0,280968313 -IL12RB2 0,28098376 -CDK18 0,28098866 -RARA 0,280998983 -GYPC 0,281028129 -PAK4 0,28104576 -SEMA3F 0,281239182 -BAT2L2 0,281335934 -BRD4 0,28139016 -PAOX 0,281415979 -SMAD3 0,281446531 -PIK3R2 0,281480063 -IFT122 0,281682471 -IRAK4 0,281825175 -RASSF2 0,281825652 -RPL13A 0,282085077 -ZNF22 0,282127023 -KDM4A 0,282136199 -CPM 0,282150511 -EIF2S2 0,282316006 -USP48 0,282335945 -CLCNKB 0,282422648 -C11orf61 0,282474246 -ANKRD11 0,282516441 -PTTG1IP 0,282619596 -SEC14L1 0,282620994 -DOCK6 0,282646645 -CARHSP1 0,28271852 -RRAS 0,282814195 -TRIM38 0,283129972 -PLA1A 0,283206252 -GAB1 0,283220235 -PDLIM1 0,283254227 -SSH3 0,283308195 -KLF9 0,283315657 -N4BP2L2 0,283629404 -TNS4 0,283667599 -C15orf28 0,28383226 -ANXA11 0,283988681 -TAF12 0,283993401 -SLC39A1 0,284190806 -SAP30 0,284320416 -RNASE4 0,284337811 -RPS28P6 0,28438483 -DDR2 0,284449824 -BMP4 0,284614799 -CEPT1 0,284615091 -ITPKB 0,284650775 -PLEKHF2 0,284678379 -AW974812 0,284683098 -PTCRA 0,284827371 -SETMAR 0,2848555 -SOCS3 0,284925858 -NM_014129 0,284930906 -MYO1D 0,285094554 -RBL1 0,28514691 -HN1L 0,285254673 -LASS4 0,285307965 -RPS21 0,285547221 -PPP2R1B 0,285765143 -NEO1 0,285937917 -SEC24C 0,286013109 -BCL3 0,286014454 -KCNMA1 0,286080656 -AL137590 0,286198689 -EDIL3 0,286207431 -ARHGEF16 0,286210956 -HCK 0,286227266 -GSTA1 0,286246055 -SLA 0,286356975 -UNG 0,286379363 -SP100 0,286388329 -PRSS53 0,28642638 -MYL6 0,286728542 -CDH5 0,286728949 -C10orf116 0,286730624 -GTF2IRD1 0,286882519 -POLH 0,286995879 -SFRS16 0,287066034 -TPM4 0,28709233 -ABCD4 0,287100216 -GLT25D2 0,287127854 -COL18A1 0,287131911 -NPIPL3 0,287424398 -C1orf69 0,287453135 -MTF1 0,287488427 -IGF2BP2 0,287555495 -PALLD 0,287872078 -RPS16 0,287887395 -CYP2C9 0,287955438 -SC65 0,288029122 -CRYBG3 0,288096904 -SHC2 0,288312879 -FLNA 0,288339801 -NM_014486 0,288348194 -ISYNA1 0,288383809 -PNO1 0,288506351 -GZMK 0,2886543 -ATG13 0,288748426 -NCOR1 0,288772721 -ZSWIM1 0,288892162 -GPM6B 0,28893274 -SNTA1 0,289049438 -RHOBTB1 0,289064808 -GGA1 0,289073087 -ATXN2L 0,289088819 -FAM46A 0,289172187 -ZNF532 0,289393934 -CD40LG 0,289400418 -ZCCHC11 0,289421485 -WDR5B 0,289498086 -EPN2 0,289629137 -WNK1 0,289684816 -ZNF408 0,289721753 -LHFPL2 0,290003635 -NARG2 0,290029081 -STYXL1 0,29008917 -YY1AP1 0,290249669 -CPOX 0,290281635 -IL11RA 0,290333682 -PAXIP1 0,290387596 -ZNF282 0,290414378 -C11orf95 0,290643441 -MERTK 0,290681835 -VPS13C 0,29069039 -RPS17 0,290756898 -NEIL1 0,290762184 -ZNF292 0,290850132 -NOSIP 0,290873511 -DNAJB2 0,290950763 -INPPL1 0,29102828 -ZFX 0,29106383 -SETX 0,291138151 -SLC25A37 0,291207794 -PCDHGA8 0,291472818 -TXNIP 0,291962928 -DDX27 0,291971417 -BG389073 0,29216848 -JTB 0,292275569 -RBM10 0,292352574 -RASGRF1 0,29242252 -SYNM 0,292474024 -EXPH5 0,292481151 -NPL 0,292494012 -CHKA 0,292519533 -MGA 0,292564204 -SOX10 0,292580481 -AK024185 0,292975066 -FAM120A 0,292996604 -PLXNB1 0,293000141 -BDH2 0,293071563 -JRK 0,293136106 -SLC11A1 0,293139917 -TM4SF1 0,293242649 -EDA 0,293286441 -CDK10 0,293299298 -HLA-E 0,293305618 -LOC642846 0,293349826 -GFPT2 0,293396887 -SENP3 0,293408144 -RPS3AP44 0,293415546 -C16orf88 0,293431615 -FAM60A 0,293472328 -RPL36A 0,293501288 -SERPINA5 0,293547044 -CNOT8 0,293568161 -KDM4C 0,293620372 -POU2F2 0,293815578 -C14orf139 0,293870806 -ZNF217 0,293937173 -NM_025042 0,294034268 -NNMT 0,294200775 -VEZT 0,294224684 -KIAA0754 0,294307773 -RBM28 0,294637248 -ITPR2 0,294711729 -PPPDE1 0,294796015 -KLHL28 0,294874305 -MGP 0,294956866 -LOC729602 0,295016892 -SRSF5 0,295036903 -ROCK1 0,295267164 -SS18L2 0,295271871 -LMNA 0,29532356 -ESRRA 0,295387708 -SNHG3-RCC1 0,295411716 -TAL1 0,295434654 -SQRDL 0,295470062 -TARDBP 0,295665655 -LMAN2L 0,295705138 -RIN3 0,295771443 -PSPH 0,29602696 -DGKD 0,296027908 -WHSC1 0,296067068 -SPRY4 0,296068122 -ADARB2 0,296162399 -ELF3 0,296200778 -TLE1 0,296292637 -ACAN 0,296375799 -AK022038 0,296556116 -IL1RL1 0,296721787 -OR2A9P 0,296898432 -NCRNA00260 0,296954725 -CAD 0,296976627 -PNRC2 0,297129071 -IQCK 0,297134521 -ACOX2 0,297377087 -APOC4 0,297497329 -DGKA 0,297541846 -ZBTB1 0,297547513 -PUS1 0,297622568 -C7orf64 0,297653213 -FBLN1 0,297723957 -SBF1 0,297752819 -TMF1 0,298582891 -IL1R1 0,298701666 -LILRB3 0,298823808 -FLAD1 0,298825369 -CD163 0,299040686 -TCL6 0,299056301 -FADS3 0,299096634 -LBR 0,299180453 -AL162044 0,299184427 -ZNF337 0,299271736 -AHNAK 0,299352615 -YY1 0,299417937 -HIPK2 0,299439852 -NAT15 0,299519834 -ANKZF1 0,299817611 -NECAP2 0,299838267 -MAP3K7 0,299838407 -SAMD4A 0,299863792 -WDR8 0,300094232 -ZNF24 0,300179611 -NR3C1 0,300200063 -FGF1 0,300357727 -NPC1 0,300564708 -LMO4 0,300573598 -TTLL5 0,300853453 -AL050053 0,300945526 -RSU1 0,300958049 -C15orf39 0,301123219 -SLC14A1 0,301147038 -ELAVL1 0,301190126 -SLC17A4 0,301215925 -FANCC 0,301274346 -LRCH4 0,301338927 -EGFL7 0,301340052 -C9orf3 0,301357727 -SRGN 0,301411135 -PLCL1 0,301576339 -MAN1A1 0,301613058 -S100A8 0,301917937 -W86781 0,301984854 -HIP1 0,302012828 -OR7A5 0,302027387 -PPP1CC 0,3020408 -CGGBP1 0,302058231 -CYP3A4 0,302333153 -GALNS 0,302376776 -NR0B1 0,302394827 -SMNDC1 0,302468654 -MGST2 0,302482901 -RPL12 0,302658969 -DMPK 0,302955014 -TNRC6B 0,30299615 -PPM1D 0,303104009 -EED 0,303134999 -STAG3L1 0,3031801 -TMCC1 0,303195736 -RPL13 0,303245467 -RBPMS 0,30326423 -ARHGAP10 0,303298204 -PLCB3 0,303300054 -XPO1 0,303410309 -MYO1F 0,30341788 -SRPK1 0,303531642 -ZCWPW1 0,303562617 -MTHFD2L 0,303678034 -FAM111A 0,303798707 -TTC38 0,304186409 -COL7A1 0,304295553 -C4orf19 0,304312458 -NGLY1 0,304332742 -HTATIP2 0,304339936 -IFNAR2 0,304414877 -CXorf1 0,304737703 -UNC5B 0,304789798 -YAP1 0,30479215 -PHC2 0,30485466 -FBL 0,304914384 -CDH2 0,304939032 -FXYD2 0,304942957 -ANKRD36 0,305000603 -KRT8 0,305028726 -DSCAM 0,30505625 -SMO 0,305151387 -FCGRT 0,305420183 -PAIP2B 0,305483478 -PABPC1 0,305528523 -PIGV 0,305604211 -BACH2 0,305697602 -PLGLA 0,305722503 -MORC3 0,305845022 -DIDO1 0,305996983 -PRPF38B 0,306041882 -TRMT1 0,306054262 -NFATC1 0,306233076 -AK021495 0,306242002 -GPR1 0,306335484 -STARD13 0,306369109 -CELSR2 0,306371185 -ZNF193 0,306396574 -ABHD6 0,306458055 -PLCXD1 0,306486283 -RPAP1 0,306695411 -AL050122 0,306737964 -DHRS3 0,306750918 -C1QA 0,306800137 -AF009267 0,30681596 -SETD2 0,307047565 -STX6 0,307184977 -TMEM204 0,307304516 -SMYD2 0,307490131 -BF942161 0,307560212 -SLC44A1 0,307685609 -ELF2 0,307698089 -AATF 0,307770923 -AV761453 0,307800442 -ACTN1 0,307927265 -AI523613 0,307943372 -SOLH 0,307971092 -ZNF410 0,308222237 -GOLGA4 0,308250269 -FLJ21369 0,308352331 -FCGR2A 0,308469725 -BRD7 0,308638563 -TLR2 0,308769609 -FTHL5 0,308790654 -SPOCK1 0,308861441 -LSM14A 0,308907157 -USF2 0,309161806 -TENC1 0,309220224 -EMP2 0,309252571 -BSDC1 0,309299474 -ZNF701 0,309462113 -PLIN3 0,309516744 -SORBS1 0,309562012 -FTL 0,309588981 -AGFG2 0,309634949 -UBR5 0,309647344 -MMP14 0,30965745 -SFRS8 0,309923113 -ITPR3 0,309975876 -PLK3 0,310097184 -NUP188 0,310124261 -CROCC 0,310245563 -CHSY1 0,310328559 -CTCF 0,310675097 -EDC4 0,310685915 -NFE2L2 0,31069885 -LILRA6 0,311008878 -SATB2 0,311055754 -GTPBP6 0,311254994 -TSPAN14 0,311316513 -C10orf18 0,31133762 -SECISBP2 0,311419174 -DHX34 0,311443077 -LSS 0,311450185 -CHI3L1 0,311532669 -PDGFC 0,311715929 -BMP7 0,311741682 -MBNL1 0,311755686 -DNA2 0,311841432 -COMT 0,312081286 -LOC100133005 0,312165679 -PTOV1 0,312192713 -LCAT 0,312407744 -LRRFIP2 0,312480817 -UCN 0,312589312 -AK024606 0,312655002 -MICAL3 0,312700621 -ROM1 0,31291043 -MED12 0,312925796 -CPNE1 0,313173908 -GBP2 0,313262095 -PELI2 0,313279559 -MLL 0,313398121 -HIF3A 0,313438743 -ST18 0,313449639 -AF131777 0,313643716 -CATSPER2P1 0,313785721 -ZNF302 0,314066212 -APBB2 0,314110219 -KIAA0907 0,31421022 -ZNF592 0,314679884 -HNRNPA1 0,314773035 -TSC2 0,314882123 -SFRS15 0,314884343 -ZNF835 0,314920694 -WDR6 0,314979423 -LOC729143 0,315037798 -PPARD 0,315048839 -U2AF2 0,315118843 -MGAT1 0,315269456 -ZNF44 0,315270856 -RPL36 0,315475789 -GRAMD3 0,315513449 -PTPN2 0,315554784 -AL080072 0,315635626 -C19orf2 0,315918303 -DNAH3 0,315930745 -ZNF146 0,316341954 -SMEK1 0,316538461 -MLXIP 0,31681421 -NMT2 0,316848231 -G3BP1 0,316864559 -DDX3Y 0,316997159 -STEAP1 0,317082981 -BC002629 0,317231764 -KDM2A 0,317406731 -TMEM39A 0,317430306 -C15orf29 0,317437851 -MACF1 0,317513626 -LOC391020 0,317572673 -SETD1A 0,317586539 -KTN1 0,317889697 -RUNX3 0,31809511 -NINJ1 0,318107478 -ARMC7 0,318150459 -BMP1 0,318194029 -DKFZP586I1420 0,318199121 -JARID2 0,318226296 -AW972351 0,318303541 -PAPSS2 0,31841091 -ELTD1 0,31845583 -ETS2 0,318667898 -CREB3L2 0,318705762 -DFNB31 0,31892768 -SERHL2 0,318966243 -C10orf26 0,319058163 -NM_030892 0,319421731 -WRAP53 0,319795295 -UBQLN4 0,319828198 -RALGDS 0,319938162 -PRKCH 0,320101043 -AU146983 0,320105843 -SLC5A3 0,32021553 -DUSP1 0,320239212 -NKX2-2 0,320312108 -C1orf183 0,320387827 -PCM1 0,320482282 -THRA 0,320531901 -NM_025028 0,320726138 -SIVA1 0,320736787 -TTR 0,320757249 -IKBKB 0,320778441 -ARID1A 0,321020715 -HDAC4 0,321059842 -ZFP36L2 0,321167918 -TMEM212 0,321179342 -AA443771 0,321214505 -AGAP5 0,32125931 -PIGA 0,3216713 -SFRS12 0,321704401 -LDLRAP1 0,321832456 -CCDC21 0,321857948 -SSFA2 0,321990716 -RAMP1 0,322050077 -FLJ10357 0,322160744 -LAD1 0,322322766 -RACGAP1 0,322340831 -NPIPL2 0,322616655 -CEP350 0,322648588 -CRLF1 0,322735059 -IGSF9B 0,322744338 -PLXND1 0,322801951 -MCL1 0,322913781 -ALMS1 0,32297709 -ZNF768 0,323059066 -RSL1D1 0,323228527 -C4orf34 0,323582139 -PNPLA6 0,323738553 -MAST4 0,323801655 -NME3 0,323835175 -SNHG3 0,32391938 -S100A12 0,324014586 -PPP4R1 0,32409634 -PLD1 0,324165096 -POLG 0,324186823 -NKTR 0,324203565 -ST3GAL4 0,324231325 -TMEM63A 0,324243134 -ST20 0,32438459 -RNF114 0,324406844 -HYI 0,324468621 -DUSP6 0,324699964 -NR1H2 0,324884332 -DVL2 0,324900869 -SRSF11 0,324979841 -CLK2 0,325170283 -MKLN1 0,325287178 -SCRIB 0,325320413 -KIAA0467 0,325541973 -DMWD 0,325745064 -KLHL23 0,32579572 -RPS6 0,325948088 -ZBTB17 0,326014408 -RAI14 0,326038467 -UBE2G2 0,326143089 -ZNF562 0,326186073 -EZR 0,326282578 -TRPS1 0,326283144 -HFE 0,326390644 -MED23 0,32658232 -DDX11 0,326766632 -SHMT2 0,326784725 -LRP5 0,326954416 -PTH1R 0,327100265 -LOC731602 0,327131294 -AA401963 0,327241371 -CDK5RAP2 0,327276136 -SERP1 0,327279991 -SLC1A5 0,327303416 -BGN 0,327370767 -HSD17B1 0,327475971 -AL390143 0,327497051 -DIAPH2 0,327617697 -PITPNC1 0,327719899 -SPRY2 0,327767132 -FZD7 0,327974293 -MAP4K4 0,328171238 -TNS1 0,328369107 -ZNF783 0,328517049 -M78162 0,328518574 -ADAMTS1 0,32853944 -FKBP5 0,328911405 -AGAP8 0,329115979 -PLEKHF1 0,329179433 -DNAJB1 0,329339376 -RBMS2 0,329438459 -HNRNPH1 0,329454824 -ULK2 0,329496298 -PAPD7 0,329501864 -SURF1 0,329547559 -W61005 0,329673439 -ZNF862 0,330131081 -GNA15 0,330266409 -CHD9 0,330273108 -DLC1 0,330294104 -TMEM2 0,330321664 -AK024879 0,330353812 -N4BP1 0,330435804 -SERF2 0,330633507 -SNRPA 0,330957742 -IRF8 0,33098543 -ABCA2 0,331251046 -NPFF 0,331328402 -CP 0,331565597 -AU144887 0,331713137 -AW851559 0,33185735 -TCF4 0,332062967 -ZNF354A 0,332076549 -TMEM92 0,332352956 -NFATC3 0,332386137 -SSRP1 0,332529738 -TCF7L2 0,332651908 -PIM1 0,332716071 -PIP4K2A 0,332914219 -EIF4EBP1 0,332959146 -LOC100132863 0,333054912 -MMRN2 0,333075923 -AU147295 0,333342973 -VIM 0,333356286 -C2orf67 0,333469715 -DNMT1 0,333550022 -CEP110 0,333679402 -BAZ2B 0,33371151 -KDELR2 0,333939841 -L3MBTL 0,334448273 -CDK19 0,334505985 -CYorf15B 0,334832089 -DDX17 0,334839203 -FKBP4 0,335166906 -STOM 0,335173644 -U82303 0,335241438 -LOC202181 0,335841121 -ATM 0,335893127 -STK3 0,335957389 -MID1 0,336166241 -IGFBP5 0,336454348 -PARP4 0,336459483 -EXOC7 0,336479503 -FANCG 0,336652927 -PHF2 0,336678654 -FBRS 0,33674511 -ANP32B 0,336836072 -NCK2 0,336876937 -CASP6 0,336920233 -ZBTB3 0,337122586 -DHFR 0,337448147 -APOLD1 0,337464001 -STAG1 0,337490482 -NM_024305 0,337551103 -SIGLEC8 0,337608204 -ERLIN1 0,337809212 -POLDIP3 0,337889824 -SPTLC2 0,33799094 -C7orf26 0,338204972 -UBE2D4 0,338265561 -MAP2K7 0,3384787 -MECOM 0,338508564 -DOCK1 0,339029429 -HS1BP3 0,339148762 -PRKY 0,339216015 -GOLGA1 0,33927478 -XPC 0,339433169 -PHF3 0,33953002 -HIC2 0,339768003 -C9orf7 0,340519877 -CTDSPL 0,340591645 -ZNF83 0,34077157 -PHGDH 0,340889735 -TMEM165 0,340978736 -CLN3 0,341078466 -AU147983 0,34113627 -PATZ1 0,341151411 -DIP2C 0,341390806 -RECK 0,341533646 -EWSR1 0,342003886 -SMAD7 0,342182186 -MTRF1L 0,34225773 -TJAP1 0,342452426 -PRKD2 0,342725824 -SPOP 0,343019265 -HLA-J 0,343028528 -PLXNB2 0,343103735 -FBXL14 0,343454364 -LAMA2 0,343637649 -RNF220 0,343845541 -CLK3 0,344164444 -STARD3 0,344187457 -OGT 0,345118989 -IFITM3 0,345141829 -HMOX1 0,345196784 -EIF2C2 0,34557825 -CCND3 0,345663426 -TGFBR3 0,345676022 -POLR2J3 0,345712548 -BCAR3 0,345713549 -C14orf147 0,34610842 -CLDN15 0,34616346 -TOP1 0,346179876 -RASL12 0,346286134 -MED13L 0,346369067 -SOS2 0,346799305 -SERPING1 0,347144597 -IER5 0,347279068 -TLE2 0,347426427 -LLGL2 0,347448236 -TMCC2 0,347500013 -PHF20 0,347602909 -SIRT4 0,347862165 -OSGIN1 0,348060574 -H2BFS 0,348076316 -NM_017756 0,348230007 -NCRNA00115 0,348422218 -MT1E 0,348733923 -NACC2 0,3488369 -NFIB 0,348943619 -AKR1C3 0,349206923 -ARPC1B 0,349407208 -NIPBL 0,349628117 -RPL11 0,349803207 -MSH6 0,350014407 -PTDSS2 0,350073646 -AL050145 0,350120404 -FAM107A 0,350271118 -CHN2 0,350358174 -DAPK2 0,350378033 -DLG5 0,350436992 -OPHN1 0,350596034 -C20orf11 0,351010126 -SLC35D1 0,35135795 -SELL 0,35142274 -FAM193B 0,351790995 -NM_024880 0,352020901 -RASGRP2 0,352114346 -CAPN3 0,352194849 -THOC1 0,352289646 -TAOK3 0,352396226 -FBXO42 0,352613215 -LARP6 0,352692849 -KLKB1 0,352702835 -METTL7A 0,352961228 -STIP1 0,352968743 -WIPF2 0,353085817 -FOXD1 0,353404764 -HSPB2 0,35378232 -ENGASE 0,353978221 -LAT2 0,354239264 -HIST1H2AH 0,354250391 -GSDMD 0,354483715 -TRA2A 0,354674037 -C19orf29 0,354762053 -BRPF1 0,355002213 -NUMA1 0,355146564 -SNW1 0,355320637 -SMARCC1 0,355374541 -ZNF175 0,35555253 -BATF3 0,355680727 -HIST1H2BC 0,35575565 -ERN2 0,356098991 -ZFR 0,356185362 -AW301806 0,356253591 -SMTN 0,356289422 -RPS6KA2 0,356774064 -MIIP 0,35685635 -ARGLU1 0,356919378 -CTNNAL1 0,357152141 -PCDH9 0,357228835 -LAS1L 0,357263917 -DOK1 0,358029668 -AFTPH 0,35852635 -ZNF143 0,358674337 -C11orf71 0,35888557 -MICALL2 0,359221642 -KDM6A 0,359260932 -CFH 0,359284568 -CEBPB 0,359516672 -MTUS1 0,359547348 -AW973791 0,359548173 -SERTAD2 0,359684853 -FGFR1 0,359721729 -KPTN 0,360479451 -NR2F2 0,361169645 -RGL2 0,361384531 -NM_014120 0,361482036 -TAF5 0,361611903 -ZC3HAV1 0,362177526 -BEST1 0,362248528 -TNFRSF1A 0,362724804 -CLIP2 0,363062238 -EHMT2 0,363078239 -IFITM1 0,363162265 -GCFC1 0,363190607 -PECAM1 0,363227012 -YES1 0,363556218 -ZFP36L1 0,363744573 -SBNO2 0,364095165 -RMND5A 0,364201024 -IL10RB 0,364481295 -CBS 0,364486163 -TBC1D2B 0,364503601 -C10orf10 0,36458821 -AU144530 0,365137826 -ZNF500 0,365202134 -ATP6V0E1 0,36527949 -SEPT8 0,365711052 -VCAN 0,365762437 -RPL36AP51 0,366073863 -RPL31 0,36613283 -TAOK1 0,36613666 -GCN1L1 0,366181489 -CALCOCO1 0,366300689 -GNA11 0,366387362 -SH2B2 0,366425408 -RREB1 0,367259867 -SLC35E1 0,3672965 -GPRC5B 0,367311931 -TCF7 0,367371063 -PDIA4 0,367810651 -ZNF34 0,367845233 -MBD3 0,36793004 -CXCR4 0,368041224 -C9orf114 0,368120984 -IFITM2 0,368313531 -ZNF665 0,368328536 -ZCCHC24 0,368368275 -LOC100133944 0,369022431 -CSDA 0,369150342 -AU148255 0,369666508 -CIZ1 0,369704457 -CRTC3 0,369792369 -CTNNA1 0,369962411 -RARRES2 0,37011032 -NM_025033 0,370246707 -VSIG4 0,370274949 -FAM48A 0,370421427 -ZDHHC11 0,370675656 -NPAS2 0,370715345 -ADH1B 0,370935809 -ACSL1 0,371025369 -C1orf63 0,371083889 -TYMP 0,371266716 -LEPREL1 0,371463494 -LAMB2 0,371472469 -MAFB 0,371542293 -AW971248 0,371589606 -BC003629 0,371603781 -FAM63A 0,371786321 -ABCA1 0,371992682 -IGF2R 0,37211512 -SOX13 0,372131188 -WAPAL 0,372391179 -ZFC3H1 0,372437982 -ZNF710 0,372493324 -HSPA6 0,37258644 -CCDC101 0,372823539 -BAZ1A 0,372824952 -AXL 0,372842922 -NPIPL1 0,372916072 -HDGF 0,372923023 -KHDRBS3 0,373093219 -MT1X 0,373144553 -MTMR15 0,373164421 -AF257099 0,373262757 -AEBP1 0,37342966 -KLHL25 0,373672957 -GJB4 0,37372121 -LUC7L3 0,374023648 -U79248 0,374142769 -LOC653562 0,374188384 -RBM4 0,374375075 -ABCC10 0,374890625 -CXorf21 0,374896996 -DAXX 0,374917403 -C1R 0,375063944 -TPST2 0,375279072 -KLHL24 0,375307199 -C7orf68 0,375539219 -ZCCHC8 0,375600764 -CASP4 0,375605037 -ETV1 0,37597402 -BIN1 0,376340315 -RGS19 0,376617752 -PKNOX1 0,377091746 -CTTN 0,377173864 -TRIP10 0,377452782 -ANGEL1 0,377498562 -PLIN2 0,377879768 -NM_025007 0,377942771 -PTMA 0,378229214 -S100A11 0,378255627 -AXIN1 0,378580893 -NPRL3 0,378633074 -PNN 0,378695864 -AV727934 0,378843386 -ANGPT2 0,37912784 -AK023918 0,379250766 -CNPY3 0,37927474 -AF130051 0,37947818 -TLE4 0,379880985 -PAPOLA 0,379974199 -ITGB5 0,380683545 -FAM38B 0,380693638 -PABPN1 0,380909515 -SLC6A8 0,38116858 -RYBP 0,38121367 -NASP 0,381229843 -FGR 0,381246748 -PER1 0,381695992 -CDR2L 0,381867955 -LRRFIP1 0,382075479 -HMHA1 0,382282948 -KIAA0485 0,382313718 -GUSB 0,38235255 -RPS17P5 0,38240934 -FXYD5 0,382563723 -RBL2 0,382697586 -RANBP10 0,382980904 -NEDD9 0,383084673 -MSL2 0,383144236 -FAM50A 0,383317183 -AL080232 0,383323554 -SPG21 0,383712061 -TPD52L1 0,384098652 -H2AFX 0,384141378 -SWAP70 0,384225003 -IVNS1ABP 0,384369268 -KDELC1 0,384542393 -MYL12A 0,384757468 -FOXO3 0,384856157 -MED13 0,385128516 -AL049252 0,38560217 -AF007147 0,385820993 -PAX6 0,385884587 -DNASE2 0,38591545 -SLC12A9 0,386200858 -SIRT1 0,38637719 -ARID5B 0,386492868 -MT2A 0,38656824 -SLC38A2 0,386710042 -GNG5 0,386756333 -SRRM2 0,386841072 -SERPINB6 0,386985458 -CC2D1A 0,387023088 -LRRC37A2 0,387067777 -CSF1 0,387071999 -RPL29P11 0,38708859 -SFRS14 0,387094074 -MYO9B 0,387103012 -AW972855 0,387241981 -TRIP4 0,387728627 -ZBTB40 0,387827711 -STARD8 0,387863703 -WBSCR16 0,387992811 -NXF1 0,388021286 -CTDSP1 0,38803541 -RSAD1 0,388042285 -SUV420H1 0,38833134 -CDKN1C 0,388508896 -NM_016415 0,388588403 -E2F4 0,388673603 -KANK2 0,388702219 -ZC3H7B 0,388980025 -ANGPTL4 0,389035415 -CRY1 0,389801967 -KIAA0556 0,389845114 -TBC1D16 0,390016803 -TCOF1 0,390109025 -ZFYVE26 0,390278079 -IFRD1 0,39034324 -EIF4B 0,390385914 -SMC1A 0,390525141 -SCIN 0,3907272 -MARS 0,391061966 -PTRF 0,391089965 -POLR2J 0,391514571 -APAF1 0,391530483 -ITPK1 0,3915415 -PNRC1 0,392133859 -CLIC2 0,392140808 -KIAA0913 0,392243895 -PRKAR2A 0,392619325 -PRKX 0,392750502 -SYDE1 0,392957216 -ACSL5 0,393140899 -LRP10 0,393162277 -LPP 0,393214983 -SNTB2 0,393383504 -NADK 0,393882671 -PCBP2 0,394206896 -N51370 0,394562467 -CLIC1 0,394663761 -CTBP2 0,394785714 -PHB 0,394929787 -BCL2 0,395102709 -TAF4 0,395492947 -LOC652607 0,395562084 -YBX1 0,396079328 -PRPF3 0,396609142 -SLC38A10 0,396741732 -ERBB2IP 0,396808535 -CFLAR 0,396840203 -TNFRSF10B 0,397091951 -PHC1B 0,397196351 -ARL17A 0,397406114 -ZBTB20 0,397424403 -REPIN1 0,397830532 -BE466926 0,397930108 -MT1P2 0,398055653 -ZNF778 0,398225613 -DICER1 0,398300689 -NM_018603 0,398329284 -RAF1 0,398631868 -MXD4 0,398685167 -FBXL7 0,398770393 -CALD1 0,399121196 -GSDMB 0,399246982 -ZCCHC2 0,399293751 -PODXL 0,399691684 -ACACB 0,400136922 -VEZF1 0,400413083 -PLEKHM1 0,401187317 -CSPG4 0,401646086 -ID3 0,40170175 -RBM41 0,401719975 -KDM6B 0,401885964 -PHF15 0,402522419 -LAMP2 0,402538077 -CDC14B 0,402583482 -HNRNPL 0,403044314 -SLC4A2 0,403448509 -DDX23 0,403953946 -TUBD1 0,40407115 -SLC16A3 0,404204458 -CAPN2 0,405022548 -CBFA2T2 0,40560438 -TCEB2 0,405769952 -HNRNPF 0,406126644 -MORC2 0,406182732 -FOXO1 0,406430281 -AI962978 0,406538883 -HP1BP3 0,406567553 -CBFB 0,406789498 -RBM14 0,406886421 -SFI1 0,407058786 -ZHX3 0,407089165 -KDM3A 0,407233406 -SIRT2 0,407341821 -ANKS1A 0,407373917 -TCF3 0,407442968 -NOTCH2NL 0,407672378 -EEF1D 0,407830724 -SOX12 0,408065349 -SLCO1A2 0,40820492 -HNRNPA3 0,408299868 -GTF2H3 0,408624789 -FZD9 0,408729069 -SAFB2 0,408755308 -APBA3 0,408834306 -ASCL1 0,409161488 -CG012 0,409559201 -WDR59 0,409606436 -LAMA5 0,409632505 -ZNF276 0,409730125 -ZNF395 0,410080702 -TIMM44 0,410223052 -BGLAP 0,410749324 -ZHX2 0,411039562 -CARS2 0,411302016 -SLCO3A1 0,411338796 -LOC442497 0,411765627 -FRYL 0,411842495 -CYP2J2 0,412070197 -ABL1 0,412522321 -INF2 0,412975218 -SGK1 0,413352645 -SFTPB 0,413789208 -TIGD1L 0,41383023 -RBCK1 0,414019825 -TRAPPC10 0,414285862 -DUSP7 0,414641136 -WSCD1 0,415016303 -DCP1A 0,415308358 -LPAR1 0,415365439 -RBBP6 0,415730871 -DONSON 0,416255506 -C16orf5 0,416258918 -NCOA1 0,416350707 -CFHR1 0,416440287 -AA126763 0,416566153 -LRRC32 0,416765832 -CP110 0,41732481 -LTBP3 0,417338221 -TDRD3 0,417356196 -HMG20B 0,417456909 -CDC42EP2 0,417645635 -TAF1C 0,417736819 -NM_013344 0,41778911 -VGLL4 0,417820331 -PHKA2 0,417904785 -KDSR 0,418009802 -RELA 0,418064238 -TBL1X 0,41814877 -SIAH2 0,418727849 -MYO1E 0,418747589 -HIST1H2BD 0,419127582 -AI744451 0,419208355 -PTMAP7 0,419537834 -ARID5A 0,419593497 -CYP27A1 0,420064872 -RAB13 0,420441013 -CPSF7 0,420526378 -CPT1B 0,420770156 -LRDD 0,420794327 -PILRB 0,421599366 -STAB1 0,421733406 -FCHO1 0,422126906 -ZNF32 0,422311821 -TBC1D3H 0,422328806 -C1orf66 0,42292679 -NM_025032 0,423323973 -AI732802 0,423584905 -PCID2 0,423787762 -POGK 0,423912669 -TMEM140 0,424587207 -TMC6 0,424604298 -AL080160 0,42490597 -AK021505 0,425024442 -SCD5 0,425610027 -RAD52 0,425956612 -AF116715 0,425960499 -DCI 0,425967692 -SFRS18 0,426091505 -HCG2P7 0,426136765 -ADORA2A 0,426366158 -NM_021651 0,426442506 -MID1IP1 0,426940092 -HNRNPC 0,427103695 -NM_025024 0,427155973 -AK024315 0,427460397 -AK021514 0,427966252 -SLC29A3 0,428138792 -NSUN5 0,428255135 -PHF10 0,428599049 -DAPP1 0,428626141 -TMEM109 0,428647746 -LOC91316 0,428742129 -ITGB4 0,42956266 -SLC30A1 0,429998682 -AW150065 0,430129937 -ZCCHC6 0,430267528 -ARHGEF2 0,430371137 -AK027193 0,43049002 -TRIM52 0,430535815 -MT1G 0,430767233 -NOTCH1 0,430849119 -ZRSR2 0,43114681 -RPS6KA1 0,43184981 -KANK1 0,432456197 -FURIN 0,432618855 -APOBEC3C 0,432749845 -ANKRD40 0,432772877 -TRIOBP 0,432900403 -ZNF384 0,433116555 -CDKN1A 0,43319672 -BTG1 0,433570541 -EPHX1 0,433658916 -CNOT6 0,434207544 -HSPA1L 0,434322364 -PKD1 0,434547199 -WAS 0,434717417 -RPL23AP32 0,434993767 -P4HA1 0,434997425 -MAX 0,435160002 -UIMC1 0,435278167 -NM_025120 0,435322168 -NCOA6 0,435700178 -TPD52L2 0,435768747 -BCL6 0,435938226 -AK024108 0,436355329 -C7orf23 0,436800978 -CDC42BPA 0,437074951 -CD59 0,437137855 -POLR1B 0,437227618 -TLR5 0,437498143 -HDAC1 0,437993569 -ARHGEF7 0,438071237 -AA045174 0,438161955 -TBC1D17 0,438488128 -PRELP 0,438518539 -GTF2H2B 0,438525643 -HIST1H2BK 0,43866778 -AU147851 0,438979485 -RBM39 0,439661925 -IQGAP1 0,439786742 -RPL18AP3 0,440613252 -LTBR 0,440721546 -RPL35A 0,441136859 -ARAP2 0,441441928 -ARAF 0,441560027 -MT1H 0,441587824 -LOC441258 0,442117007 -ZCCHC14 0,442132801 -IRF7 0,442147625 -NOL12 0,442203671 -PTPLB 0,442541309 -AI683552 0,442752948 -MYST1 0,442881562 -MXI1 0,443040642 -AW974910 0,443299524 -C1orf144 0,443500279 -KRCC1 0,444417306 -PIAS4 0,444438643 -SRSF1 0,444637015 -LRP2 0,444740953 -ZDHHC18 0,445392541 -SPN 0,445443935 -ST13 0,446667878 -PHF17 0,446746739 -NACA2 0,446876872 -SASH1 0,447285208 -CD22 0,44772036 -CSNK1E 0,447902552 -COL5A3 0,447933631 -MAT2A 0,448695587 -EFHD1 0,448820126 -MAP3K3 0,448963961 -BIN3 0,449317201 -LUC7L 0,449469644 -KIF1C 0,449622117 -RNF144A 0,450034368 -TULP3 0,450626451 -CDKN2C 0,450879897 -HSD17B7 0,451226227 -ACIN1 0,451331774 -PABPC3 0,451363083 -PHF21A 0,45139036 -HNRNPH3 0,451480034 -HIST2H2BE 0,452219911 -RRP1B 0,452597128 -SOX2 0,453132172 -ZNF444 0,453296716 -FAM13A 0,453547738 -JUP 0,453753674 -PODNL1 0,453854292 -MAML1 0,453885 -SNRNP70 0,45408945 -SDCCAG3 0,45464357 -PLGLB1 0,454722494 -CDH19 0,454754165 -HSPA1B 0,455063205 -ARHGEF10 0,455229121 -NFIL3 0,455469821 -NFKBIA 0,455577982 -XRCC2 0,455670024 -ACTN4 0,455764555 -PDS5A 0,456071133 -POU2F1 0,456120351 -VPS54 0,456318614 -BANF1 0,456451252 -PGCP 0,456765652 -RPL28 0,456867479 -ICAM2 0,457066169 -SNAP23 0,457069788 -SART1 0,457941993 -AK023891 0,458253977 -BANP 0,458588544 -MAP3K11 0,458968207 -EPOR 0,459463669 -FKSG49 0,459538011 -MT1F 0,459638951 -NM_014128 0,460468204 -AP1G2 0,460676306 -GAS2L1 0,461632768 -PHIP 0,462053958 -NOL8 0,462387404 -NM_017932 0,462395281 -RNF130 0,462894529 -ZMYND8 0,463309493 -AK024525 0,463401166 -TRIM28 0,463454342 -BCAT2 0,463509769 -TYRO3 0,463574548 -PHLPP1 0,463738295 -BST2 0,465024297 -PDGFRB 0,465034704 -AL049987 0,465336929 -AKAP8L 0,466278804 -TGM2 0,467555999 -CREBBP 0,467899354 -KIAA0894 0,468325808 -DDX39 0,468959477 -NCAPD2 0,468959537 -ALPK1 0,469621875 -TGIF1 0,469902489 -PPP1R14B 0,470121069 -PNMT 0,470291567 -NAA16 0,470467422 -ZNF611 0,470526774 -ZRSR1 0,470857426 -NPIP 0,472818474 -RBM38 0,473036567 -USP34 0,473278809 -TGFB3 0,474067001 -ITSN2 0,475328182 -CEBPD 0,475754278 -MCM3AP 0,476296498 -HAPLN2 0,476718109 -POGZ 0,477224004 -NR2F1 0,477556735 -GAS1 0,478628972 -SLTM 0,478903701 -ECE1 0,479007813 -CALCOCO2 0,47910558 -RXRA 0,479821295 -MEIS2 0,480178943 -CLEC2B 0,481843785 -AL049260 0,482481089 -CHST3 0,48259726 -COL16A1 0,483094975 -SLC25A16 0,483255606 -LHPP 0,48421483 -AF010144 0,484619234 -GTSE1 0,484629217 -MUM1 0,484956644 -TNXB 0,485246904 -PRINS 0,486032909 -ANKRD49 0,486282532 -PTPRK 0,486899575 -PPAP2C 0,487395433 -C22orf9 0,488987561 -KHNYN 0,489026627 -RAPGEF3 0,489474077 -AF078844 0,489716822 -MAN2A1 0,489875474 -IFT20 0,490824284 -USP21 0,490859618 -NOP2 0,491526918 -LOC440248 0,491905455 -LOC647070 0,493492979 -MAFF 0,494072026 -BG251521 0,495196452 -C6orf145 0,496322836 -MLL4 0,496324893 -ATF4 0,49676781 -RELN 0,497310216 -PELI1 0,497491599 -P2RX7 0,497499324 -CNOT2 0,498172475 -FAM38A 0,498599859 -DCLRE1C 0,498693515 -INSR 0,502304787 -MAPKAPK2 0,502573806 -NDE1 0,50267356 -MT1M 0,502716901 -CDK5RAP3 0,504041432 -SULT1A4 0,504805398 -NSUN5P2 0,505093708 -ANKRD10 0,505841449 -LOC339047 0,506042447 -LRRC1 0,506594446 -CUX1 0,507257715 -SRRT 0,508240438 -MAF 0,508625791 -EBLN2 0,509549245 -NM_017618 0,510705903 -RBM4B 0,51138423 -FBXW12 0,511744983 -ATP8B1 0,511969804 -NM_024978 0,512045897 -KCNMB4 0,512142959 -CLMN 0,512461537 -LOC100132540 0,512589899 -SERPINH1 0,513136463 -RHBDF2 0,513703735 -PCF11 0,514081494 -HAUS2 0,514694211 -TECPR2 0,514970535 -TNIP2 0,515014912 -AUP1 0,516155581 -KIAA0101 0,516801916 -N35922 0,51703624 -STK38 0,517483454 -AZGP1P1 0,518047589 -C13orf15 0,518310047 -PRR11 0,518691616 -PDCD6 0,51972326 -AFF1 0,520716014 -AF222691 0,521107674 -BE045142 0,521502008 -PACS2 0,521749261 -PSRC1 0,522634606 -ZNF358 0,523463012 -MAPKBP1 0,523696079 -S100A4 0,524041412 -MYO1C 0,524902669 -IRF3 0,52538788 -TOB2 0,526119659 -KLHL21 0,527145117 -PGF 0,527713686 -LOC399491 0,528407104 -ARAP1 0,528556373 -AZGP1 0,528659072 -SIRT7 0,528927974 -C16orf53 0,529668261 -KLHL2 0,533153888 -AK022213 0,533802801 -ANKRD28 0,534099367 -TF 0,536170201 -MAVS 0,53636005 -MSX1 0,536723495 -C12orf35 0,537890473 -AA554945 0,538449904 -SUN2 0,539191173 -RBM6 0,54218394 -AL080112 0,542349721 -SORT1 0,542569398 -AL049285 0,542660805 -FOXO4 0,542834527 -ABCA8 0,543725594 -RING1 0,54468938 -KCNE4 0,546337688 -TAZ 0,546506594 -DIP2A 0,546907877 -CLK4 0,548788669 -ZNF277 0,549312201 -MUS81 0,551193399 -DBT 0,556696292 -EMP3 0,557013195 -DDIT4 0,557077384 -RUFY1 0,557170712 -MYST3 0,559285285 -PRPF4B 0,559881298 -LOC100132247 0,562956585 -HSPB1 0,56508456 -CHD7 0,566776564 -CHORDC1 0,566831861 -COBL 0,569205746 -STAG2 0,569603186 -CTDSP2 0,570069613 -ZNF160 0,572703009 -PDE4C 0,574535337 -WWC3 0,575159977 -BMI1 0,576213767 -CRYAB 0,577245348 -AHCTF1 0,577515066 -ADIPOR2 0,5780263 -CASC3 0,57815663 -MUTYH 0,579456271 -AK023783 0,580340854 -HIGD1B 0,583663012 -PLOD1 0,587347495 -PRR14 0,587364521 -SH3BP4 0,58788373 -C19orf28 0,587956493 -NDRG1 0,588555643 -HIST1H1C 0,591446402 -TCF12 0,592176798 -MPST 0,593408757 -SEPP1 0,593935425 -DNAJB6 0,595685757 -SIRPA 0,596218961 -FLT1 0,597923318 -MYOT 0,598968138 -HIST1H2AC 0,600586387 -HBP1 0,600714263 -KAZ 0,601415288 -PTBP1 0,602313539 -NSUN5P1 0,603090503 -GUSBP3 0,604393039 -KCNJ2 0,616084197 -KAT2A 0,620256502 -MCM7 0,622618327 -FBXW4 0,627081137 -MKNK2 0,628440154 -IL17RB 0,631530593 -CLK1 0,632420317 -LRP4 0,632833859 -FAM53B 0,641895571 -JMJD6 0,64411039 -TYK2 0,644727629 -PLOD3 0,644893842 -CXXC1 0,650530485 -AK024136 0,659066605 -PAN2 0,66036619 -NPTX2 0,665210794 -SPEN 0,669461617 -SETD5 0,670191692 -STX10 0,674048462 -CDK2AP2 0,67411425 -PPM1B 0,68382966 -SLCO4A1 0,685048974 -GLT25D1 0,706365388 -ZC3H11A 0,716021559 -ZBTB16 0,720405109 -ZNF692 0,720940567 -NUPR1 0,724120307 -FLCN 0,747339708 -NFASC 0,755177517 +name value +GBE1 -0,943978048 +SLC18A2 -0,941309505 +KCNJ6 -0,894120983 +DLK1 -0,887122171 +PTDSS1 -0,851959645 +FGF13 -0,842876271 +PCDH8 -0,83524894 +ZNF226 -0,82900335 +SLC6A3 -0,824713365 +PIP5K1B -0,812285785 +DENR -0,81101551 +TPBG -0,806963209 +PRKAR2B -0,805288865 +OSBPL10 -0,80406299 +ALDH1A1 -0,795042129 +GGCX -0,795035797 +ACP2 -0,794853979 +SLITRK5 -0,793842132 +FAM70A -0,793715412 +HPRT1 -0,792370336 +CCNH -0,790971864 +MYRIP -0,78490295 +TUBB2A -0,783142444 +ACTR10 -0,782043082 +BASP1 -0,778702387 +CADPS2 -0,777552826 +PID1 -0,775106213 +SV2C -0,774895093 +RBM3 -0,77091551 +REEP1 -0,770000111 +RIMBP2 -0,766421185 +CNIH3 -0,765790316 +DMXL2 -0,765309344 +LOC10431 -0,762992699 +SV2B -0,759985564 +AGK -0,756506198 +RCAN2 -0,753762002 +LPPR4 -0,753018962 +RALYL -0,75270126 +L1CAM -0,751978689 +BCAS2 -0,751241508 +LOC100131795 -0,750350108 +TH -0,748260596 +AV756161 -0,747351587 +TRIM36 -0,746057792 +MPPED2 -0,743864716 +NELL2 -0,742513977 +MAGED1 -0,739190733 +LRRC49 -0,738776851 +SYNGR3 -0,734846774 +ERC2 -0,734619705 +VBP1 -0,73223558 +UQCC -0,729749962 +DCLK1 -0,725139215 +GSS -0,724321987 +OPA1 -0,723790592 +PPP2R2B -0,720892147 +COPS4 -0,720599852 +NSF -0,720580224 +DLD -0,72035948 +DYNC1I1 -0,719837984 +GABARAPL3 -0,717235008 +GPRASP1 -0,71302626 +NAP1L2 -0,712876929 +AMPH -0,711957162 +PNMAL1 -0,70952389 +RGS6 -0,706463 +LDB2 -0,704777497 +TTC19 -0,704232585 +SCN3B -0,703738866 +ATPIF1 -0,702603531 +BEX1 -0,700382911 +LMO3 -0,699029823 +TBC1D9 -0,698189481 +NDUFS1 -0,697230219 +INSM1 -0,696524737 +PARL -0,696362568 +MRPL15 -0,688780959 +C3orf14 -0,687875821 +C19orf62 -0,687403479 +PCYOX1L -0,686812669 +VRK1 -0,685016241 +MDH2 -0,684889561 +SMYD3 -0,684642724 +ASAH1 -0,68459801 +GSTA4 -0,684021936 +NDUFA9 -0,683116722 +ATP5C1 -0,682289667 +DDX25 -0,681511867 +GNG3 -0,681122999 +MUDENG -0,67996077 +SCG2 -0,679728044 +MOAP1 -0,679575281 +SYT1 -0,678979261 +ATP6V1H -0,6786546 +SHOC2 -0,677754756 +PCSK1 -0,677441918 +LBH -0,67710638 +HK1 -0,676818391 +KIAA0319 -0,676346138 +SMAP1 -0,67618103 +EHBP1 -0,675429621 +RAP1GAP2 -0,673705297 +FABP7 -0,673485271 +LRRN3 -0,6731503 +AHNAK2 -0,672875949 +DHDDS -0,671959403 +SNAPC5 -0,670824633 +C17orf108 -0,670563093 +AL390170 -0,67026906 +PTS -0,669577055 +NUDT11 -0,668061506 +HMP19 -0,66794356 +IMMT -0,667541939 +RGS4 -0,667109174 +RET -0,667088994 +PBLD -0,666164981 +AP3M2 -0,666056972 +WDR7 -0,665751643 +ATP6V0D1 -0,665487037 +RTF1 -0,664652469 +TUBB3 -0,664644351 +CHCHD2 -0,664529051 +DYNLT3 -0,663584428 +RAB6B -0,662755469 +CHGB -0,661865706 +NGFRAP1 -0,659441958 +AZIN1 -0,659394366 +EN1 -0,659313013 +SNX10 -0,659251628 +MIA3 -0,65882244 +ANK1 -0,657621479 +NR4A2 -0,65598531 +ANAPC13 -0,655864214 +RGS7 -0,654445938 +NME5 -0,652754395 +TXNDC9 -0,652019899 +PPIP5K2 -0,651763237 +RFK -0,651442652 +BE674466 -0,651048329 +PEG10 -0,650932122 +PIAS2 -0,650823358 +CUX2 -0,649970555 +SEPT6 -0,649422911 +FKBP1B -0,649416387 +C12orf10 -0,648407487 +HMGCS1 -0,648164918 +WDR61 -0,648133373 +GFPT1 -0,647751981 +MLLT11 -0,647471245 +AGTR1 -0,645674318 +CSNK1D -0,645408463 +WDR47 -0,64495088 +PSMD14 -0,644669314 +CISD1 -0,643780748 +PSMD11 -0,642982055 +KCNS3 -0,642919136 +TIMM8B -0,642730563 +RUNDC3B -0,641744336 +ANKRD6 -0,640032629 +MDH1 -0,639623665 +STMN2 -0,639070421 +BAI3 -0,638894116 +STX12 -0,638382169 +NECAP1 -0,638376593 +NIT2 -0,638223243 +CIRBP -0,637859912 +XK -0,636787355 +KIAA1797 -0,636384728 +ICMT -0,636379567 +GALT -0,636138691 +SPINT2 -0,635454321 +PAIP1 -0,634724103 +TAGLN3 -0,63459569 +CADPS -0,634245008 +GALNT11 -0,634168707 +SLC9A6 -0,632805526 +ANKRD34C -0,63217094 +COPG2IT1 -0,63213856 +VPS4B -0,63135628 +ATP6V0E2 -0,631164455 +SC5DL -0,631137699 +CNPY2 -0,630875303 +GCC2 -0,630691438 +CRYZL1 -0,63015348 +MOBKL3 -0,630076244 +SNCA -0,629316875 +STAM -0,628134338 +TUBA4A -0,627764216 +MAK16 -0,627148096 +FRY -0,626684765 +UBE2V2 -0,626378865 +RWDD2B -0,626170788 +FBXO9 -0,62572532 +FLJ41278 -0,6251633 +SLC30A9 -0,624759053 +LOC100132015 -0,623179237 +EXOG -0,622056922 +RAP1GAP -0,618803848 +DYNC1LI1 -0,618641756 +HARS -0,618639749 +NDUFA5 -0,618245275 +SPCS1 -0,618130333 +PSMB7 -0,618122572 +NETO2 -0,618103081 +ATP5G3 -0,617855025 +UCHL1 -0,617452524 +FAM127A -0,616124191 +TSSC1 -0,615619431 +CBLN1 -0,615519237 +CYB5R1 -0,615294192 +PSMG1 -0,61487171 +AKAP12 -0,614821543 +CYB561 -0,614281499 +KCND3 -0,613554227 +GABRB1 -0,613364723 +SLIT1 -0,613251897 +HN1 -0,612796898 +F8 -0,612749576 +VSNL1 -0,611517123 +ATP5A1 -0,611141848 +ARMCX5 -0,610703909 +AI097640 -0,610659067 +CERK -0,610508368 +TMX4 -0,610174408 +TSPAN13 -0,609932725 +CAMLG -0,609409157 +NDUFA7 -0,609351405 +STRAP -0,609237631 +RTCD1 -0,607502869 +ORC5L -0,606910471 +SCG5 -0,606870723 +HSPA12A -0,606863939 +VAV3 -0,606070683 +TUBB2C -0,60582666 +DCTN2 -0,605238426 +OCRL -0,604661192 +HPCAL4 -0,604023171 +ARL1 -0,604008234 +CDK14 -0,603712397 +TLK1 -0,603591955 +BLVRA -0,603201697 +NEFL -0,602887281 +SLC25A32 -0,602708801 +ATXN10 -0,602624835 +UQCRC2 -0,601726567 +SLC25A3 -0,601470752 +MYL12B -0,601373186 +CDS2 -0,601292766 +DDC -0,601079077 +BSCL2 -0,6009448 +CACNB3 -0,598982611 +RIMS3 -0,598771066 +LASS6 -0,598387226 +FIBP -0,598382328 +LRPPRC -0,598144321 +PYROXD1 -0,598012671 +MAP3K9 -0,597438703 +CHL1 -0,5969101 +FJX1 -0,596748319 +PFN2 -0,596551333 +ATMIN -0,59649395 +LIN7B -0,596058244 +AV704232 -0,595274626 +PPP2R5C -0,594797769 +SNAP91 -0,59414072 +AKT3 -0,593859242 +NDUFAB1 -0,593111219 +CCDC28A -0,59307395 +GLOD4 -0,592429097 +STXBP1 -0,591440124 +HLTF -0,591296161 +CRMP1 -0,590916915 +KIAA0513 -0,590696005 +GHITM -0,590624599 +ATP6V1B2 -0,590367192 +USP14 -0,589739205 +RNFT2 -0,589705749 +SCG3 -0,589375952 +ATP5B -0,588999541 +FAM136A -0,588982627 +UBE2N -0,588308222 +ANXA6 -0,588071667 +MRTO4 -0,58799806 +SNRK -0,587183425 +CACNA2D2 -0,587134808 +IFT57 -0,586933566 +PPP3CB -0,586906049 +RICH2 -0,586554767 +ME3 -0,586514247 +THOC7 -0,585617181 +FAM188A -0,584083221 +EIF2B3 -0,582997986 +CNTNAP1 -0,582856877 +SCRN1 -0,582791752 +ACAT1 -0,582760841 +IDI1 -0,582694626 +PBX1 -0,582658829 +CDC42 -0,582658446 +NBEA -0,582614884 +PPP1R2 -0,581839918 +ACTR6 -0,581817384 +TAF9 -0,581794162 +NIPSNAP1 -0,581711722 +SEC61A2 -0,58139821 +WDR37 -0,581272248 +VWA5A -0,581248993 +CDC27 -0,580500838 +MYT1L -0,580491453 +PSMC1 -0,580473356 +KATNB1 -0,578133005 +ZWINT -0,577661475 +C12orf24 -0,577181135 +SLC25A46 -0,577144749 +DOLK -0,576794187 +APOO -0,576716633 +GCH1 -0,576494714 +TBC1D30 -0,575582077 +DCTN3 -0,575526778 +FBXL2 -0,575141782 +KIFAP3 -0,574923419 +CMAS -0,574834972 +C18orf10 -0,574780811 +PNMA2 -0,574504978 +PDHX -0,574434123 +SAMM50 -0,574204311 +NDUFA2 -0,574087728 +NPTN -0,573534504 +HIGD1A -0,573110642 +CYC1 -0,573010558 +HMGCR -0,572959475 +TRAPPC2L -0,572517332 +IMPA1 -0,572397104 +IMPACT -0,572070372 +KIAA0802 -0,572067617 +DSTN -0,571964512 +C5orf44 -0,571958339 +CCK -0,571148184 +OGDHL -0,571078621 +TCP11L1 -0,570951095 +RNF14 -0,569913578 +IARS -0,569079443 +CDH8 -0,569072707 +RNF41 -0,568830451 +SCN3A -0,568276898 +PSMD12 -0,567936617 +TNFRSF21 -0,567631199 +FIG4 -0,566751868 +DDX24 -0,566446037 +MARK1 -0,566206858 +ATP8A2 -0,565754513 +ACLY -0,565055263 +DDX42 -0,564984354 +KIF3C -0,564949485 +PIN1 -0,564290859 +PSEN2 -0,564206755 +TERF2IP -0,564084181 +VDAC3 -0,563895581 +B3GNT1 -0,563686309 +CHN1 -0,563660153 +GLO1 -0,561564055 +RAB11A -0,561549092 +PRPS1 -0,561391557 +MAP2 -0,561080301 +NHP2 -0,56096586 +DNAJA2 -0,560780556 +NDRG4 -0,560771764 +HNRNPA0 -0,560406816 +NDUFV2 -0,559975953 +ADH5 -0,559909821 +FAM3C -0,559672666 +COPS7A -0,559265307 +SULT4A1 -0,558733244 +MATN3 -0,558346148 +TMEM14A -0,557817575 +HRASLS -0,557799459 +TMEM14B -0,557593404 +TTC1 -0,557573183 +R3HDM1 -0,557428266 +AUH -0,55725646 +C5orf22 -0,55714645 +TUBB -0,557095971 +C5orf13 -0,55663948 +COX7A2L -0,556219721 +POMP -0,556110434 +ATP5J2 -0,555267292 +ZNF204P -0,555121445 +INA -0,554984251 +NUP93 -0,55488654 +STAU2 -0,55454534 +VAT1 -0,554180752 +DDB1 -0,554146967 +THY1 -0,554057809 +SRPRB -0,553818923 +IMP4 -0,553554219 +SRP19 -0,552319097 +FUCA1 -0,551919323 +PRKCZ -0,551777138 +CD2BP2 -0,55167071 +C12orf43 -0,551436389 +SUSD4 -0,55137396 +W88821 -0,551080268 +LSM4 -0,550328209 +SNAP25 -0,550276399 +ACSL6 -0,549806401 +MYH10 -0,549550685 +DDHD2 -0,548942799 +PRKACA -0,548422775 +CHRNB3 -0,547701041 +NEFM -0,547618123 +PLD3 -0,547495065 +GSPT2 -0,547329995 +ATP6V1E1 -0,546911033 +GABBR2 -0,546899558 +IPW -0,546596796 +SCAMP5 -0,546380917 +RFPL1S -0,545994554 +BSN -0,545979557 +MAGI1 -0,54490486 +DRG1 -0,544733954 +PITPNB -0,544704547 +LETMD1 -0,544636809 +AI263044 -0,544470885 +STOML1 -0,544383238 +GBAS -0,544103215 +RAB3GAP1 -0,543092086 +ACTG1 -0,54300405 +PPME1 -0,542943175 +AFG3L2 -0,542490245 +DNAJC6 -0,541912283 +TUBA1B -0,541625287 +ABCE1 -0,541581351 +ARF3 -0,541401116 +SRSF3 -0,54134715 +NEFH -0,540578844 +ADK -0,540377244 +TIMM17A -0,540158649 +ELOVL6 -0,540054201 +FAM189A1 -0,539987546 +ATP6V1A -0,539816156 +OAT -0,53960074 +KIAA0284 -0,539436564 +SLC25A12 -0,538986194 +AP3D1 -0,538816413 +ISCU -0,53848727 +CDH10 -0,538458105 +APEH -0,538385859 +TMEM35 -0,537944022 +NDFIP1 -0,537769873 +U79277 -0,537586945 +SYNGR1 -0,53757151 +MEAF6 -0,537175986 +DNM1 -0,536361784 +DEF8 -0,536162488 +PDXK -0,536128962 +RIT2 -0,536060129 +AACS -0,535868362 +RAB3A -0,535840143 +LXN -0,535676847 +CCBL2 -0,53559953 +ATXN7L3B -0,535570224 +RCN2 -0,535264733 +SDC2 -0,535187449 +NRXN3 -0,534911729 +SDC1 -0,534748047 +PSMD1 -0,534162775 +UBA5 -0,534098166 +PEX11B -0,533915774 +RAP1GDS1 -0,533764019 +NUPL1 -0,533680375 +ARMCX1 -0,533607326 +SDHAP1 -0,533209621 +PJA2 -0,532853246 +ACOT7 -0,532662038 +SEZ6L -0,532618647 +CELF2 -0,532603645 +CXorf40A -0,532513065 +NDUFB5 -0,532279155 +GARS -0,532224902 +NRG1 -0,532009485 +SEC31B -0,53180843 +ME1 -0,531466374 +PSMD8 -0,531445018 +MSL1 -0,531268404 +PCLO -0,531166247 +RAB14 -0,531006634 +MAGED2 -0,530858407 +EIF3K -0,530846086 +MMD -0,530845303 +MYO5A -0,530805656 +NCRNA00094 -0,530597959 +KIAA1107 -0,53057188 +KIAA0564 -0,530294183 +PSMB2 -0,530140819 +C1orf114 -0,530111522 +GCLM -0,529867963 +NDN -0,529086871 +SRD5A1 -0,528786683 +DNAJB9 -0,528374918 +SLC7A8 -0,528181836 +CLIP3 -0,527794519 +NDUFB1 -0,527724864 +CLSTN2 -0,52726691 +C14orf156 -0,527148764 +CIAPIN1 -0,527136633 +ATP5F1 -0,527047789 +PSMB5 -0,526841307 +FAM32A -0,526499611 +KIAA1644 -0,526147045 +RTN1 -0,526062751 +EXOSC9 -0,525622526 +PFKM -0,525053758 +TCF25 -0,524910517 +ATP5O -0,524889972 +PTPRN2 -0,524794642 +SNX4 -0,524373257 +ATP6V1G2 -0,524016622 +SLC35E3 -0,523930118 +SLC2A6 -0,52364368 +SUCLA2 -0,523588063 +PLCB1 -0,523263994 +TMEM30A -0,521872901 +PDE4D -0,521870014 +RAB5A -0,521632556 +MAPK9 -0,521572661 +CAP2 -0,521120749 +RPS6KA3 -0,520660932 +GNAO1 -0,520506337 +PSMD6 -0,520132666 +TBCE -0,519679173 +C9orf125 -0,519623009 +MN1 -0,51937171 +MFSD1 -0,51842841 +KIF3A -0,518357676 +SHFM1 -0,517546292 +NRIP3 -0,516545986 +ANKMY2 -0,516365077 +CDK5 -0,516196782 +REEP5 -0,516165841 +SLC1A1 -0,516141732 +UBE2K -0,516036367 +SMEK2 -0,515537555 +PI4K2A -0,515462049 +TTC39A -0,514924765 +GUCY1B3 -0,514788287 +QPCT -0,514170797 +ST6GALNAC5 -0,514077764 +ATP6V1F -0,513941613 +HSD17B12 -0,513489073 +PPFIA2 -0,51321383 +PLCH1 -0,512855521 +CNTN6 -0,512564243 +ENTPD6 -0,512350634 +ALAS1 -0,512141897 +RUNDC3A -0,511994377 +PCMT1 -0,511547085 +IDS -0,511290223 +PLEKHB2 -0,510964275 +CDO1 -0,510668427 +NDUFB6 -0,510219117 +COX6C -0,509869079 +OPTN -0,509603205 +PSMA1 -0,509510596 +STS -0,509361214 +TIMM10 -0,509318807 +C1D -0,509252454 +GAP43 -0,509215292 +CCDC6 -0,509150548 +TRIM37 -0,509012308 +ATP2B2 -0,508803511 +PGAM1 -0,50863259 +GGNBP2 -0,508616013 +SRP72 -0,508482078 +TCEAL2 -0,508464868 +SV2A -0,508330914 +CDK5R2 -0,508227652 +FHOD3 -0,508155146 +FECH -0,508046235 +ATP2A3 -0,507932978 +SUB1 -0,507787459 +ACO2 -0,507726776 +C20orf3 -0,507526055 +SEC22B -0,507453281 +VPS35 -0,507278509 +MRPS33 -0,507141908 +TXNL4A -0,50704416 +ARHGEF9 -0,506224253 +RBM9 -0,506096633 +TMEM135 -0,506088817 +UHRF1BP1L -0,505757524 +ME2 -0,505446593 +BZRAP1 -0,505378895 +MCAT -0,50534007 +AKAP6 -0,505213579 +COPS3 -0,505110121 +MRPS35 -0,505107922 +YWHAB -0,505015581 +PEX7 -0,504955276 +COPS8 -0,504746043 +OXCT1 -0,504643125 +MAD2L1 -0,504589351 +MCTS1 -0,504510155 +LGALS8 -0,50448664 +ACP1 -0,504339709 +MX1 -0,50393674 +NCALD -0,50389725 +TASP1 -0,503797818 +AGTPBP1 -0,503605082 +RNF128 -0,503554068 +PSMD13 -0,503503704 +TXN -0,50336484 +NHLH2 -0,50325399 +USP12 -0,503149229 +PFDN4 -0,502988386 +NAP1L3 -0,502893901 +MRPL20 -0,502624211 +ACSL3 -0,502355771 +MTPAP -0,502307088 +PMPCB -0,502239978 +SH3GL3 -0,502227406 +API5 -0,502196949 +CAPNS1 -0,5020898 +YWHAZ -0,501747483 +TOMM70A -0,501591565 +STX18 -0,501503813 +HNRNPK -0,501464694 +LRP1B -0,501433491 +CDC123 -0,500993468 +DCTN6 -0,500740808 +VAPB -0,500599356 +CCDC56 -0,499906136 +GOT2 -0,499477446 +RHEB -0,499343134 +PSMD2 -0,499333749 +YPEL5 -0,49910251 +ATP5G1 -0,499077107 +TUBA1A -0,498949544 +GSTM3 -0,498766376 +EPB41L1 -0,498605796 +EPS15 -0,498447403 +ENO2 -0,498261848 +ASMTL -0,498100631 +FH -0,498098378 +CLTC -0,497596743 +PSMA3 -0,497405846 +UROS -0,497291028 +OLFM1 -0,496832922 +ATP6V1G1 -0,496818916 +B3GALNT1 -0,496135395 +PHLPP2 -0,496077027 +TSPYL1 -0,495383913 +SERINC1 -0,49538338 +RPL15 -0,495355843 +ITFG1 -0,495195881 +PDHB -0,494999933 +RABL3 -0,494855325 +TMEM22 -0,49462563 +MCFD2 -0,494506103 +GABARAPL1 -0,494373853 +MAGEL2 -0,493987847 +VPS33B -0,493750355 +CDIPT -0,493440531 +ATP6V0B -0,493438352 +CLGN -0,493358721 +SEC23A -0,493255831 +C7orf43 -0,49286586 +ARL3 -0,492481932 +SLC12A5 -0,492392187 +LAPTM4B -0,492348426 +LOC285359 -0,492290998 +LARP1 -0,49192011 +YME1L1 -0,491725992 +RAB2A -0,491586306 +SPATA20 -0,490991626 +ASH2L -0,490785052 +PTBP2 -0,490747846 +WTAP -0,490599757 +NANS -0,490410248 +SCFD1 -0,490269997 +EPB49 -0,489916122 +TUFT1 -0,489843226 +POP4 -0,489594415 +CACNA1G -0,489236615 +PRPF19 -0,48917604 +NCOA4 -0,488872014 +C1orf216 -0,488856307 +TXNL1 -0,488777426 +AMPD2 -0,48875487 +ASL -0,488300478 +PFDN1 -0,48807629 +EXTL2 -0,488020888 +RPA3 -0,48773487 +ACVR1B -0,487609726 +ANKRD46 -0,487476076 +GRIA1 -0,48726366 +PSMB6 -0,487099126 +CAPRIN2 -0,486969775 +SRGAP3 -0,48684289 +ARPC5L -0,486786621 +PSME3 -0,486309204 +NME2 -0,486066455 +ISCA1 -0,485683262 +ZNF365 -0,485504618 +PINK1 -0,485341061 +RWDD2A -0,48504437 +EXOC1 -0,484927354 +ECE2 -0,484617735 +WDR77 -0,484600271 +AI890972 -0,484490353 +ERBB4 -0,484253264 +PSMD4 -0,483962197 +RAB6C -0,483864006 +CSTF3 -0,483798153 +NIPA2 -0,483638091 +AK5 -0,483482302 +C17orf91 -0,483141592 +INPP4B -0,482534933 +PJA1 -0,482372063 +BE551361 -0,482367089 +B4GALT5 -0,48224903 +MTX2 -0,481915827 +MGST3 -0,481667788 +TRMT11 -0,481613419 +PTPRN -0,481522612 +DNAJC12 -0,48150495 +FTSJ2 -0,481162212 +CCT8 -0,48112028 +PGAP1 -0,481030935 +SLC25A44 -0,480898127 +AMIGO2 -0,480319409 +SCAMP1 -0,480275681 +RBKS -0,480222 +SYN1 -0,48014199 +APEX1 -0,479680328 +AL157484 -0,4790893 +PAK3 -0,479026618 +SLC25A13 -0,478484409 +EIF1B -0,478403329 +DLAT -0,478235597 +AI375694 -0,47804406 +PMS2L1 -0,477748782 +DYNC2LI1 -0,477528415 +RANBP9 -0,477445784 +PTPN20A -0,476653786 +ZMYM4 -0,476508652 +UQCRQ -0,476353248 +EXOSC7 -0,476299374 +NDUFB3 -0,476207507 +LCMT1 -0,476121484 +ZNF547 -0,47597802 +TBCA -0,475802982 +MAPK8IP3 -0,475554385 +N80935 -0,475378775 +SLC4A3 -0,475327531 +AASDHPPT -0,475086681 +CAND2 -0,475049952 +CXorf40B -0,474988185 +FXYD6 -0,47456179 +RNF10 -0,474499733 +ELOVL4 -0,474412575 +AAK1 -0,474378982 +SEH1L -0,474159291 +PTPRU -0,473978747 +LPGAT1 -0,473432618 +VPS24 -0,473360696 +MCF2 -0,473341916 +FAR2 -0,473007144 +CKMT1A -0,472884518 +TMED3 -0,472883274 +RNASEH1 -0,47283341 +NDUFA3 -0,472657747 +GLS -0,472644869 +FAM168A -0,472617309 +KLHDC10 -0,472577269 +GLRX5 -0,472478522 +SYT17 -0,472292582 +PAM -0,472018566 +CLTB -0,471770785 +COPS2 -0,470912718 +DDA1 -0,470419616 +PCSK2 -0,470372976 +SLC25A6 -0,470332168 +TPI1 -0,470300584 +MECR -0,47026417 +ORC4L -0,47025895 +ITPR1 -0,470228063 +HMG20A -0,470060529 +GNB5 -0,470039178 +TMEM208 -0,469963608 +NCAPG -0,469752447 +GLRB -0,469638821 +ATP6V1D -0,469577982 +AKAP11 -0,469501191 +SH3GL2 -0,46948768 +NISCH -0,469445416 +SIPA1L1 -0,469275377 +PFKP -0,469125064 +LYRM4 -0,469088537 +SLC4A1AP -0,46898494 +AP2A2 -0,468669242 +CX3CL1 -0,46850557 +WBP11 -0,468444743 +LASP1 -0,468444317 +GOT1 -0,468375399 +C6orf120 -0,468133996 +SPAG7 -0,468070563 +SERGEF -0,467688975 +TFB2M -0,4675501 +AP3B2 -0,467537408 +PAFAH1B1 -0,467362101 +BPGM -0,467130793 +CRAT -0,466839519 +DDX1 -0,466770911 +ADAM23 -0,46652833 +ASB6 -0,466473575 +PCDHA1 -0,466456945 +TUSC3 -0,465574044 +TCEA2 -0,465512943 +SMARCA4 -0,4653413 +DAPK1 -0,465142929 +DBNDD1 -0,464965333 +NDUFC2 -0,464959656 +IDH3B -0,464778307 +CDC37L1 -0,464692992 +WDR11 -0,464429092 +CD200 -0,464378251 +TUSC2 -0,464289641 +IRGQ -0,464009317 +CALY -0,463919598 +NNT -0,463872117 +MSH2 -0,463745236 +GYG1 -0,463657489 +FAM134C -0,463380379 +RTN2 -0,463379977 +RBM12 -0,463289569 +SYNJ1 -0,463207762 +ABCA5 -0,462881594 +ENTPD4 -0,462777994 +MAP2K4 -0,462732144 +AIMP2 -0,46256199 +PITPNA -0,462484131 +BNIP3 -0,461982272 +COPS5 -0,461956463 +BRE -0,461910476 +MIR21 -0,461667267 +ATP5S -0,46152488 +SIN3B -0,461515059 +NAT10 -0,461457105 +MTCH2 -0,461117099 +ACHE -0,461032229 +PSD3 -0,46079613 +UCHL3 -0,460466303 +SMPX -0,459975528 +USP11 -0,459753441 +RNF187 -0,459566796 +AAGAB -0,458932639 +ENY2 -0,458770966 +NDEL1 -0,458614173 +FAM184A -0,458384449 +TOX4 -0,458204483 +SLC25A15 -0,458110832 +SACM1L -0,458050139 +ADARB1 -0,458034616 +SPHK2 -0,457781426 +CES2 -0,457687554 +CYFIP2 -0,457201169 +KPNA2 -0,457034156 +ACTR1A -0,456856222 +SLC25A22 -0,456321526 +DPYSL3 -0,456025294 +PRKAR1A -0,455984698 +SIDT1 -0,455560984 +TIPRL -0,455474112 +EIF5 -0,455347544 +C16orf58 -0,455176502 +RAB7A -0,454946879 +MFSD6 -0,454914435 +NDUFS2 -0,454605666 +APOOL -0,454580027 +GNB1 -0,454284789 +SARS -0,454282127 +PIK3R3 -0,454240907 +SERINC3 -0,454097365 +ST3GAL5 -0,45407104 +DHRS11 -0,453695947 +NEDD8 -0,45367218 +RAB15 -0,453664346 +HSPA13 -0,453577406 +OLA1 -0,453153228 +C3orf18 -0,45312023 +AF131844 -0,453027105 +C12orf52 -0,452914604 +ACBD3 -0,452894377 +PCIF1 -0,452240197 +BMP2K -0,451224584 +TSPYL5 -0,450674174 +SEC63 -0,450642641 +C7orf44 -0,450408444 +PWP1 -0,450360796 +SLC25A14 -0,45012674 +SYP -0,449768016 +PRKCB -0,449564151 +KIF2A -0,449276369 +PEX26 -0,449100108 +SDHA -0,448617251 +PITRM1 -0,448602767 +PPA2 -0,448269554 +MAN2A2 -0,448177121 +FAM49A -0,448170721 +KCTD9 -0,448062861 +REEP2 -0,44801948 +NDUFS3 -0,447803075 +CHGA -0,447356315 +UBE2E3 -0,447311178 +LOC595101 -0,447006376 +RNF170 -0,446698112 +TMCO1 -0,446651514 +PCCB -0,446640741 +RAB1A -0,44645249 +ATP1A1 -0,446309137 +KIAA1045 -0,446174802 +CASD1 -0,445992918 +C3orf37 -0,445975885 +RAD17 -0,445659766 +BBS4 -0,445631347 +TBC1D19 -0,445509157 +TSG101 -0,445289202 +DKK3 -0,445181251 +KCNQ2 -0,444911548 +EIF4E -0,44477948 +LOC100134209 -0,444742688 +OSTF1 -0,444651424 +PPCS -0,444330494 +ATP13A2 -0,443924538 +DHRS7B -0,443866868 +TSN -0,443785273 +AI201594 -0,443780197 +UBE2J1 -0,443536878 +C12orf51 -0,443320039 +INPP5F -0,44324612 +KIAA0391 -0,443138749 +NDUFB8 -0,442168118 +COX8A -0,442151263 +PLCB4 -0,442128902 +UQCRC1 -0,442055114 +RNMT -0,442010619 +PSMB4 -0,441631296 +ATP9A -0,441570839 +COMMD8 -0,441419712 +STX7 -0,441415012 +UQCRFS1 -0,441387219 +ARMC8 -0,441335025 +USP33 -0,441131902 +SC4MOL -0,441051846 +AVL9 -0,440604375 +CORO1C -0,440555184 +ATP6V0A1 -0,440500219 +AKTIP -0,440321706 +C11orf49 -0,440065839 +ACCN1 -0,439959618 +DYNC1H1 -0,439954428 +RTN4 -0,439926435 +IFT52 -0,439664934 +ARIH1 -0,439616652 +SLC23A2 -0,439279622 +FDPS -0,439263979 +ZW10 -0,439088192 +C6orf211 -0,438493952 +CAPZA2 -0,438442617 +TRIM9 -0,43841496 +PANK2 -0,438226487 +SLC25A36 -0,437878589 +TM7SF2 -0,437751686 +GPD1L -0,437274057 +TM2D3 -0,437156245 +TBC1D22A -0,436837159 +AFF2 -0,436678505 +PSMA4 -0,43652406 +SCAPER -0,436328183 +KPNB1 -0,43624217 +C8orf33 -0,436164892 +RRAS2 -0,435924543 +PNMA1 -0,435862986 +DRD2 -0,435854058 +CCDC92 -0,435740221 +CYB5B -0,435703661 +DNM1L -0,435497666 +FAM98A -0,435109538 +CYCS -0,43500707 +UBE2B -0,434857087 +DCTPP1 -0,434751269 +ENC1 -0,434576571 +SAP18 -0,434463135 +MED7 -0,43446171 +UBXN6 -0,433506891 +MAEA -0,433493136 +C20orf27 -0,433220759 +ARFGEF2 -0,4331108 +FKBP9 -0,433030189 +COQ10B -0,432955202 +SNRNP25 -0,432902395 +PHKB -0,432809153 +CETN2 -0,432732838 +PIK3R4 -0,432641256 +EFR3A -0,432263211 +FAM162A -0,432255742 +LOC732160 -0,432226821 +SRPK2 -0,432044566 +USP9X -0,431489845 +DENND2A -0,431031563 +PPP2CA -0,430950806 +CHST1 -0,430892555 +OSBPL9 -0,430720865 +TPM3 -0,430527364 +UGP2 -0,430314768 +AL049387 -0,430134526 +ARHGDIG -0,429952838 +GPR161 -0,429932801 +HGSNAT -0,429440496 +TCEAL4 -0,429402449 +KHDC1 -0,429285977 +SPATA7 -0,428924113 +NIPSNAP3B -0,428922472 +NHP2L1 -0,42870798 +BZW2 -0,428685674 +BZW1 -0,428658261 +ABCF3 -0,428526247 +PEX19 -0,428349422 +POLR2K -0,42820853 +FAM134B -0,428156057 +TUBGCP4 -0,428150919 +CSNK2A1 -0,427824997 +PPP2R5D -0,427719013 +CEND1 -0,427667723 +RNF11 -0,427514623 +EBNA1BP2 -0,427275229 +SDHC -0,42690156 +ATP6AP2 -0,426823582 +MAPK1 -0,426681157 +YTHDC2 -0,425950246 +ACTR3B -0,425721173 +LRRC47 -0,424928312 +ANO10 -0,424906321 +MORF4L2 -0,424702281 +NAE1 -0,424669605 +GRSF1 -0,424576498 +UBE3C -0,42455123 +RRM1 -0,424268285 +IARS2 -0,424201991 +HINT1 -0,423973896 +B4GALT7 -0,423964657 +OBSL1 -0,423852756 +RPH3A -0,423713255 +PTPRM -0,423526608 +TRAP1 -0,423405292 +GSTO1 -0,423136683 +PGK1 -0,423107749 +KCTD2 -0,423033005 +AKAP9 -0,423014145 +KIAA0090 -0,422971022 +NIF3L1 -0,422805913 +SAE1 -0,422487927 +TRAPPC4 -0,422454822 +UBE3B -0,422322842 +MRPL13 -0,422291395 +ARF1 -0,422218883 +NCKAP1 -0,421739152 +COX11 -0,421717769 +XPA -0,421552598 +FKBP11 -0,421544606 +ZFAND1 -0,42136139 +RUSC1 -0,421250909 +PSMC2 -0,42099626 +MCM4 -0,420976269 +HEXA -0,420954607 +PDE4A -0,420795908 +VPS45 -0,420785909 +OGFOD1 -0,420640442 +ADPGK -0,420505817 +AP2M1 -0,420467875 +PSMD5 -0,420139323 +PGRMC1 -0,420109613 +CLASP2 -0,419942702 +CAMTA1 -0,419843296 +COX5A -0,419753275 +BCAP29 -0,419678508 +C21orf59 -0,419586484 +INSIG1 -0,419347593 +NDUFAF1 -0,419256514 +SNCG -0,419205938 +NCAN -0,418993508 +SLC24A3 -0,418714364 +MAP2K1 -0,418679322 +BRCC3 -0,418660516 +MYCBP2 -0,418420128 +PREPL -0,41818051 +TUFM -0,418149804 +LYRM2 -0,41810337 +ORC3L -0,417994092 +TSR2 -0,417894679 +SLC41A3 -0,41774061 +DZIP3 -0,417712026 +MRPS11 -0,417644175 +B4GALT6 -0,41761846 +CHD5 -0,417472 +TUBA1C -0,417351982 +OTUB1 -0,41729395 +DCAF6 -0,417154254 +UQCR10 -0,417021115 +BEX4 -0,416948363 +RTN3 -0,416868526 +GOLT1B -0,416408995 +MRPL3 -0,416396676 +DDX19A -0,416375948 +C4orf41 -0,416356919 +SEMA3G -0,416349944 +TUBA3D -0,416216957 +B4GALNT1 -0,415958605 +TOR1A -0,415819164 +SUPT16H -0,415597727 +ACTR3 -0,415469056 +ABCB9 -0,415410201 +SERF1B -0,415262572 +PSMC6 -0,415072747 +GALNT2 -0,414525722 +ARF5 -0,414370994 +TCEB1 -0,414262524 +FEN1 -0,414164817 +HS2ST1 -0,413801139 +FBXL15 -0,413238338 +ANAPC10 -0,413161353 +MAPK10 -0,413048251 +FGF12 -0,412576909 +GTF2B -0,412561968 +CALM3 -0,412474461 +C12orf5 -0,412385409 +BTRC -0,412323302 +UBXN8 -0,411884422 +G6PC3 -0,411853401 +MARK4 -0,411850043 +SDHB -0,411814414 +FXC1 -0,411804756 +KIAA1467 -0,411406746 +COL4A3BP -0,411372338 +MADD -0,411317373 +SLC25A11 -0,411257994 +APBB3 -0,411242683 +LDHB -0,411172229 +ENTPD3 -0,410988615 +CAMK2B -0,410817586 +C15orf24 -0,410807275 +RAB11FIP5 -0,410722406 +C18orf1 -0,410410534 +IL13RA2 -0,410393436 +TMEFF1 -0,40994415 +TAX1BP1 -0,409905258 +ABHD11 -0,409662969 +SETD4 -0,409479623 +NARS -0,409352949 +LOC441259 -0,409193342 +SMAD2 -0,408937637 +MAGEH1 -0,408820062 +LPIN2 -0,408744346 +WRB -0,408371938 +HSPB11 -0,408269901 +COMMD9 -0,407620354 +RMND1 -0,407542555 +RBP1 -0,407484296 +TSPAN7 -0,407465467 +YKT6 -0,407243851 +ATP5L -0,407238078 +STAT1 -0,407123963 +SPTAN1 -0,407085674 +SLBP -0,407034029 +FAM115A -0,407018502 +ATP1B1 -0,407007242 +GIN1 -0,406994648 +SLC25A4 -0,406703055 +RPAP3 -0,40653888 +ELAVL4 -0,406510215 +LDHA -0,406394191 +GABRG2 -0,406143723 +ACOT1 -0,406088493 +LZTFL1 -0,406077259 +LARP4 -0,406073312 +PTPRG -0,405852123 +DIRAS2 -0,405793372 +SNCB -0,405789504 +CDS1 -0,405765281 +ARL2BP -0,405758176 +BCL2L13 -0,405729545 +STAT4 -0,405634359 +C17orf75 -0,405632179 +ELAVL2 -0,405590653 +DNM3 -0,405342092 +SNX16 -0,404866663 +TACO1 -0,40485549 +HPGD -0,404805074 +CHMP2B -0,404775945 +DPP8 -0,404495701 +SYBU -0,403649563 +CHP -0,403478973 +GTF2H5 -0,403475179 +PPP2R5B -0,403191055 +TRAK1 -0,402996995 +ACSL4 -0,402921692 +RABGAP1L -0,402883713 +PSMB3 -0,402864552 +ASTN1 -0,402784524 +TIMM23B -0,402679864 +NDUFC1 -0,402669713 +GPM6A -0,402645229 +NCDN -0,402391637 +TMEM183A -0,402206694 +LACTB2 -0,402125728 +SFPQ -0,401934429 +SLC1A4 -0,401903736 +LOC731884 -0,401617561 +TTC3 -0,401599425 +APBA1 -0,401587582 +FAM20B -0,401527926 +ISOC1 -0,401479145 +TMEM70 -0,401425176 +GLUD1 -0,401204073 +NDUFA4 -0,401152135 +SHANK2 -0,401076931 +NDUFA6 -0,400922451 +FAM128A -0,400907344 +TSNAX -0,400758374 +BLCAP -0,400561763 +WASF3 -0,400514139 +MTMR6 -0,400412018 +CBARA1 -0,399961135 +SMCR7L -0,399645568 +REXO2 -0,399637796 +ASTN2 -0,399013865 +FBXO31 -0,398919379 +MRPS10 -0,398754479 +GNAL -0,398117434 +RDH11 -0,398104472 +ANKH -0,398086916 +EPHA5 -0,397910595 +DPY19L2P2 -0,397861593 +NRXN1 -0,39777997 +FOXA1 -0,397622781 +AGGF1 -0,397583973 +CLCN6 -0,397581706 +PRKAG1 -0,397496639 +GRM5 -0,397456403 +BCAT1 -0,397331444 +MAP1LC3B -0,397317027 +HMGCL -0,397130437 +IFIT5 -0,397045055 +FAM82B -0,397007464 +TMEM189-UBE2V1 -0,39671729 +TMEM160 -0,396535704 +PIGZ -0,396390486 +VDAC2 -0,3962914 +BCAP31 -0,396227306 +CUL2 -0,395939867 +C5orf30 -0,395902062 +VAMP4 -0,395520757 +CLTA -0,395495699 +NOS1AP -0,395452681 +YWHAH -0,395414553 +AGL -0,39537715 +PPIA -0,395286888 +POLR2E -0,395239973 +FAM190B -0,395231307 +CAND1 -0,395218949 +DIABLO -0,395167608 +FAM155A -0,395099838 +FAM174B -0,394929763 +ABCA11P -0,394841999 +LMF1 -0,394801997 +EIF3I -0,394774336 +RRAGA -0,39363313 +SLC25A5 -0,39336993 +BTBD3 -0,393323586 +SLC38A6 -0,393193457 +TSPYL4 -0,39289974 +NDUFA8 -0,392898828 +ERI3 -0,392853573 +CDH11 -0,392815946 +VPS11 -0,392712183 +RPP40 -0,39270293 +SMS -0,392616216 +USP4 -0,39251437 +RAN -0,392486577 +SYT11 -0,392234251 +SEC23IP -0,392233152 +SUPV3L1 -0,392124663 +TOX3 -0,392048323 +OSBPL3 -0,391742979 +ATP5J -0,391738382 +APC -0,391687772 +EIF2AK2 -0,391678642 +MPPE1 -0,391534871 +CHD3 -0,391021702 +BE858194 -0,390954653 +GPN2 -0,390821549 +TMEM97 -0,39059622 +BRF2 -0,390477924 +NSDHL -0,390017568 +LOC654342 -0,389476483 +SATB1 -0,389035394 +RPP14 -0,388984247 +C16orf68 -0,388858051 +PHF14 -0,388842446 +CKAP5 -0,388699527 +MMADHC -0,388406258 +MEST -0,388313548 +UQCRH -0,387974488 +GBAP1 -0,387823169 +PMPCA -0,387778282 +TMEM41B -0,387668262 +SCLY -0,387620138 +OXA1L -0,387520115 +CLPX -0,387517816 +EML1 -0,387443167 +DPP6 -0,387318033 +FBXO3 -0,387294212 +GAPDH -0,386769027 +ATP6V1C1 -0,386766958 +PRAF2 -0,386484628 +NAA35 -0,386425969 +EIF4H -0,386302469 +SGSH -0,386196526 +CLCN3 -0,386084887 +SMARCA1 -0,385880429 +FAM158A -0,385760557 +AP3S2 -0,385712457 +EIF1AX -0,385367803 +RNF115 -0,385287305 +GPI -0,385266179 +SEC62 -0,385020013 +G3BP2 -0,384968143 +NDUFV1 -0,38487232 +C19orf42 -0,384758261 +BEND5 -0,384699839 +KCNAB2 -0,384620267 +EVL -0,384619104 +MTMR9 -0,384460721 +SIRT3 -0,384239932 +CNIH -0,383916854 +TOLLIP -0,383913386 +C11orf2 -0,383735535 +NUDCD3 -0,383703548 +MED4 -0,383545823 +RABGEF1 -0,38353381 +PTN -0,383407974 +GBF1 -0,383365739 +C1orf163 -0,383317238 +LOC100129361 -0,383315417 +CUL4B -0,383032231 +OXR1 -0,382758654 +TRIM33 -0,382726006 +GPC5 -0,382713696 +C11orf51 -0,382673891 +MAN1C1 -0,382595078 +FGF9 -0,382294616 +SPOCK2 -0,382267861 +GLMN -0,382038722 +MPP1 -0,381567886 +KIF21B -0,381555674 +RND1 -0,381481938 +PEX1 -0,381462705 +C2orf34 -0,381417191 +OTUD3 -0,381344145 +MSRB2 -0,381206334 +CCDC85B -0,38118283 +RGS3 -0,380621769 +SERPINI1 -0,380596066 +C14orf2 -0,380470075 +IDH3G -0,380458518 +POLR2C -0,380378788 +CTNNA2 -0,380377628 +XRCC6 -0,380295972 +EIF3A -0,380281294 +CRBN -0,380214781 +RPS6KC1 -0,3801397 +NUDT2 -0,380057201 +GOLPH3L -0,379823471 +CSNK1A1 -0,379812095 +NDUFB2 -0,379757693 +FTO -0,37940886 +SLC6A15 -0,379271656 +PCP4 -0,379256762 +NIT1 -0,37912136 +CCNC -0,378699092 +DGKB -0,378485235 +RANBP6 -0,377965444 +DNAJC8 -0,377764456 +MAPRE2 -0,377675379 +ARFGAP2 -0,377574006 +BDNF -0,377511436 +HSD17B10 -0,376728332 +AKAP7 -0,376531212 +EHD1 -0,376479944 +PSMD10 -0,376243528 +FABP5L2 -0,376090187 +VAMP7 -0,376017526 +WBP4 -0,375749974 +MAP1B -0,375485017 +SMPDL3A -0,375390185 +GPR89C -0,375362209 +SEPT2 -0,37512019 +GPX3 -0,374915078 +AARSD1 -0,374664572 +HSPA9 -0,37466397 +MAP1A -0,374598439 +C16orf62 -0,374459363 +CARKD -0,374388504 +ASS1 -0,374197776 +WDR12 -0,374046313 +ABHD14A -0,37397421 +SPIN2B -0,373568971 +RAB6A -0,373528481 +PTPRF -0,373483075 +RRAGB -0,373427062 +STK39 -0,373365187 +COX7B -0,373307822 +PDCL -0,373110957 +ATP2A2 -0,373066228 +PPM1E -0,37285382 +TRMT61B -0,372798595 +C21orf33 -0,372766056 +MGMT -0,372730061 +LPHN3 -0,372647138 +WBP2 -0,372385809 +ACSBG1 -0,372296169 +PGRMC2 -0,372287654 +LRRC20 -0,372239514 +AGA -0,372171162 +NRCAM -0,372117405 +FUT9 -0,372053568 +C22orf28 -0,371916518 +MRPS15 -0,371914782 +UFM1 -0,371876489 +CAMK2G -0,371790847 +AVPI1 -0,371692415 +MAST2 -0,371637676 +PPP1R7 -0,371553142 +EEF1A2 -0,371514176 +ATP5D -0,371416456 +EEF1E1 -0,37139203 +NLRP1 -0,371368381 +PMS2CL -0,371209965 +CDK5R1 -0,371120209 +C2orf72 -0,371108998 +OAZ2 -0,3710748 +AL109698 -0,37073584 +INPP4A -0,370700597 +ERH -0,370513944 +CAMK1G -0,370474818 +MED24 -0,370430566 +DMXL1 -0,370287216 +COMMD4 -0,370258812 +NOMO3 -0,370043447 +MORF4 -0,369691968 +ZNHIT3 -0,369651044 +GDPD5 -0,369635923 +CUL5 -0,369519961 +AP1B1 -0,369511443 +YARS -0,369387873 +ABHD10 -0,36913324 +KCNB1 -0,369083149 +SKP1 -0,369015624 +FBXO28 -0,368924883 +ATR -0,368436696 +TMED2 -0,368132686 +ARPC1A -0,367983188 +PHYH -0,367958422 +MRPL22 -0,367879083 +SRRD -0,367868238 +WDYHV1 -0,367821841 +EIF3CL -0,367732775 +HMGB3 -0,367450086 +DENND1B -0,36732795 +ALDH5A1 -0,367318431 +CCNA1 -0,367103911 +FAM134A -0,367014983 +DZIP1 -0,366778091 +WASF1 -0,366602553 +ATXN3 -0,366426778 +CCDC25 -0,3658102 +ERP29 -0,365799413 +IVD -0,365499555 +SNX24 -0,365222253 +CDK20 -0,365176415 +TTC9 -0,365148586 +RBM8A -0,36488846 +AMACR -0,364562114 +TBPL1 -0,364450426 +PTPMT1 -0,364434415 +CANX -0,364232908 +ELAC2 -0,364131757 +EIF2S1 -0,364109368 +AKR1B1 -0,363915593 +ACADM -0,363858719 +RGS16 -0,363795844 +SLC20A1 -0,363602798 +MTUS2 -0,363384151 +ZMIZ2 -0,363364816 +NDUFS4 -0,363146027 +AW242701 -0,363104323 +SNAPC3 -0,363053639 +ENOPH1 -0,362868334 +LYRM1 -0,362706602 +TRMT12 -0,362561085 +BAALC -0,362539013 +CHMP1B -0,362404908 +ATP1A3 -0,362300724 +TOMM20 -0,362192747 +PEX14 -0,362047536 +EIF2AK1 -0,361934247 +CNNM2 -0,361790716 +PPOX -0,361753445 +TAC1 -0,361655557 +GLRX3 -0,361266708 +OBFC1 -0,360197329 +MFN2 -0,360036589 +DGCR14 -0,359808857 +FAM175B -0,359691136 +PARP2 -0,359639462 +GPR107 -0,359495249 +TUBGCP5 -0,35920098 +ENSA -0,359186957 +UMPS -0,358973056 +SSBP1 -0,358916914 +PFDN2 -0,358707301 +IFFO1 -0,35859667 +CCT2 -0,358497035 +PSMA5 -0,358414139 +ZC3H15 -0,358397302 +EPHX2 -0,358269729 +CALB1 -0,358259257 +POP7 -0,358253841 +MRPL12 -0,357874032 +DFNA5 -0,357815106 +PIAS1 -0,357740062 +ARL4C -0,35770713 +HRAS -0,357592893 +CEP68 -0,35754909 +SNRPA1 -0,357535253 +SCP2 -0,357518758 +C4orf27 -0,356816465 +TMEM185B -0,35662055 +SPAG16 -0,356585241 +ESYT1 -0,356493695 +PTP4A1 -0,356347412 +PDLIM2 -0,356333479 +MSRA -0,355999453 +UAP1 -0,355870622 +CDK16 -0,355785531 +MBOAT7 -0,355761708 +FARSA -0,355610517 +MRPS7 -0,355424517 +EPHB2 -0,355389176 +LOC729991-MEF2B -0,355378273 +PDHA1 -0,355252318 +ACTL6B -0,355166654 +SAR1A -0,355144478 +KDM1A -0,355067715 +PRDX3 -0,354963773 +ETF1 -0,354759299 +ARMCX2 -0,354758912 +IQSEC1 -0,35395949 +TIMM13 -0,353925241 +AP2B1 -0,353904118 +STYK1 -0,353863363 +CDK7 -0,353806664 +DLG3 -0,353783905 +SEPHS2 -0,353722454 +MTOR -0,353463273 +PPIH -0,353351383 +GRPEL1 -0,353254529 +C9orf91 -0,353075824 +RGS17 -0,353023569 +NTSR1 -0,352789658 +HNRNPH2 -0,352751195 +HCCS -0,3526918 +C2orf3 -0,352661516 +TFDP2 -0,352647453 +GOSR2 -0,352396188 +PSMB1 -0,352279045 +MPI -0,35224609 +DUSP26 -0,351953212 +HERC1 -0,351631367 +SORD -0,351295095 +TUBB2B -0,351140866 +LPCAT4 -0,351128323 +CFL1 -0,351124653 +ARPP19 -0,350935095 +MTMR4 -0,350923479 +COX7A2 -0,350878835 +PGM1 -0,350865278 +RHOQ -0,350802567 +CCDC53 -0,350756677 +UQCRB -0,350742301 +NAPA -0,350657124 +CSDC2 -0,35061274 +BECN1 -0,350596093 +GYG2 -0,350535323 +GPKOW -0,35045328 +FXYD7 -0,350387292 +CYLD -0,349973469 +CSPG5 -0,349825086 +TTC15 -0,349816074 +ILF2 -0,349761198 +STOML2 -0,349586681 +CACNB2 -0,349516102 +VARS -0,349372141 +ZSCAN18 -0,349241937 +PTRH2 -0,349224021 +P2RX5 -0,349175679 +RALB -0,349042784 +NUBPL -0,348899542 +NCBP2 -0,348786336 +DKFZp434H1419 -0,348772873 +UFSP2 -0,348370783 +ARHGEF17 -0,348050229 +FXR2 -0,34801331 +INSIG2 -0,347755165 +XRCC5 -0,347746659 +CLTCL1 -0,34759935 +TMEM177 -0,347585446 +VAMP2 -0,347189398 +EML2 -0,347084746 +SNUPN -0,346850632 +GPX4 -0,346688538 +RASA1 -0,346685342 +USP46 -0,346590476 +LSM5 -0,346546029 +SEC31A -0,34652486 +PALM2-AKAP2 -0,346447335 +CKAP2 -0,346385113 +ELOVL5 -0,346375127 +PMS2L3 -0,346133275 +PAQR3 -0,346117871 +ST8SIA3 -0,34604187 +FDX1 -0,34603415 +C12orf4 -0,345989709 +COQ7 -0,345988262 +UROD -0,345987158 +RPE65 -0,345902642 +DCK -0,345889475 +RARS -0,345819092 +CAPZA1 -0,345775372 +NRN1 -0,345693574 +RNF7 -0,345545425 +ABAT -0,345474072 +CRY2 -0,345467057 +HR -0,345290796 +CACNA2D3 -0,345213407 +TWIST1 -0,345148814 +P4HTM -0,345112277 +GDI1 -0,344731063 +GRIA3 -0,344721718 +D4S234E -0,344715573 +TMEM151B -0,344385728 +MPHOSPH6 -0,344298044 +PYGB -0,344201683 +MARCH6 -0,344086188 +AL050136 -0,343680587 +NDUFS6 -0,343667551 +TRAPPC9 -0,343555476 +PYGL -0,343533875 +EFNB3 -0,343417492 +SCD -0,343398039 +TFG -0,342863204 +PPFIA3 -0,342761025 +SENP6 -0,342750174 +KCMF1 -0,342689973 +GNAS -0,342684217 +MAPK6 -0,342588157 +PRMT5 -0,34246621 +SEPT11 -0,342460355 +MEIS3P1 -0,342265108 +FABP3 -0,3421554 +YIPF6 -0,3420929 +FABP6 -0,342074193 +SRSF9 -0,341825092 +AP1AR -0,341737984 +PKNOX2 -0,341609179 +PAK6 -0,341535575 +PRKAA1 -0,341378959 +UBA3 -0,34130955 +OAZ1 -0,341251276 +EID1 -0,340941987 +MRPS28 -0,340842312 +AA890010 -0,340724739 +OSBP -0,340497775 +ATP6V0C -0,34047911 +ARHGAP24 -0,340414643 +PNKP -0,340118439 +PSMD7 -0,340085658 +IPO9 -0,340071575 +ARF4 -0,339993296 +TERF2 -0,339818219 +SRSF2 -0,339525933 +PSMC5 -0,33950993 +TM9SF1 -0,339389717 +ACAT2 -0,339093022 +CDK8 -0,33909169 +KIAA0196 -0,338987444 +TFPT -0,338941882 +TRPC4AP -0,338718194 +TUBG1 -0,338211067 +SCN2B -0,338080627 +MTHFD1 -0,338071854 +ATPAF2 -0,338050158 +IGSF1 -0,337997383 +RGPD6 -0,337877048 +C16orf45 -0,33773508 +C10orf76 -0,337659307 +UBE2A -0,33762595 +PQLC1 -0,337612976 +SOD1 -0,337454918 +ARPC2 -0,337418781 +MEMO1 -0,33728488 +CSDE1 -0,337036578 +PHYHIP -0,336992273 +LYPLA1 -0,33698776 +NDUFA1 -0,336883322 +MARCKSL1 -0,336747008 +DCTN1 -0,336745427 +COX6A1 -0,336728807 +DPM1 -0,336614034 +ELP3 -0,336602956 +LOC653566 -0,336555692 +COX7BP1 -0,336528019 +CAPZB -0,336348777 +DCUN1D4 -0,335942405 +UCHL5 -0,335933871 +PSIP1 -0,335684272 +MRS2 -0,335589123 +RABGAP1 -0,335570544 +KCNA6 -0,335454989 +RAC1 -0,335429141 +ZMYM2 -0,33542626 +MRPL17 -0,335371398 +MLF1 -0,335274724 +RFC3 -0,33507418 +ARMCX3 -0,335005795 +GMDS -0,334931775 +KIAA0317 -0,334922749 +CAMSAP1 -0,334678333 +LSG1 -0,334628714 +PNPO -0,334625052 +THOC5 -0,334532053 +C11orf58 -0,334154436 +MTCH1 -0,334038037 +KAL1 -0,333848755 +OMG -0,333590731 +KLHL7 -0,333537148 +TTPAL -0,333489991 +GLA -0,333336937 +SEZ6L2 -0,333262252 +SNURF -0,333035272 +ARL6IP1 -0,332988884 +BFSP1 -0,332976059 +MAPKSP1 -0,332894473 +HABP4 -0,332672498 +SLC8A2 -0,332645114 +CKAP4 -0,332543738 +NPM1 -0,332250102 +CLSTN3 -0,332157745 +RUSC2 -0,33210981 +RCHY1 -0,331805148 +CACNA1D -0,331681156 +ZFAND5 -0,331302172 +TACC2 -0,331046487 +CHCHD3 -0,331008486 +RGS2 -0,330792786 +LDOC1 -0,330775706 +BTN2A1 -0,33075204 +WDR45 -0,330593865 +W87688 -0,330499179 +YWHAQ -0,330473094 +RAB3GAP2 -0,33029144 +HTRA2 -0,330240669 +SNRPD1 -0,330240562 +ANXA7 -0,330030639 +KIAA1024 -0,329770804 +RAD51C -0,329735785 +PRPF18 -0,329474331 +CCT6B -0,329361737 +ABCD3 -0,329205796 +PARN -0,329139621 +APOL2 -0,328983174 +MRPS18A -0,32863432 +RASL10A -0,328581006 +COG8 -0,328398026 +ZNF512B -0,327877848 +ATP5H -0,327758416 +PRDM4 -0,327710757 +TSPAN3 -0,327644045 +EPB41L3 -0,327416874 +APLNR -0,327394979 +TFR2 -0,327337619 +GADD45A -0,327012981 +POLR3F -0,326871651 +FASTKD3 -0,326789822 +TCERG1 -0,326746174 +VPS41 -0,326459968 +C17orf101 -0,325979143 +EXOC3 -0,325763291 +SLC25A17 -0,325666279 +GDAP1L1 -0,325526797 +HCFC1R1 -0,325022815 +SF3B5 -0,324878766 +TEX10 -0,324812522 +PSMA7 -0,324673715 +TCTN3 -0,324389244 +NOVA1 -0,32437578 +RABEPK -0,324366299 +ALG5 -0,324335095 +ENOSF1 -0,32427768 +SH3BGRL3 -0,32409913 +CTNND2 -0,324002004 +NKRF -0,323983769 +SLC6A1 -0,323833407 +MAPK1IP1L -0,323722226 +RAB22A -0,323713658 +GRP -0,323354345 +SDS -0,323335387 +IBTK -0,323304602 +CARS -0,322679359 +WWP1 -0,322463311 +ARL8B -0,322442301 +SLC19A2 -0,322361872 +F8A3 -0,322202521 +LPHN1 -0,322183082 +SMARCD3 -0,322148361 +GPN1 -0,322024809 +FAF2 -0,322014431 +SLC35B1 -0,321878066 +MPV17 -0,321698226 +TOM1 -0,321634922 +NEDD4L -0,321518057 +MRFAP1L1 -0,321393672 +C6orf62 -0,321303598 +POLR3B -0,321247444 +HTR2A -0,321189596 +CUL3 -0,321141566 +PSMD9 -0,321108014 +LRP3 -0,32099653 +TMEM62 -0,320873847 +PLS3 -0,320803014 +SUMO1 -0,32076762 +DLG4 -0,320617015 +ANKRD17 -0,320557554 +ARFIP2 -0,320500236 +HMGN4 -0,320196335 +PRKAG2 -0,319945607 +STAR -0,319749743 +NF1 -0,319726773 +ATOX1 -0,31967306 +UBE2M -0,319629201 +NDRG3 -0,319446308 +SNPH -0,319396594 +TPD52 -0,319178712 +PLK2 -0,319120325 +C1QBP -0,318975829 +SRSF8 -0,318843616 +USP22 -0,318806098 +GPD1 -0,318728943 +MAPK8IP2 -0,318691894 +USP20 -0,318610382 +RPA2 -0,31845096 +CCPG1 -0,318358561 +NQO2 -0,318256129 +POLR3C -0,318231923 +HBXIP -0,318079181 +MRPS31 -0,318018334 +SNRPB2 -0,31801084 +CACNG3 -0,317104885 +CCNE1 -0,316783937 +NDUFAF4 -0,316755785 +GRK6 -0,316405946 +ZER1 -0,316363024 +CHCHD7 -0,316179658 +C20orf29 -0,315860291 +AI693193 -0,315746456 +TPMT -0,315745725 +TPPP3 -0,315557058 +CTH -0,315210231 +HSDL2 -0,31516145 +MAPRE3 -0,314964867 +NLE1 -0,314918022 +ARHGEF4 -0,314777145 +STK19 -0,314737564 +AW503390 -0,314280211 +KIAA1279 -0,314104435 +CA14 -0,313849822 +CYP2E1 -0,313441486 +FHL1 -0,313417456 +MYL6B -0,313075964 +PACRG -0,3129322 +SCN2A -0,312912414 +POLR3G -0,312898745 +MED6 -0,312862133 +PCSK1N -0,312861133 +FLJ10038 -0,312756044 +PHTF1 -0,312716368 +PRPF4 -0,312654478 +RPRD1A -0,312642779 +HLF -0,312545473 +MTMR1 -0,312535102 +MFN1 -0,312461722 +C1orf50 -0,312398425 +QPRT -0,312349796 +ZDHHC6 -0,31229266 +ITGAE -0,311863717 +SLC18A1 -0,311739998 +CD83 -0,311711539 +GGCT -0,311631664 +KIAA0100 -0,311503156 +OPN3 -0,311374884 +SSX2IP -0,311111099 +NUCB2 -0,31105706 +UTP11L -0,311015852 +GOLGA8B -0,310924837 +UST -0,310734373 +PRKCI -0,310493775 +AP2S1 -0,310480065 +WBSCR22 -0,310476192 +PPP3CA -0,310434457 +PDSS2 -0,310396648 +PEG3 -0,310335546 +ATP5E -0,310319916 +GABRA5 -0,310200087 +AGPAT4 -0,310173061 +PDCD10 -0,310157516 +DDOST -0,310094837 +RPL23 -0,309992315 +HOMER1 -0,309485866 +C1orf123 -0,309187816 +POLE3 -0,309012195 +DDX41 -0,308923345 +HSD17B8 -0,308824584 +GMPR2 -0,308792858 +SCARB2 -0,308695909 +DGUOK -0,308606021 +MAGEF1 -0,308535371 +FOXA2 -0,308348483 +GLS2 -0,308287643 +TBCC -0,308286536 +FBXO41 -0,308255485 +SLC12A1 -0,308214984 +PELO -0,308137793 +KCNE1L -0,30811412 +RBBP4 -0,308007454 +UBL5 -0,307720013 +KLHL12 -0,307571676 +FTSJ1 -0,307464516 +ZFYVE16 -0,307366442 +PPT1 -0,3073579 +ZC3H13 -0,307293327 +DYRK1A -0,307183877 +PHACTR2 -0,306935621 +SLITRK3 -0,306872073 +PI4KA -0,306770561 +RNPS1 -0,306364972 +RALGAPB -0,306086767 +BRP44 -0,305953308 +BNIP1 -0,305883874 +SUPT4H1 -0,305675152 +BCKDK -0,30566687 +PLAA -0,305619464 +ACTR2 -0,305363631 +PION -0,305054773 +NFU1 -0,305010295 +CCT6A -0,304801168 +KIAA0427 -0,304585348 +EHD3 -0,304533089 +FAM63B -0,304437794 +STK25 -0,304425083 +POLB -0,304419007 +MRPL35 -0,304416576 +UBE2Z -0,3043165 +GSTZ1 -0,304133065 +AP3S1 -0,30395899 +SPATS2L -0,303776395 +LOC729580 -0,303766036 +RALGAPA1 -0,303697943 +PUF60 -0,303647762 +DAP3 -0,303640732 +AHI1 -0,303570806 +UBE2NL -0,303361552 +TMEM164 -0,303165514 +DOCK3 -0,303099341 +CADM3 -0,303050893 +ZNF219 -0,302968533 +PRKAR1B -0,302898104 +DOK5 -0,302798088 +ORMDL2 -0,302372011 +ACVR2A -0,302331205 +ALDOA -0,30171568 +ATRN -0,301666345 +COX7C -0,301597748 +PRKDC -0,301229867 +GNG10 -0,300757182 +SNX17 -0,300752701 +RBMS1 -0,300466996 +AJAP1 -0,300458474 +PREP -0,300414848 +ALDOC -0,300361514 +LAMA4 -0,300246196 +PI4KAP1 -0,300223018 +TMEM222 -0,30010369 +PIGB -0,299980372 +SSSCA1 -0,29997354 +DCUN1D1 -0,299517655 +DLSTP1 -0,299414392 +ITM2B -0,299325985 +AK025651 -0,299260618 +ACOT13 -0,299073057 +ZNF593 -0,298588283 +LOC100129250 -0,298385026 +H2AFY -0,298292243 +IGF1 -0,298232454 +KIAA0368 -0,29819687 +FKBP3 -0,298122528 +C12orf49 -0,297820161 +PRKRIR -0,297808472 +GLUD2 -0,297805688 +NBL1 -0,297799978 +PTPN4 -0,297657679 +LOC644617 -0,297586698 +IL33 -0,297538719 +CUL4A -0,29730361 +SIP1 -0,297199387 +POLDIP2 -0,297140479 +EBP -0,297109427 +FASTKD2 -0,296665172 +SMPD1 -0,296658212 +FAM55C -0,296650198 +TRPV2 -0,296465177 +DOPEY1 -0,29633822 +SCYL3 -0,296201386 +UBL3 -0,296188632 +STK38L -0,296164266 +APITD1 -0,296017845 +SFXN1 -0,295918484 +CPT1A -0,295754312 +USP8 -0,29570338 +MRPS30 -0,295702739 +ATG7 -0,295335659 +C10orf88 -0,29514056 +PIPOX -0,295018193 +RAC3 -0,294600261 +CIAO1 -0,294564961 +KLC2 -0,294523931 +LEPROTL1 -0,29448316 +ENDOD1 -0,294147277 +FEM1B -0,294007766 +IRS1 -0,293342341 +CYP51A1 -0,293155923 +DYNLRB1 -0,292974645 +TOM1L2 -0,292906836 +TDP2 -0,292808809 +MRPL49 -0,292778686 +LRP8 -0,292767989 +MOSPD1 -0,292730297 +C6orf134 -0,29255632 +TRPC1 -0,29249815 +RASL11B -0,292459191 +AL109671 -0,292334441 +TTC37 -0,292136499 +ODZ4 -0,292070818 +KIN -0,291741417 +KPNA1 -0,291721639 +CAST -0,291558763 +NDUFA13 -0,291524477 +AKR1A1 -0,29149158 +QARS -0,29146477 +MRPS22 -0,29145846 +MMACHC -0,291414294 +UBQLN2 -0,291358191 +PIK3CB -0,291242041 +COX6B1 -0,291081182 +PDK2 -0,290962723 +RABGGTB -0,290962562 +SR140 -0,290943983 +ATF2 -0,290881352 +FADS1 -0,290820194 +SRP14 -0,290691218 +RAD23B -0,290632171 +AHCY -0,290521401 +RINT1 -0,290502144 +SRP54 -0,290224786 +COX5B -0,289972152 +NBN -0,289962803 +DDX50 -0,289845246 +NUFIP1 -0,289611609 +HDGFRP3 -0,289540354 +HBA2 -0,289412602 +SRP9L1 -0,289377441 +ARFGEF1 -0,289327503 +FAM13B -0,289118442 +DIMT1L -0,288943725 +LPO -0,28888192 +VPS28 -0,288730564 +SSR3 -0,28867602 +SEPT7 -0,288663677 +NARS2 -0,288651232 +EMG1 -0,288493971 +HSPA8 -0,288488899 +TBC1D13 -0,288209587 +TTC35 -0,288076299 +GTPBP4 -0,287916733 +SPG7 -0,287774853 +PAFAH1B3 -0,28772138 +MAPT -0,28765216 +RERGL -0,287509361 +HNRNPD -0,287438947 +PLCL2 -0,287391702 +HLA-DPA1 -0,287200849 +CD55 -0,286966384 +IDH3A -0,286870398 +STXBP5L -0,286801199 +MAP3K12 -0,286334641 +PPP2R1A -0,286259611 +TMEM126B -0,286136364 +CDKN3 -0,286064506 +ABCC5 -0,286013319 +TMEM127 -0,285913561 +DNAJC2 -0,285585137 +SEC61G -0,285583827 +SSR1 -0,285489405 +AIMP1 -0,285281231 +YTHDF2 -0,285194578 +FAM86B1 -0,285046154 +CTBP1 -0,285027477 +CHRFAM7A -0,285001423 +SSBP3 -0,284934817 +MRPL46 -0,284930449 +TSPAN6 -0,284861931 +MYST2 -0,284824247 +GGH -0,284817124 +PRKACB -0,2847024 +C2orf47 -0,284692381 +NLK -0,284579832 +ASNS -0,28445955 +EXOC5 -0,28439526 +OAZ3 -0,284379411 +CTNNBIP1 -0,284364924 +PVR -0,284070802 +C16orf80 -0,284019987 +UBE3A -0,283816198 +EAPP -0,28376748 +IGSF3 -0,283764031 +KCND2 -0,283569047 +FOXK2 -0,283286684 +SLC35A2 -0,283204451 +TBCB -0,283168385 +SLC38A1 -0,283158141 +ACCN2 -0,283147998 +FAM149A -0,283126904 +TIMM22 -0,283102824 +EIF4ENIF1 -0,28310048 +THSD1P1 -0,282819454 +MAGED4 -0,282562753 +CLASP1 -0,282510547 +C1orf61 -0,282424601 +C6orf106 -0,282397365 +WDR44 -0,282155933 +GNL3 -0,282115302 +RCBTB1 -0,28192202 +OSTM1 -0,281535242 +AGPAT5 -0,281510168 +PRNP -0,281405094 +APPBP2 -0,281330465 +GAD1 -0,281295305 +NECAB3 -0,281056363 +ABCF1 -0,280961256 +DNAJC7 -0,280750506 +EPHB1 -0,280596899 +GPRC5A -0,280368026 +HSPA14 -0,280049432 +CLPTM1 -0,280042656 +SGPP1 -0,27999737 +ABCG4 -0,279891909 +GFRA1 -0,279146972 +ATP5SL -0,278849245 +CTSO -0,278677227 +DCTN4 -0,278556645 +MAP2K2 -0,278535478 +ZNF423 -0,278503712 +FUS -0,278285124 +ACTR8 -0,278282163 +PRR13 -0,278189761 +ZNF329 -0,278179162 +RNASEH2B -0,278151755 +LOC284244 -0,278099761 +FAM117A -0,277715513 +MREG -0,277651168 +C2orf18 -0,277609469 +AW612311 -0,277599115 +SYNRG -0,277434047 +SMARCE1 -0,277346186 +DNAJA3 -0,277188103 +PPP2R5E -0,2770317 +TMCO6 -0,276951805 +C6orf35 -0,276886272 +DDX18 -0,276619655 +TTLL1 -0,276373935 +LANCL1 -0,276361838 +SNRPE -0,276287655 +DTX4 -0,276233703 +IDH2 -0,276017451 +SACS -0,275814599 +ABHD2 -0,275491786 +VAMP1 -0,275092752 +AGPAT1 -0,27504004 +TYMS -0,274913065 +ZDHHC3 -0,27479568 +LMO1 -0,274566957 +UVRAG -0,274559415 +HBB -0,274385467 +PSMA2 -0,274273938 +CD24 -0,27422103 +GRAMD1B -0,27394685 +PRC1 -0,27393137 +YARS2 -0,27376193 +SIGMAR1 -0,273597834 +CPEB3 -0,273534888 +ARMC9 -0,273442678 +DNAJC10 -0,273369377 +TM9SF4 -0,27326642 +RBX1 -0,273166064 +C13orf1 -0,273151402 +PDCD4 -0,273130523 +LUZP2 -0,272843047 +APLP2 -0,272609838 +USO1 -0,272598741 +SH3BP5 -0,272512602 +PPP1R11 -0,272494252 +PEMT -0,272485616 +CDC16 -0,272287144 +LCMT2 -0,272235596 +DCX -0,271983078 +DDAH1 -0,271924121 +UBE2D2 -0,271815552 +TANK -0,271664689 +AW974666 -0,271662837 +USH1C -0,271630244 +BDH1 -0,271624449 +B9D1 -0,271589518 +BRD9 -0,271105209 +USP7 -0,271052865 +TRIM2 -0,270764995 +PARK7 -0,270634786 +NSFL1C -0,270597248 +COQ2 -0,269953826 +HNRPDL -0,269787459 +NOV -0,269731303 +SLC25A28 -0,269706278 +EXT2 -0,26958066 +VLDLR -0,269148459 +SLC4A4 -0,268895862 +SMURF1 -0,268798637 +ORC2L -0,268275919 +ZC4H2 -0,268056536 +SDHAF1 -0,267985583 +VDAC1 -0,267895013 +ALDH1A3 -0,267738476 +PNPLA4 -0,267586498 +HAGH -0,267406111 +CNTNAP2 -0,267355858 +KPNA3 -0,267278305 +LRBA -0,267216793 +DPYSL4 -0,267150239 +MCCC2 -0,26714725 +KBTBD4 -0,267031071 +DCTD -0,267005887 +C1orf21 -0,266982234 +C2orf43 -0,26679916 +SF3A3 -0,266732334 +PTPN3 -0,266674559 +FBXO21 -0,26664933 +CCT7 -0,266615147 +CLNS1A -0,266539743 +HAPLN1 -0,266160364 +SYT13 -0,26591944 +SENP5 -0,265695364 +HMGB2 -0,265556554 +CANT1 -0,265168032 +CGREF1 -0,265157579 +GRM1 -0,26510368 +ZFHX4 -0,265049797 +PVRL3 -0,264999073 +ADAR -0,264636454 +TRIM3 -0,264561355 +ANP32E -0,264413865 +PDLIM7 -0,264406742 +MLH1 -0,264377914 +PRKCA -0,264376056 +CYB5R3 -0,264120933 +PDE1A -0,263919942 +LOC100127998 -0,263915362 +WSB2 -0,263691169 +RPF1 -0,263404659 +CXCL12 -0,26333499 +TMEM66 -0,263285506 +EIF6 -0,263232223 +NFE2L1 -0,262789646 +KLHL20 -0,262772392 +PPM1H -0,262689193 +PIN4 -0,262483899 +TUBA4B -0,26241982 +ECT2 -0,262276809 +MGC5566 -0,261888759 +C9orf116 -0,261830489 +ASB1 -0,261751394 +ABCC8 -0,261735107 +ELOVL2 -0,261638578 +PHB2 -0,261466477 +ZNF580 -0,261379751 +DNAJC24 -0,261364702 +PSMB10 -0,261344946 +CSE1L -0,261292597 +ANKRD27 -0,261154598 +TUBG2 -0,261047779 +C6orf162 -0,261001828 +AL034399 -0,260886813 +GLT8D1 -0,26052144 +SRR -0,260520305 +MCC -0,260395686 +COX4I1 -0,260324715 +SEP15 -0,260222524 +RNF103 -0,260210477 +ZNF576 -0,260159221 +MGEA5 -0,260092677 +RSL24D1 -0,259958151 +USP13 -0,25969613 +MLLT3 -0,259631882 +SRI -0,259268888 +NCS1 -0,259133737 +MAPKAPK5 -0,259103348 +IQCG -0,25908825 +FN3KRP -0,258914892 +BCKDHB -0,258870249 +GOLGA5 -0,258736414 +RDBP -0,258483881 +SUPT7L -0,258355414 +METTL1 -0,258206012 +CREB3 -0,258159408 +TMEM111 -0,258136123 +NRSN2 -0,257397396 +CNTN1 -0,257314074 +COX10 -0,257277055 +SERPINB9 -0,257269621 +MTF2 -0,256976969 +EDNRB -0,25676028 +HSF2 -0,25652969 +POLR2L -0,256424652 +TRIM58 -0,256294322 +DACH1 -0,256241463 +UEVLD -0,256239024 +ATP1B3 -0,256215499 +SAP130 -0,256053262 +TRPC6 -0,255890704 +HERC6 -0,255794959 +NAV3 -0,255707496 +GOSR1 -0,25567987 +CNR1 -0,255506006 +PSME4 -0,25522233 +CAMKV -0,254605479 +ADSL -0,254512794 +BCS1L -0,254298738 +CCNB1 -0,253924801 +SNX2 -0,253887319 +ASAP2 -0,25387509 +WDR70 -0,253565737 +PTPRE -0,253309549 +SEPT5 -0,253058348 +SCML1 -0,253051964 +BCR -0,252946659 +MAGOH -0,252829021 +SEMA4F -0,25277628 +CLIP1 -0,252764211 +JMJD4 -0,252747043 +ZMYND11 -0,25273006 +CPSF6 -0,252574141 +PTPRA -0,252430519 +PLA2G12A -0,252393049 +MXRA5 -0,252290125 +RFX5 -0,252264534 +WARS -0,252174212 +HUS1 -0,252166663 +VCAM1 -0,251733145 +CEACAM21 -0,25171453 +RHOT1 -0,251514974 +EMD -0,251327933 +TSPYL2 -0,251307071 +THNSL1 -0,25130438 +NDUFB4 -0,251250318 +CHMP5 -0,251232028 +SKAP2 -0,251185084 +LRPAP1 -0,251070101 +COMMD3 -0,251069448 +ROGDI -0,250917557 +PPAP2B -0,25089017 +ADSS -0,250852878 +LGI2 -0,250809779 +CBX6 -0,250671998 +NELF -0,250584567 +DENND5B -0,250357567 +ATP2C1 -0,239139672 +SUMO2 -0,233193565 +KRAS -0,208565613 +PEX3 -0,200767265 +PRDX2 -0,195371323 +PDCD2 -0,194653063 +TM2D1 -0,189207426 +KHDRBS1 -0,16653347 +KLC1 -0,156510024 +ANK2 -0,155852142 +HBS1L -0,155006259 +NTRK3 -0,121314135 +PTPRO -0,110200451 +PLEKHA5 -0,10184855 +GCOM1 -0,091608137 +TIMM8A -0,084179504 +MKRN1 -0,074942655 +PLA2G4B -0,068760926 +RUFY3 -0,059042335 +RIMS2 -0,057507607 +C21orf2 -0,054091983 +METAP2 -0,053236401 +LRRC40 -0,040678287 +RPL10 -0,034862755 +RIOK3 -0,033313025 +SYNCRIP -0,027340658 +UNC45A -0,021866459 +MPZL1 -0,020796077 +RANBP1 -0,01610173 +ITGB1BP1 -0,011025016 +UBC -0,009666523 +RER1 -0,007044099 +PDS5B -0,005231512 +NCAM1 -0,004638056 +LIMCH1 0,003894784 +VPS13D 0,014841215 +WDFY3 0,017457694 +MRP63 0,023151675 +TSR1 0,064261585 +GRB10 0,066410415 +FAM128B 0,074972161 +PAK2 0,079518764 +PKP4 0,080237181 +TMEM144 0,083124821 +C3orf63 0,086752023 +DDAH2 0,250378216 +AF238870 0,250544885 +PTMS 0,250667518 +JAG1 0,250675664 +RPL32 0,25075902 +UXT 0,250812127 +HSP90B1 0,250888984 +SS18 0,250904748 +RND2 0,250918958 +CLEC4M 0,250931594 +AU147194 0,251115897 +IL1RAPL1 0,251119435 +EPB41L2 0,251131328 +TFDP3 0,251241244 +GAL3ST4 0,251281983 +EDN2 0,251371356 +SFTPC 0,251372616 +TRMT61A 0,251534845 +GPR4 0,251535902 +KEAP1 0,251692277 +RNF122 0,251718243 +NOTCH2 0,251745042 +WDR1 0,251871256 +NFX1 0,252023298 +DOHH 0,252100123 +NES 0,252167647 +SRSF10 0,252172984 +AQP3 0,252182392 +LOC728412 0,252404082 +RCN3 0,252455902 +CSNK1G1 0,252462493 +KCNS1 0,252601737 +CCDC71 0,252614101 +JUND 0,252645305 +LYST 0,252718314 +TPCN1 0,252770336 +MTA1 0,252823052 +RIN1 0,252841454 +ATHL1 0,252944239 +FTSJ3 0,253136044 +SERPINA1 0,253202139 +STARD7 0,2533744 +MRPL34 0,253425868 +PPID 0,25344089 +SH3PXD2A 0,253534644 +UBA7 0,253547625 +RUNX1 0,253686159 +ARNTL 0,253823553 +STAT6 0,253840779 +CASKIN2 0,25393147 +NFATC4 0,253965486 +LILRB2 0,254041373 +PPP1R13L 0,254173566 +RAP1A 0,254249533 +OTUD4 0,254380531 +ZNF516 0,254390037 +ZC3H14 0,254430628 +BTD 0,254441889 +ABHD4 0,254494909 +MT3 0,254554667 +PTCH1 0,254572046 +CDC42EP3 0,254591236 +LOC150776 0,254715807 +PTGES 0,254816225 +TPM2 0,254867646 +TAGLN 0,254960085 +AL050032 0,254984309 +HPN 0,25500915 +FLNC 0,255046574 +GJB3 0,255060346 +RAB40B 0,255071999 +CST1 0,255226531 +FGF21 0,255229382 +AW574933 0,255334628 +FGF5 0,255461872 +CLCN7 0,2555275 +BAHCC1 0,255618646 +FANCA 0,255627746 +CYBA 0,255682121 +TIE1 0,255683605 +ANKHD1-EIF4EBP3 0,255707685 +CDV3 0,255740411 +COL9A1 0,255878907 +TTC31 0,256049153 +ZIC1 0,256075896 +CCDC121 0,256090992 +FUT4 0,256155794 +UCP3 0,256197327 +AU146391 0,25625958 +MMP2 0,256269664 +STXBP2 0,256386629 +TMEM87A 0,2564575 +FXR1 0,256493521 +RDX 0,256507051 +HPS1 0,256516919 +TRAM2 0,256517872 +HYAL2 0,256778041 +TNFRSF14 0,256783849 +NEK7 0,256861333 +AGRN 0,256876471 +SMC4 0,256895131 +GAS7 0,256949822 +PDE4B 0,256950938 +CHD4 0,256970114 +SPP1 0,257084517 +HECA 0,257172806 +NXF2B 0,257181225 +LILRA5 0,257188463 +SCAP 0,257267679 +SNX1 0,257354288 +GIGYF2 0,257400552 +CELF1 0,257407908 +HSD17B14 0,257420303 +DUOX1 0,25770603 +MRM1 0,257826185 +NBR2 0,257852879 +FAM176B 0,257955278 +SYNPO 0,257997864 +GPRIN2 0,258040238 +IER3 0,25816919 +ZNF506 0,258198461 +NM_016414 0,25824817 +VPS53 0,258358594 +PGPEP1 0,258378109 +GNL1 0,25847832 +OGFR 0,258496938 +CXCR2 0,258632799 +C1orf38 0,258857462 +RPL22 0,258901214 +NM_018041 0,259005358 +MYOF 0,259133176 +NGB 0,259197495 +CLIC4 0,259260666 +TBC1D9B 0,259295717 +KCND1 0,259337213 +RNASET2 0,259420675 +EXT1 0,259568659 +AQR 0,259572114 +VWA1 0,259618684 +MUC3A 0,259647513 +CAV1 0,259682957 +IRF4 0,259719685 +OR7C1 0,259728956 +SETDB1 0,259737838 +E2F6 0,259867146 +TFEB 0,259924981 +CPSF3L 0,26005015 +MARCH8 0,260576922 +MFSD11 0,260945964 +ETAA1 0,260954881 +SMARCD2 0,260999203 +RGS12 0,261024661 +CCNG2 0,261112401 +RPS8 0,261183649 +IL17RA 0,261275371 +NUDC 0,261284708 +ZNF133 0,261329337 +ATP13A1 0,261543252 +PICK1 0,26166607 +C20orf117 0,261682534 +GIPR 0,261728602 +HIST2H4B 0,261730186 +S100A11P1 0,261732522 +MARCH3 0,26174629 +ZBED4 0,261794357 +KHK 0,261822851 +SCAMP2 0,26194666 +AF070579 0,261954742 +TECR 0,261998101 +AK024915 0,262016665 +CASP7 0,262240261 +PDK4 0,262293861 +MYO7A 0,262479993 +TUBBP5 0,262483574 +TMEM143 0,262491406 +NAP1L1 0,262524812 +PLEKHB1 0,262542861 +ING1 0,262679424 +SPSB3 0,262786186 +C9orf167 0,262955615 +NTM 0,262977412 +FIP1L1 0,263199662 +FYCO1 0,26321575 +GGT1 0,263227324 +ALG12 0,263240056 +IGL@ 0,263282588 +PPBP 0,263290228 +SNX13 0,263292989 +SRSF4 0,263309909 +CYTH1 0,263721364 +AL050035 0,263831657 +TRMU 0,263920451 +TIMP1 0,263959235 +RFNG 0,263965598 +HIP1R 0,264033626 +NR1H3 0,264039538 +NT5C2 0,264091319 +FNTB 0,264115077 +SAR1B 0,264175117 +GIT1 0,26420824 +RRAGD 0,264311012 +HAP1 0,26435511 +FLT3LG 0,264378926 +NM_018612 0,264421364 +SLC7A9 0,26447762 +GLTSCR2 0,264541217 +SUN1 0,264635751 +CEP152 0,264663399 +MBTD1 0,264688291 +SYT12 0,264690461 +ACTR5 0,264835312 +EIF4A1 0,264933012 +COX7A1 0,26511391 +CMTM6 0,265385079 +FAM102A 0,265449454 +AW970584 0,265532869 +FMO5 0,265619005 +N4BP2L1 0,26587536 +SPAG11A 0,265939376 +TGFBI 0,265987004 +RYK 0,266131346 +SERBP1 0,266135884 +AK021988 0,266152576 +NCAM2 0,266199101 +AK024995 0,266233606 +RAB9A 0,266259326 +SYNJ2 0,266313048 +PHLDB1 0,266315252 +PKN1 0,266439146 +MFAP3L 0,266558078 +PPFIBP2 0,266640652 +WBP5 0,266861878 +TMX1 0,266949292 +SLC6A12 0,267009029 +C3AR1 0,267017849 +CSRP2 0,267020264 +SP3 0,267034674 +ATN1 0,267069634 +GNB3 0,267107148 +TIAL1 0,267113358 +GPATCH8 0,267177985 +PMEPA1 0,267182372 +MAP2K3 0,267199274 +NM_018033 0,267304029 +WWTR1 0,267350058 +SEMA6A 0,267400431 +RBPJ 0,267426168 +AL049279 0,267438916 +IL1RN 0,267473934 +QKI 0,267577841 +SOX15 0,267588393 +DMTF1 0,267672579 +RPL19 0,267821304 +TRIM39R 0,267839755 +SLC26A6 0,267879749 +NM_025056 0,267969441 +BBS9 0,267969882 +M85256 0,26799656 +ADORA3 0,268097905 +TMEM176B 0,268515164 +SECTM1 0,268600799 +ST14 0,268612452 +ARHGEF18 0,268652414 +SIRT5 0,268726991 +MYBPC1 0,268763379 +RPL15P22 0,268793196 +SIGLEC15 0,268860828 +DNAJA1 0,26890035 +LMBR1L 0,269042598 +GIMAP4 0,269074847 +MFAP3 0,269075993 +ABCA6 0,269120338 +AW836210 0,26919833 +LOC100133772 0,269228182 +CHST4 0,269387102 +RNASEH2A 0,269387986 +RPL18 0,269450865 +RPLP2 0,269486597 +MEPE 0,269489799 +FAM106A 0,269545639 +GATAD1 0,269621956 +PPP2R3A 0,269725552 +MASP2 0,269836416 +MYO10 0,26992164 +PIGG 0,269941407 +SMG5 0,269952017 +IFI30 0,269956381 +AK025180 0,269971157 +AMD1 0,269982316 +LMOD1 0,270125966 +SNX15 0,270191178 +SCARB1 0,270338985 +SERTAD3 0,270373355 +MBD5 0,270430073 +SLC2A5 0,270454389 +ITCH 0,270468949 +ADA 0,270490353 +PWP2 0,270541137 +ARHGEF1 0,270572389 +C2CD2 0,270675538 +EIF1 0,27071329 +C1orf35 0,270772513 +IFI16 0,270855012 +LOC285830 0,270905428 +IL10 0,271025993 +MORC4 0,2712707 +CA11 0,271346355 +C5orf54 0,271348162 +C14orf93 0,271428228 +RPL17P7 0,271481741 +TMEM161A 0,271564557 +LRCH3 0,271627825 +DFFB 0,271779652 +BAZ1B 0,271859723 +DKFZp547G183 0,271894591 +RAB11FIP2 0,271895928 +PCK1 0,27194659 +TMPRSS5 0,27195628 +TIPARP 0,272078235 +UBE2L3 0,272125747 +ZNF672 0,272142507 +GALNT10 0,272151507 +EXD2 0,272173543 +KAT2B 0,272322281 +RPS11 0,27237174 +POLR2H 0,272422791 +IGLL3 0,272574443 +AA554430 0,272578205 +DOCK10 0,272578712 +DMC1 0,272606886 +CD40 0,272762332 +CDK11A 0,272811711 +UCKL1 0,272898303 +FAM125B 0,273084179 +UBXN7 0,273084433 +SMA4 0,273204796 +DYNLT1 0,273349219 +CTTNBP2NL 0,273380758 +HSPH1 0,273396703 +CYP39A1 0,273418193 +HOMER3 0,273432217 +RRBP1 0,273480926 +ATAD2B 0,27361049 +LGALS3 0,273847411 +LASS2 0,273913098 +ZNF451 0,273935073 +NXPH4 0,27404559 +C22orf46 0,274118605 +KDM4B 0,27422483 +GPNMB 0,274363725 +CYHR1 0,274415705 +CCDC9 0,274487483 +WWC2 0,274522318 +ZNF652 0,274533788 +ILK 0,274538403 +CTDP1 0,27455992 +LOC51152 0,274810051 +AL442084 0,274963062 +CPNE7 0,275259638 +CENPB 0,275294531 +TCIRG1 0,275300556 +PRPF40A 0,275423637 +ARHGAP17 0,27552534 +LOC100133811 0,275961848 +ADAM17 0,276019886 +CRISPLD2 0,276144309 +IFIH1 0,276175289 +LOC440434 0,276293985 +DCLK2 0,276369722 +MS4A6A 0,276482788 +VASH1 0,276499979 +SRSF7 0,276513035 +B3GAT3 0,276752575 +CALHM2 0,276762436 +MAP4 0,276867434 +DULLARD 0,27687625 +CTSS 0,276943812 +BAG3 0,277040195 +KRT8P12 0,277155277 +POLR2F 0,277193722 +CD14 0,277207134 +SF3B1 0,277255775 +EZH1 0,277320185 +MBD1 0,277342685 +MITF 0,277407356 +BAIAP2 0,277445862 +FCGR2B 0,277531437 +PAQR4 0,277547889 +NFATC2IP 0,277597337 +CAT 0,277600148 +TJP2 0,277610024 +CCNA2 0,277687494 +GEM 0,277887602 +C2orf54 0,277935237 +HIRIP3 0,278018588 +MCM3APAS 0,278082892 +CFB 0,278130274 +TAGLN2 0,278365668 +AK024851 0,278382784 +HGD 0,278585783 +NR2E1 0,278716062 +SEC61A1 0,278797194 +PDE4DIP 0,278806635 +FRMD4A 0,278822955 +RHOC 0,278842121 +UBTF 0,278963815 +NCOR2 0,279024257 +PPP6R3 0,279218049 +ALAS2 0,279327775 +SPSB1 0,279537438 +SGMS1 0,279545277 +TEAD4 0,279565374 +AK024897 0,27961031 +IRS2 0,279708094 +TRIM62 0,279977776 +AF308291 0,279984986 +AK022362 0,280079092 +KIAA0495 0,280115197 +CUL7 0,280170918 +PARD3 0,280192562 +NUP98 0,280376383 +DHRS4L2 0,280391865 +AK024093 0,280444114 +VEGFB 0,280560816 +PTEN 0,280592383 +NBPF10 0,280620974 +CASP1 0,280699269 +AK2 0,280734467 +MLX 0,280792537 +GNG11 0,280826824 +HNRNPM 0,280968313 +IL12RB2 0,28098376 +CDK18 0,28098866 +RARA 0,280998983 +GYPC 0,281028129 +PAK4 0,28104576 +SEMA3F 0,281239182 +BAT2L2 0,281335934 +BRD4 0,28139016 +PAOX 0,281415979 +SMAD3 0,281446531 +PIK3R2 0,281480063 +IFT122 0,281682471 +IRAK4 0,281825175 +RASSF2 0,281825652 +RPL13A 0,282085077 +ZNF22 0,282127023 +KDM4A 0,282136199 +CPM 0,282150511 +EIF2S2 0,282316006 +USP48 0,282335945 +CLCNKB 0,282422648 +C11orf61 0,282474246 +ANKRD11 0,282516441 +PTTG1IP 0,282619596 +SEC14L1 0,282620994 +DOCK6 0,282646645 +CARHSP1 0,28271852 +RRAS 0,282814195 +TRIM38 0,283129972 +PLA1A 0,283206252 +GAB1 0,283220235 +PDLIM1 0,283254227 +SSH3 0,283308195 +KLF9 0,283315657 +N4BP2L2 0,283629404 +TNS4 0,283667599 +C15orf28 0,28383226 +ANXA11 0,283988681 +TAF12 0,283993401 +SLC39A1 0,284190806 +SAP30 0,284320416 +RNASE4 0,284337811 +RPS28P6 0,28438483 +DDR2 0,284449824 +BMP4 0,284614799 +CEPT1 0,284615091 +ITPKB 0,284650775 +PLEKHF2 0,284678379 +AW974812 0,284683098 +PTCRA 0,284827371 +SETMAR 0,2848555 +SOCS3 0,284925858 +NM_014129 0,284930906 +MYO1D 0,285094554 +RBL1 0,28514691 +HN1L 0,285254673 +LASS4 0,285307965 +RPS21 0,285547221 +PPP2R1B 0,285765143 +NEO1 0,285937917 +SEC24C 0,286013109 +BCL3 0,286014454 +KCNMA1 0,286080656 +AL137590 0,286198689 +EDIL3 0,286207431 +ARHGEF16 0,286210956 +HCK 0,286227266 +GSTA1 0,286246055 +SLA 0,286356975 +UNG 0,286379363 +SP100 0,286388329 +PRSS53 0,28642638 +MYL6 0,286728542 +CDH5 0,286728949 +C10orf116 0,286730624 +GTF2IRD1 0,286882519 +POLH 0,286995879 +SFRS16 0,287066034 +TPM4 0,28709233 +ABCD4 0,287100216 +GLT25D2 0,287127854 +COL18A1 0,287131911 +NPIPL3 0,287424398 +C1orf69 0,287453135 +MTF1 0,287488427 +IGF2BP2 0,287555495 +PALLD 0,287872078 +RPS16 0,287887395 +CYP2C9 0,287955438 +SC65 0,288029122 +CRYBG3 0,288096904 +SHC2 0,288312879 +FLNA 0,288339801 +NM_014486 0,288348194 +ISYNA1 0,288383809 +PNO1 0,288506351 +GZMK 0,2886543 +ATG13 0,288748426 +NCOR1 0,288772721 +ZSWIM1 0,288892162 +GPM6B 0,28893274 +SNTA1 0,289049438 +RHOBTB1 0,289064808 +GGA1 0,289073087 +ATXN2L 0,289088819 +FAM46A 0,289172187 +ZNF532 0,289393934 +CD40LG 0,289400418 +ZCCHC11 0,289421485 +WDR5B 0,289498086 +EPN2 0,289629137 +WNK1 0,289684816 +ZNF408 0,289721753 +LHFPL2 0,290003635 +NARG2 0,290029081 +STYXL1 0,29008917 +YY1AP1 0,290249669 +CPOX 0,290281635 +IL11RA 0,290333682 +PAXIP1 0,290387596 +ZNF282 0,290414378 +C11orf95 0,290643441 +MERTK 0,290681835 +VPS13C 0,29069039 +RPS17 0,290756898 +NEIL1 0,290762184 +ZNF292 0,290850132 +NOSIP 0,290873511 +DNAJB2 0,290950763 +INPPL1 0,29102828 +ZFX 0,29106383 +SETX 0,291138151 +SLC25A37 0,291207794 +PCDHGA8 0,291472818 +TXNIP 0,291962928 +DDX27 0,291971417 +BG389073 0,29216848 +JTB 0,292275569 +RBM10 0,292352574 +RASGRF1 0,29242252 +SYNM 0,292474024 +EXPH5 0,292481151 +NPL 0,292494012 +CHKA 0,292519533 +MGA 0,292564204 +SOX10 0,292580481 +AK024185 0,292975066 +FAM120A 0,292996604 +PLXNB1 0,293000141 +BDH2 0,293071563 +JRK 0,293136106 +SLC11A1 0,293139917 +TM4SF1 0,293242649 +EDA 0,293286441 +CDK10 0,293299298 +HLA-E 0,293305618 +LOC642846 0,293349826 +GFPT2 0,293396887 +SENP3 0,293408144 +RPS3AP44 0,293415546 +C16orf88 0,293431615 +FAM60A 0,293472328 +RPL36A 0,293501288 +SERPINA5 0,293547044 +CNOT8 0,293568161 +KDM4C 0,293620372 +POU2F2 0,293815578 +C14orf139 0,293870806 +ZNF217 0,293937173 +NM_025042 0,294034268 +NNMT 0,294200775 +VEZT 0,294224684 +KIAA0754 0,294307773 +RBM28 0,294637248 +ITPR2 0,294711729 +PPPDE1 0,294796015 +KLHL28 0,294874305 +MGP 0,294956866 +LOC729602 0,295016892 +SRSF5 0,295036903 +ROCK1 0,295267164 +SS18L2 0,295271871 +LMNA 0,29532356 +ESRRA 0,295387708 +SNHG3-RCC1 0,295411716 +TAL1 0,295434654 +SQRDL 0,295470062 +TARDBP 0,295665655 +LMAN2L 0,295705138 +RIN3 0,295771443 +PSPH 0,29602696 +DGKD 0,296027908 +WHSC1 0,296067068 +SPRY4 0,296068122 +ADARB2 0,296162399 +ELF3 0,296200778 +TLE1 0,296292637 +ACAN 0,296375799 +AK022038 0,296556116 +IL1RL1 0,296721787 +OR2A9P 0,296898432 +NCRNA00260 0,296954725 +CAD 0,296976627 +PNRC2 0,297129071 +IQCK 0,297134521 +ACOX2 0,297377087 +APOC4 0,297497329 +DGKA 0,297541846 +ZBTB1 0,297547513 +PUS1 0,297622568 +C7orf64 0,297653213 +FBLN1 0,297723957 +SBF1 0,297752819 +TMF1 0,298582891 +IL1R1 0,298701666 +LILRB3 0,298823808 +FLAD1 0,298825369 +CD163 0,299040686 +TCL6 0,299056301 +FADS3 0,299096634 +LBR 0,299180453 +AL162044 0,299184427 +ZNF337 0,299271736 +AHNAK 0,299352615 +YY1 0,299417937 +HIPK2 0,299439852 +NAT15 0,299519834 +ANKZF1 0,299817611 +NECAP2 0,299838267 +MAP3K7 0,299838407 +SAMD4A 0,299863792 +WDR8 0,300094232 +ZNF24 0,300179611 +NR3C1 0,300200063 +FGF1 0,300357727 +NPC1 0,300564708 +LMO4 0,300573598 +TTLL5 0,300853453 +AL050053 0,300945526 +RSU1 0,300958049 +C15orf39 0,301123219 +SLC14A1 0,301147038 +ELAVL1 0,301190126 +SLC17A4 0,301215925 +FANCC 0,301274346 +LRCH4 0,301338927 +EGFL7 0,301340052 +C9orf3 0,301357727 +SRGN 0,301411135 +PLCL1 0,301576339 +MAN1A1 0,301613058 +S100A8 0,301917937 +W86781 0,301984854 +HIP1 0,302012828 +OR7A5 0,302027387 +PPP1CC 0,3020408 +CGGBP1 0,302058231 +CYP3A4 0,302333153 +GALNS 0,302376776 +NR0B1 0,302394827 +SMNDC1 0,302468654 +MGST2 0,302482901 +RPL12 0,302658969 +DMPK 0,302955014 +TNRC6B 0,30299615 +PPM1D 0,303104009 +EED 0,303134999 +STAG3L1 0,3031801 +TMCC1 0,303195736 +RPL13 0,303245467 +RBPMS 0,30326423 +ARHGAP10 0,303298204 +PLCB3 0,303300054 +XPO1 0,303410309 +MYO1F 0,30341788 +SRPK1 0,303531642 +ZCWPW1 0,303562617 +MTHFD2L 0,303678034 +FAM111A 0,303798707 +TTC38 0,304186409 +COL7A1 0,304295553 +C4orf19 0,304312458 +NGLY1 0,304332742 +HTATIP2 0,304339936 +IFNAR2 0,304414877 +CXorf1 0,304737703 +UNC5B 0,304789798 +YAP1 0,30479215 +PHC2 0,30485466 +FBL 0,304914384 +CDH2 0,304939032 +FXYD2 0,304942957 +ANKRD36 0,305000603 +KRT8 0,305028726 +DSCAM 0,30505625 +SMO 0,305151387 +FCGRT 0,305420183 +PAIP2B 0,305483478 +PABPC1 0,305528523 +PIGV 0,305604211 +BACH2 0,305697602 +PLGLA 0,305722503 +MORC3 0,305845022 +DIDO1 0,305996983 +PRPF38B 0,306041882 +TRMT1 0,306054262 +NFATC1 0,306233076 +AK021495 0,306242002 +GPR1 0,306335484 +STARD13 0,306369109 +CELSR2 0,306371185 +ZNF193 0,306396574 +ABHD6 0,306458055 +PLCXD1 0,306486283 +RPAP1 0,306695411 +AL050122 0,306737964 +DHRS3 0,306750918 +C1QA 0,306800137 +AF009267 0,30681596 +SETD2 0,307047565 +STX6 0,307184977 +TMEM204 0,307304516 +SMYD2 0,307490131 +BF942161 0,307560212 +SLC44A1 0,307685609 +ELF2 0,307698089 +AATF 0,307770923 +AV761453 0,307800442 +ACTN1 0,307927265 +AI523613 0,307943372 +SOLH 0,307971092 +ZNF410 0,308222237 +GOLGA4 0,308250269 +FLJ21369 0,308352331 +FCGR2A 0,308469725 +BRD7 0,308638563 +TLR2 0,308769609 +FTHL5 0,308790654 +SPOCK1 0,308861441 +LSM14A 0,308907157 +USF2 0,309161806 +TENC1 0,309220224 +EMP2 0,309252571 +BSDC1 0,309299474 +ZNF701 0,309462113 +PLIN3 0,309516744 +SORBS1 0,309562012 +FTL 0,309588981 +AGFG2 0,309634949 +UBR5 0,309647344 +MMP14 0,30965745 +SFRS8 0,309923113 +ITPR3 0,309975876 +PLK3 0,310097184 +NUP188 0,310124261 +CROCC 0,310245563 +CHSY1 0,310328559 +CTCF 0,310675097 +EDC4 0,310685915 +NFE2L2 0,31069885 +LILRA6 0,311008878 +SATB2 0,311055754 +GTPBP6 0,311254994 +TSPAN14 0,311316513 +C10orf18 0,31133762 +SECISBP2 0,311419174 +DHX34 0,311443077 +LSS 0,311450185 +CHI3L1 0,311532669 +PDGFC 0,311715929 +BMP7 0,311741682 +MBNL1 0,311755686 +DNA2 0,311841432 +COMT 0,312081286 +LOC100133005 0,312165679 +PTOV1 0,312192713 +LCAT 0,312407744 +LRRFIP2 0,312480817 +UCN 0,312589312 +AK024606 0,312655002 +MICAL3 0,312700621 +ROM1 0,31291043 +MED12 0,312925796 +CPNE1 0,313173908 +GBP2 0,313262095 +PELI2 0,313279559 +MLL 0,313398121 +HIF3A 0,313438743 +ST18 0,313449639 +AF131777 0,313643716 +CATSPER2P1 0,313785721 +ZNF302 0,314066212 +APBB2 0,314110219 +KIAA0907 0,31421022 +ZNF592 0,314679884 +HNRNPA1 0,314773035 +TSC2 0,314882123 +SFRS15 0,314884343 +ZNF835 0,314920694 +WDR6 0,314979423 +LOC729143 0,315037798 +PPARD 0,315048839 +U2AF2 0,315118843 +MGAT1 0,315269456 +ZNF44 0,315270856 +RPL36 0,315475789 +GRAMD3 0,315513449 +PTPN2 0,315554784 +AL080072 0,315635626 +C19orf2 0,315918303 +DNAH3 0,315930745 +ZNF146 0,316341954 +SMEK1 0,316538461 +MLXIP 0,31681421 +NMT2 0,316848231 +G3BP1 0,316864559 +DDX3Y 0,316997159 +STEAP1 0,317082981 +BC002629 0,317231764 +KDM2A 0,317406731 +TMEM39A 0,317430306 +C15orf29 0,317437851 +MACF1 0,317513626 +LOC391020 0,317572673 +SETD1A 0,317586539 +KTN1 0,317889697 +RUNX3 0,31809511 +NINJ1 0,318107478 +ARMC7 0,318150459 +BMP1 0,318194029 +DKFZP586I1420 0,318199121 +JARID2 0,318226296 +AW972351 0,318303541 +PAPSS2 0,31841091 +ELTD1 0,31845583 +ETS2 0,318667898 +CREB3L2 0,318705762 +DFNB31 0,31892768 +SERHL2 0,318966243 +C10orf26 0,319058163 +NM_030892 0,319421731 +WRAP53 0,319795295 +UBQLN4 0,319828198 +RALGDS 0,319938162 +PRKCH 0,320101043 +AU146983 0,320105843 +SLC5A3 0,32021553 +DUSP1 0,320239212 +NKX2-2 0,320312108 +C1orf183 0,320387827 +PCM1 0,320482282 +THRA 0,320531901 +NM_025028 0,320726138 +SIVA1 0,320736787 +TTR 0,320757249 +IKBKB 0,320778441 +ARID1A 0,321020715 +HDAC4 0,321059842 +ZFP36L2 0,321167918 +TMEM212 0,321179342 +AA443771 0,321214505 +AGAP5 0,32125931 +PIGA 0,3216713 +SFRS12 0,321704401 +LDLRAP1 0,321832456 +CCDC21 0,321857948 +SSFA2 0,321990716 +RAMP1 0,322050077 +FLJ10357 0,322160744 +LAD1 0,322322766 +RACGAP1 0,322340831 +NPIPL2 0,322616655 +CEP350 0,322648588 +CRLF1 0,322735059 +IGSF9B 0,322744338 +PLXND1 0,322801951 +MCL1 0,322913781 +ALMS1 0,32297709 +ZNF768 0,323059066 +RSL1D1 0,323228527 +C4orf34 0,323582139 +PNPLA6 0,323738553 +MAST4 0,323801655 +NME3 0,323835175 +SNHG3 0,32391938 +S100A12 0,324014586 +PPP4R1 0,32409634 +PLD1 0,324165096 +POLG 0,324186823 +NKTR 0,324203565 +ST3GAL4 0,324231325 +TMEM63A 0,324243134 +ST20 0,32438459 +RNF114 0,324406844 +HYI 0,324468621 +DUSP6 0,324699964 +NR1H2 0,324884332 +DVL2 0,324900869 +SRSF11 0,324979841 +CLK2 0,325170283 +MKLN1 0,325287178 +SCRIB 0,325320413 +KIAA0467 0,325541973 +DMWD 0,325745064 +KLHL23 0,32579572 +RPS6 0,325948088 +ZBTB17 0,326014408 +RAI14 0,326038467 +UBE2G2 0,326143089 +ZNF562 0,326186073 +EZR 0,326282578 +TRPS1 0,326283144 +HFE 0,326390644 +MED23 0,32658232 +DDX11 0,326766632 +SHMT2 0,326784725 +LRP5 0,326954416 +PTH1R 0,327100265 +LOC731602 0,327131294 +AA401963 0,327241371 +CDK5RAP2 0,327276136 +SERP1 0,327279991 +SLC1A5 0,327303416 +BGN 0,327370767 +HSD17B1 0,327475971 +AL390143 0,327497051 +DIAPH2 0,327617697 +PITPNC1 0,327719899 +SPRY2 0,327767132 +FZD7 0,327974293 +MAP4K4 0,328171238 +TNS1 0,328369107 +ZNF783 0,328517049 +M78162 0,328518574 +ADAMTS1 0,32853944 +FKBP5 0,328911405 +AGAP8 0,329115979 +PLEKHF1 0,329179433 +DNAJB1 0,329339376 +RBMS2 0,329438459 +HNRNPH1 0,329454824 +ULK2 0,329496298 +PAPD7 0,329501864 +SURF1 0,329547559 +W61005 0,329673439 +ZNF862 0,330131081 +GNA15 0,330266409 +CHD9 0,330273108 +DLC1 0,330294104 +TMEM2 0,330321664 +AK024879 0,330353812 +N4BP1 0,330435804 +SERF2 0,330633507 +SNRPA 0,330957742 +IRF8 0,33098543 +ABCA2 0,331251046 +NPFF 0,331328402 +CP 0,331565597 +AU144887 0,331713137 +AW851559 0,33185735 +TCF4 0,332062967 +ZNF354A 0,332076549 +TMEM92 0,332352956 +NFATC3 0,332386137 +SSRP1 0,332529738 +TCF7L2 0,332651908 +PIM1 0,332716071 +PIP4K2A 0,332914219 +EIF4EBP1 0,332959146 +LOC100132863 0,333054912 +MMRN2 0,333075923 +AU147295 0,333342973 +VIM 0,333356286 +C2orf67 0,333469715 +DNMT1 0,333550022 +CEP110 0,333679402 +BAZ2B 0,33371151 +KDELR2 0,333939841 +L3MBTL 0,334448273 +CDK19 0,334505985 +CYorf15B 0,334832089 +DDX17 0,334839203 +FKBP4 0,335166906 +STOM 0,335173644 +U82303 0,335241438 +LOC202181 0,335841121 +ATM 0,335893127 +STK3 0,335957389 +MID1 0,336166241 +IGFBP5 0,336454348 +PARP4 0,336459483 +EXOC7 0,336479503 +FANCG 0,336652927 +PHF2 0,336678654 +FBRS 0,33674511 +ANP32B 0,336836072 +NCK2 0,336876937 +CASP6 0,336920233 +ZBTB3 0,337122586 +DHFR 0,337448147 +APOLD1 0,337464001 +STAG1 0,337490482 +NM_024305 0,337551103 +SIGLEC8 0,337608204 +ERLIN1 0,337809212 +POLDIP3 0,337889824 +SPTLC2 0,33799094 +C7orf26 0,338204972 +UBE2D4 0,338265561 +MAP2K7 0,3384787 +MECOM 0,338508564 +DOCK1 0,339029429 +HS1BP3 0,339148762 +PRKY 0,339216015 +GOLGA1 0,33927478 +XPC 0,339433169 +PHF3 0,33953002 +HIC2 0,339768003 +C9orf7 0,340519877 +CTDSPL 0,340591645 +ZNF83 0,34077157 +PHGDH 0,340889735 +TMEM165 0,340978736 +CLN3 0,341078466 +AU147983 0,34113627 +PATZ1 0,341151411 +DIP2C 0,341390806 +RECK 0,341533646 +EWSR1 0,342003886 +SMAD7 0,342182186 +MTRF1L 0,34225773 +TJAP1 0,342452426 +PRKD2 0,342725824 +SPOP 0,343019265 +HLA-J 0,343028528 +PLXNB2 0,343103735 +FBXL14 0,343454364 +LAMA2 0,343637649 +RNF220 0,343845541 +CLK3 0,344164444 +STARD3 0,344187457 +OGT 0,345118989 +IFITM3 0,345141829 +HMOX1 0,345196784 +EIF2C2 0,34557825 +CCND3 0,345663426 +TGFBR3 0,345676022 +POLR2J3 0,345712548 +BCAR3 0,345713549 +C14orf147 0,34610842 +CLDN15 0,34616346 +TOP1 0,346179876 +RASL12 0,346286134 +MED13L 0,346369067 +SOS2 0,346799305 +SERPING1 0,347144597 +IER5 0,347279068 +TLE2 0,347426427 +LLGL2 0,347448236 +TMCC2 0,347500013 +PHF20 0,347602909 +SIRT4 0,347862165 +OSGIN1 0,348060574 +H2BFS 0,348076316 +NM_017756 0,348230007 +NCRNA00115 0,348422218 +MT1E 0,348733923 +NACC2 0,3488369 +NFIB 0,348943619 +AKR1C3 0,349206923 +ARPC1B 0,349407208 +NIPBL 0,349628117 +RPL11 0,349803207 +MSH6 0,350014407 +PTDSS2 0,350073646 +AL050145 0,350120404 +FAM107A 0,350271118 +CHN2 0,350358174 +DAPK2 0,350378033 +DLG5 0,350436992 +OPHN1 0,350596034 +C20orf11 0,351010126 +SLC35D1 0,35135795 +SELL 0,35142274 +FAM193B 0,351790995 +NM_024880 0,352020901 +RASGRP2 0,352114346 +CAPN3 0,352194849 +THOC1 0,352289646 +TAOK3 0,352396226 +FBXO42 0,352613215 +LARP6 0,352692849 +KLKB1 0,352702835 +METTL7A 0,352961228 +STIP1 0,352968743 +WIPF2 0,353085817 +FOXD1 0,353404764 +HSPB2 0,35378232 +ENGASE 0,353978221 +LAT2 0,354239264 +HIST1H2AH 0,354250391 +GSDMD 0,354483715 +TRA2A 0,354674037 +C19orf29 0,354762053 +BRPF1 0,355002213 +NUMA1 0,355146564 +SNW1 0,355320637 +SMARCC1 0,355374541 +ZNF175 0,35555253 +BATF3 0,355680727 +HIST1H2BC 0,35575565 +ERN2 0,356098991 +ZFR 0,356185362 +AW301806 0,356253591 +SMTN 0,356289422 +RPS6KA2 0,356774064 +MIIP 0,35685635 +ARGLU1 0,356919378 +CTNNAL1 0,357152141 +PCDH9 0,357228835 +LAS1L 0,357263917 +DOK1 0,358029668 +AFTPH 0,35852635 +ZNF143 0,358674337 +C11orf71 0,35888557 +MICALL2 0,359221642 +KDM6A 0,359260932 +CFH 0,359284568 +CEBPB 0,359516672 +MTUS1 0,359547348 +AW973791 0,359548173 +SERTAD2 0,359684853 +FGFR1 0,359721729 +KPTN 0,360479451 +NR2F2 0,361169645 +RGL2 0,361384531 +NM_014120 0,361482036 +TAF5 0,361611903 +ZC3HAV1 0,362177526 +BEST1 0,362248528 +TNFRSF1A 0,362724804 +CLIP2 0,363062238 +EHMT2 0,363078239 +IFITM1 0,363162265 +GCFC1 0,363190607 +PECAM1 0,363227012 +YES1 0,363556218 +ZFP36L1 0,363744573 +SBNO2 0,364095165 +RMND5A 0,364201024 +IL10RB 0,364481295 +CBS 0,364486163 +TBC1D2B 0,364503601 +C10orf10 0,36458821 +AU144530 0,365137826 +ZNF500 0,365202134 +ATP6V0E1 0,36527949 +SEPT8 0,365711052 +VCAN 0,365762437 +RPL36AP51 0,366073863 +RPL31 0,36613283 +TAOK1 0,36613666 +GCN1L1 0,366181489 +CALCOCO1 0,366300689 +GNA11 0,366387362 +SH2B2 0,366425408 +RREB1 0,367259867 +SLC35E1 0,3672965 +GPRC5B 0,367311931 +TCF7 0,367371063 +PDIA4 0,367810651 +ZNF34 0,367845233 +MBD3 0,36793004 +CXCR4 0,368041224 +C9orf114 0,368120984 +IFITM2 0,368313531 +ZNF665 0,368328536 +ZCCHC24 0,368368275 +LOC100133944 0,369022431 +CSDA 0,369150342 +AU148255 0,369666508 +CIZ1 0,369704457 +CRTC3 0,369792369 +CTNNA1 0,369962411 +RARRES2 0,37011032 +NM_025033 0,370246707 +VSIG4 0,370274949 +FAM48A 0,370421427 +ZDHHC11 0,370675656 +NPAS2 0,370715345 +ADH1B 0,370935809 +ACSL1 0,371025369 +C1orf63 0,371083889 +TYMP 0,371266716 +LEPREL1 0,371463494 +LAMB2 0,371472469 +MAFB 0,371542293 +AW971248 0,371589606 +BC003629 0,371603781 +FAM63A 0,371786321 +ABCA1 0,371992682 +IGF2R 0,37211512 +SOX13 0,372131188 +WAPAL 0,372391179 +ZFC3H1 0,372437982 +ZNF710 0,372493324 +HSPA6 0,37258644 +CCDC101 0,372823539 +BAZ1A 0,372824952 +AXL 0,372842922 +NPIPL1 0,372916072 +HDGF 0,372923023 +KHDRBS3 0,373093219 +MT1X 0,373144553 +MTMR15 0,373164421 +AF257099 0,373262757 +AEBP1 0,37342966 +KLHL25 0,373672957 +GJB4 0,37372121 +LUC7L3 0,374023648 +U79248 0,374142769 +LOC653562 0,374188384 +RBM4 0,374375075 +ABCC10 0,374890625 +CXorf21 0,374896996 +DAXX 0,374917403 +C1R 0,375063944 +TPST2 0,375279072 +KLHL24 0,375307199 +C7orf68 0,375539219 +ZCCHC8 0,375600764 +CASP4 0,375605037 +ETV1 0,37597402 +BIN1 0,376340315 +RGS19 0,376617752 +PKNOX1 0,377091746 +CTTN 0,377173864 +TRIP10 0,377452782 +ANGEL1 0,377498562 +PLIN2 0,377879768 +NM_025007 0,377942771 +PTMA 0,378229214 +S100A11 0,378255627 +AXIN1 0,378580893 +NPRL3 0,378633074 +PNN 0,378695864 +AV727934 0,378843386 +ANGPT2 0,37912784 +AK023918 0,379250766 +CNPY3 0,37927474 +AF130051 0,37947818 +TLE4 0,379880985 +PAPOLA 0,379974199 +ITGB5 0,380683545 +FAM38B 0,380693638 +PABPN1 0,380909515 +SLC6A8 0,38116858 +RYBP 0,38121367 +NASP 0,381229843 +FGR 0,381246748 +PER1 0,381695992 +CDR2L 0,381867955 +LRRFIP1 0,382075479 +HMHA1 0,382282948 +KIAA0485 0,382313718 +GUSB 0,38235255 +RPS17P5 0,38240934 +FXYD5 0,382563723 +RBL2 0,382697586 +RANBP10 0,382980904 +NEDD9 0,383084673 +MSL2 0,383144236 +FAM50A 0,383317183 +AL080232 0,383323554 +SPG21 0,383712061 +TPD52L1 0,384098652 +H2AFX 0,384141378 +SWAP70 0,384225003 +IVNS1ABP 0,384369268 +KDELC1 0,384542393 +MYL12A 0,384757468 +FOXO3 0,384856157 +MED13 0,385128516 +AL049252 0,38560217 +AF007147 0,385820993 +PAX6 0,385884587 +DNASE2 0,38591545 +SLC12A9 0,386200858 +SIRT1 0,38637719 +ARID5B 0,386492868 +MT2A 0,38656824 +SLC38A2 0,386710042 +GNG5 0,386756333 +SRRM2 0,386841072 +SERPINB6 0,386985458 +CC2D1A 0,387023088 +LRRC37A2 0,387067777 +CSF1 0,387071999 +RPL29P11 0,38708859 +SFRS14 0,387094074 +MYO9B 0,387103012 +AW972855 0,387241981 +TRIP4 0,387728627 +ZBTB40 0,387827711 +STARD8 0,387863703 +WBSCR16 0,387992811 +NXF1 0,388021286 +CTDSP1 0,38803541 +RSAD1 0,388042285 +SUV420H1 0,38833134 +CDKN1C 0,388508896 +NM_016415 0,388588403 +E2F4 0,388673603 +KANK2 0,388702219 +ZC3H7B 0,388980025 +ANGPTL4 0,389035415 +CRY1 0,389801967 +KIAA0556 0,389845114 +TBC1D16 0,390016803 +TCOF1 0,390109025 +ZFYVE26 0,390278079 +IFRD1 0,39034324 +EIF4B 0,390385914 +SMC1A 0,390525141 +SCIN 0,3907272 +MARS 0,391061966 +PTRF 0,391089965 +POLR2J 0,391514571 +APAF1 0,391530483 +ITPK1 0,3915415 +PNRC1 0,392133859 +CLIC2 0,392140808 +KIAA0913 0,392243895 +PRKAR2A 0,392619325 +PRKX 0,392750502 +SYDE1 0,392957216 +ACSL5 0,393140899 +LRP10 0,393162277 +LPP 0,393214983 +SNTB2 0,393383504 +NADK 0,393882671 +PCBP2 0,394206896 +N51370 0,394562467 +CLIC1 0,394663761 +CTBP2 0,394785714 +PHB 0,394929787 +BCL2 0,395102709 +TAF4 0,395492947 +LOC652607 0,395562084 +YBX1 0,396079328 +PRPF3 0,396609142 +SLC38A10 0,396741732 +ERBB2IP 0,396808535 +CFLAR 0,396840203 +TNFRSF10B 0,397091951 +PHC1B 0,397196351 +ARL17A 0,397406114 +ZBTB20 0,397424403 +REPIN1 0,397830532 +BE466926 0,397930108 +MT1P2 0,398055653 +ZNF778 0,398225613 +DICER1 0,398300689 +NM_018603 0,398329284 +RAF1 0,398631868 +MXD4 0,398685167 +FBXL7 0,398770393 +CALD1 0,399121196 +GSDMB 0,399246982 +ZCCHC2 0,399293751 +PODXL 0,399691684 +ACACB 0,400136922 +VEZF1 0,400413083 +PLEKHM1 0,401187317 +CSPG4 0,401646086 +ID3 0,40170175 +RBM41 0,401719975 +KDM6B 0,401885964 +PHF15 0,402522419 +LAMP2 0,402538077 +CDC14B 0,402583482 +HNRNPL 0,403044314 +SLC4A2 0,403448509 +DDX23 0,403953946 +TUBD1 0,40407115 +SLC16A3 0,404204458 +CAPN2 0,405022548 +CBFA2T2 0,40560438 +TCEB2 0,405769952 +HNRNPF 0,406126644 +MORC2 0,406182732 +FOXO1 0,406430281 +AI962978 0,406538883 +HP1BP3 0,406567553 +CBFB 0,406789498 +RBM14 0,406886421 +SFI1 0,407058786 +ZHX3 0,407089165 +KDM3A 0,407233406 +SIRT2 0,407341821 +ANKS1A 0,407373917 +TCF3 0,407442968 +NOTCH2NL 0,407672378 +EEF1D 0,407830724 +SOX12 0,408065349 +SLCO1A2 0,40820492 +HNRNPA3 0,408299868 +GTF2H3 0,408624789 +FZD9 0,408729069 +SAFB2 0,408755308 +APBA3 0,408834306 +ASCL1 0,409161488 +CG012 0,409559201 +WDR59 0,409606436 +LAMA5 0,409632505 +ZNF276 0,409730125 +ZNF395 0,410080702 +TIMM44 0,410223052 +BGLAP 0,410749324 +ZHX2 0,411039562 +CARS2 0,411302016 +SLCO3A1 0,411338796 +LOC442497 0,411765627 +FRYL 0,411842495 +CYP2J2 0,412070197 +ABL1 0,412522321 +INF2 0,412975218 +SGK1 0,413352645 +SFTPB 0,413789208 +TIGD1L 0,41383023 +RBCK1 0,414019825 +TRAPPC10 0,414285862 +DUSP7 0,414641136 +WSCD1 0,415016303 +DCP1A 0,415308358 +LPAR1 0,415365439 +RBBP6 0,415730871 +DONSON 0,416255506 +C16orf5 0,416258918 +NCOA1 0,416350707 +CFHR1 0,416440287 +AA126763 0,416566153 +LRRC32 0,416765832 +CP110 0,41732481 +LTBP3 0,417338221 +TDRD3 0,417356196 +HMG20B 0,417456909 +CDC42EP2 0,417645635 +TAF1C 0,417736819 +NM_013344 0,41778911 +VGLL4 0,417820331 +PHKA2 0,417904785 +KDSR 0,418009802 +RELA 0,418064238 +TBL1X 0,41814877 +SIAH2 0,418727849 +MYO1E 0,418747589 +HIST1H2BD 0,419127582 +AI744451 0,419208355 +PTMAP7 0,419537834 +ARID5A 0,419593497 +CYP27A1 0,420064872 +RAB13 0,420441013 +CPSF7 0,420526378 +CPT1B 0,420770156 +LRDD 0,420794327 +PILRB 0,421599366 +STAB1 0,421733406 +FCHO1 0,422126906 +ZNF32 0,422311821 +TBC1D3H 0,422328806 +C1orf66 0,42292679 +NM_025032 0,423323973 +AI732802 0,423584905 +PCID2 0,423787762 +POGK 0,423912669 +TMEM140 0,424587207 +TMC6 0,424604298 +AL080160 0,42490597 +AK021505 0,425024442 +SCD5 0,425610027 +RAD52 0,425956612 +AF116715 0,425960499 +DCI 0,425967692 +SFRS18 0,426091505 +HCG2P7 0,426136765 +ADORA2A 0,426366158 +NM_021651 0,426442506 +MID1IP1 0,426940092 +HNRNPC 0,427103695 +NM_025024 0,427155973 +AK024315 0,427460397 +AK021514 0,427966252 +SLC29A3 0,428138792 +NSUN5 0,428255135 +PHF10 0,428599049 +DAPP1 0,428626141 +TMEM109 0,428647746 +LOC91316 0,428742129 +ITGB4 0,42956266 +SLC30A1 0,429998682 +AW150065 0,430129937 +ZCCHC6 0,430267528 +ARHGEF2 0,430371137 +AK027193 0,43049002 +TRIM52 0,430535815 +MT1G 0,430767233 +NOTCH1 0,430849119 +ZRSR2 0,43114681 +RPS6KA1 0,43184981 +KANK1 0,432456197 +FURIN 0,432618855 +APOBEC3C 0,432749845 +ANKRD40 0,432772877 +TRIOBP 0,432900403 +ZNF384 0,433116555 +CDKN1A 0,43319672 +BTG1 0,433570541 +EPHX1 0,433658916 +CNOT6 0,434207544 +HSPA1L 0,434322364 +PKD1 0,434547199 +WAS 0,434717417 +RPL23AP32 0,434993767 +P4HA1 0,434997425 +MAX 0,435160002 +UIMC1 0,435278167 +NM_025120 0,435322168 +NCOA6 0,435700178 +TPD52L2 0,435768747 +BCL6 0,435938226 +AK024108 0,436355329 +C7orf23 0,436800978 +CDC42BPA 0,437074951 +CD59 0,437137855 +POLR1B 0,437227618 +TLR5 0,437498143 +HDAC1 0,437993569 +ARHGEF7 0,438071237 +AA045174 0,438161955 +TBC1D17 0,438488128 +PRELP 0,438518539 +GTF2H2B 0,438525643 +HIST1H2BK 0,43866778 +AU147851 0,438979485 +RBM39 0,439661925 +IQGAP1 0,439786742 +RPL18AP3 0,440613252 +LTBR 0,440721546 +RPL35A 0,441136859 +ARAP2 0,441441928 +ARAF 0,441560027 +MT1H 0,441587824 +LOC441258 0,442117007 +ZCCHC14 0,442132801 +IRF7 0,442147625 +NOL12 0,442203671 +PTPLB 0,442541309 +AI683552 0,442752948 +MYST1 0,442881562 +MXI1 0,443040642 +AW974910 0,443299524 +C1orf144 0,443500279 +KRCC1 0,444417306 +PIAS4 0,444438643 +SRSF1 0,444637015 +LRP2 0,444740953 +ZDHHC18 0,445392541 +SPN 0,445443935 +ST13 0,446667878 +PHF17 0,446746739 +NACA2 0,446876872 +SASH1 0,447285208 +CD22 0,44772036 +CSNK1E 0,447902552 +COL5A3 0,447933631 +MAT2A 0,448695587 +EFHD1 0,448820126 +MAP3K3 0,448963961 +BIN3 0,449317201 +LUC7L 0,449469644 +KIF1C 0,449622117 +RNF144A 0,450034368 +TULP3 0,450626451 +CDKN2C 0,450879897 +HSD17B7 0,451226227 +ACIN1 0,451331774 +PABPC3 0,451363083 +PHF21A 0,45139036 +HNRNPH3 0,451480034 +HIST2H2BE 0,452219911 +RRP1B 0,452597128 +SOX2 0,453132172 +ZNF444 0,453296716 +FAM13A 0,453547738 +JUP 0,453753674 +PODNL1 0,453854292 +MAML1 0,453885 +SNRNP70 0,45408945 +SDCCAG3 0,45464357 +PLGLB1 0,454722494 +CDH19 0,454754165 +HSPA1B 0,455063205 +ARHGEF10 0,455229121 +NFIL3 0,455469821 +NFKBIA 0,455577982 +XRCC2 0,455670024 +ACTN4 0,455764555 +PDS5A 0,456071133 +POU2F1 0,456120351 +VPS54 0,456318614 +BANF1 0,456451252 +PGCP 0,456765652 +RPL28 0,456867479 +ICAM2 0,457066169 +SNAP23 0,457069788 +SART1 0,457941993 +AK023891 0,458253977 +BANP 0,458588544 +MAP3K11 0,458968207 +EPOR 0,459463669 +FKSG49 0,459538011 +MT1F 0,459638951 +NM_014128 0,460468204 +AP1G2 0,460676306 +GAS2L1 0,461632768 +PHIP 0,462053958 +NOL8 0,462387404 +NM_017932 0,462395281 +RNF130 0,462894529 +ZMYND8 0,463309493 +AK024525 0,463401166 +TRIM28 0,463454342 +BCAT2 0,463509769 +TYRO3 0,463574548 +PHLPP1 0,463738295 +BST2 0,465024297 +PDGFRB 0,465034704 +AL049987 0,465336929 +AKAP8L 0,466278804 +TGM2 0,467555999 +CREBBP 0,467899354 +KIAA0894 0,468325808 +DDX39 0,468959477 +NCAPD2 0,468959537 +ALPK1 0,469621875 +TGIF1 0,469902489 +PPP1R14B 0,470121069 +PNMT 0,470291567 +NAA16 0,470467422 +ZNF611 0,470526774 +ZRSR1 0,470857426 +NPIP 0,472818474 +RBM38 0,473036567 +USP34 0,473278809 +TGFB3 0,474067001 +ITSN2 0,475328182 +CEBPD 0,475754278 +MCM3AP 0,476296498 +HAPLN2 0,476718109 +POGZ 0,477224004 +NR2F1 0,477556735 +GAS1 0,478628972 +SLTM 0,478903701 +ECE1 0,479007813 +CALCOCO2 0,47910558 +RXRA 0,479821295 +MEIS2 0,480178943 +CLEC2B 0,481843785 +AL049260 0,482481089 +CHST3 0,48259726 +COL16A1 0,483094975 +SLC25A16 0,483255606 +LHPP 0,48421483 +AF010144 0,484619234 +GTSE1 0,484629217 +MUM1 0,484956644 +TNXB 0,485246904 +PRINS 0,486032909 +ANKRD49 0,486282532 +PTPRK 0,486899575 +PPAP2C 0,487395433 +C22orf9 0,488987561 +KHNYN 0,489026627 +RAPGEF3 0,489474077 +AF078844 0,489716822 +MAN2A1 0,489875474 +IFT20 0,490824284 +USP21 0,490859618 +NOP2 0,491526918 +LOC440248 0,491905455 +LOC647070 0,493492979 +MAFF 0,494072026 +BG251521 0,495196452 +C6orf145 0,496322836 +MLL4 0,496324893 +ATF4 0,49676781 +RELN 0,497310216 +PELI1 0,497491599 +P2RX7 0,497499324 +CNOT2 0,498172475 +FAM38A 0,498599859 +DCLRE1C 0,498693515 +INSR 0,502304787 +MAPKAPK2 0,502573806 +NDE1 0,50267356 +MT1M 0,502716901 +CDK5RAP3 0,504041432 +SULT1A4 0,504805398 +NSUN5P2 0,505093708 +ANKRD10 0,505841449 +LOC339047 0,506042447 +LRRC1 0,506594446 +CUX1 0,507257715 +SRRT 0,508240438 +MAF 0,508625791 +EBLN2 0,509549245 +NM_017618 0,510705903 +RBM4B 0,51138423 +FBXW12 0,511744983 +ATP8B1 0,511969804 +NM_024978 0,512045897 +KCNMB4 0,512142959 +CLMN 0,512461537 +LOC100132540 0,512589899 +SERPINH1 0,513136463 +RHBDF2 0,513703735 +PCF11 0,514081494 +HAUS2 0,514694211 +TECPR2 0,514970535 +TNIP2 0,515014912 +AUP1 0,516155581 +KIAA0101 0,516801916 +N35922 0,51703624 +STK38 0,517483454 +AZGP1P1 0,518047589 +C13orf15 0,518310047 +PRR11 0,518691616 +PDCD6 0,51972326 +AFF1 0,520716014 +AF222691 0,521107674 +BE045142 0,521502008 +PACS2 0,521749261 +PSRC1 0,522634606 +ZNF358 0,523463012 +MAPKBP1 0,523696079 +S100A4 0,524041412 +MYO1C 0,524902669 +IRF3 0,52538788 +TOB2 0,526119659 +KLHL21 0,527145117 +PGF 0,527713686 +LOC399491 0,528407104 +ARAP1 0,528556373 +AZGP1 0,528659072 +SIRT7 0,528927974 +C16orf53 0,529668261 +KLHL2 0,533153888 +AK022213 0,533802801 +ANKRD28 0,534099367 +TF 0,536170201 +MAVS 0,53636005 +MSX1 0,536723495 +C12orf35 0,537890473 +AA554945 0,538449904 +SUN2 0,539191173 +RBM6 0,54218394 +AL080112 0,542349721 +SORT1 0,542569398 +AL049285 0,542660805 +FOXO4 0,542834527 +ABCA8 0,543725594 +RING1 0,54468938 +KCNE4 0,546337688 +TAZ 0,546506594 +DIP2A 0,546907877 +CLK4 0,548788669 +ZNF277 0,549312201 +MUS81 0,551193399 +DBT 0,556696292 +EMP3 0,557013195 +DDIT4 0,557077384 +RUFY1 0,557170712 +MYST3 0,559285285 +PRPF4B 0,559881298 +LOC100132247 0,562956585 +HSPB1 0,56508456 +CHD7 0,566776564 +CHORDC1 0,566831861 +COBL 0,569205746 +STAG2 0,569603186 +CTDSP2 0,570069613 +ZNF160 0,572703009 +PDE4C 0,574535337 +WWC3 0,575159977 +BMI1 0,576213767 +CRYAB 0,577245348 +AHCTF1 0,577515066 +ADIPOR2 0,5780263 +CASC3 0,57815663 +MUTYH 0,579456271 +AK023783 0,580340854 +HIGD1B 0,583663012 +PLOD1 0,587347495 +PRR14 0,587364521 +SH3BP4 0,58788373 +C19orf28 0,587956493 +NDRG1 0,588555643 +HIST1H1C 0,591446402 +TCF12 0,592176798 +MPST 0,593408757 +SEPP1 0,593935425 +DNAJB6 0,595685757 +SIRPA 0,596218961 +FLT1 0,597923318 +MYOT 0,598968138 +HIST1H2AC 0,600586387 +HBP1 0,600714263 +KAZ 0,601415288 +PTBP1 0,602313539 +NSUN5P1 0,603090503 +GUSBP3 0,604393039 +KCNJ2 0,616084197 +KAT2A 0,620256502 +MCM7 0,622618327 +FBXW4 0,627081137 +MKNK2 0,628440154 +IL17RB 0,631530593 +CLK1 0,632420317 +LRP4 0,632833859 +FAM53B 0,641895571 +JMJD6 0,64411039 +TYK2 0,644727629 +PLOD3 0,644893842 +CXXC1 0,650530485 +AK024136 0,659066605 +PAN2 0,66036619 +NPTX2 0,665210794 +SPEN 0,669461617 +SETD5 0,670191692 +STX10 0,674048462 +CDK2AP2 0,67411425 +PPM1B 0,68382966 +SLCO4A1 0,685048974 +GLT25D1 0,706365388 +ZC3H11A 0,716021559 +ZBTB16 0,720405109 +ZNF692 0,720940567 +NUPR1 0,724120307 +FLCN 0,747339708 +NFASC 0,755177517 diff --git a/console/testFiles/pd_full/PD_151217_2/layouts/ageing.txt b/console/testFiles/pd_full/PD_151217_2/layouts/ageing.txt index 952e851c76..d5c8ec23b4 100644 --- a/console/testFiles/pd_full/PD_151217_2/layouts/ageing.txt +++ b/console/testFiles/pd_full/PD_151217_2/layouts/ageing.txt @@ -1,416 +1,416 @@ -# VERSION=1.0 -# NAME=Ageing brain +# VERSION=1.0 +# NAME=Ageing brain # DESCRIPTION=Differential transcriptome expression from post mortem tissue. Source: Allen Brain Atlas datasets, see PMID 25447234. -name value -ELMO2 -0.547404913905166 -RGS1 0.664905640201586 -GSTT1 -0.630503181260422 -SDPR 0.576954531502211 -KCNJ2 -0.389733143810031 -DLG2 -0.622560222549952 -C2orf46 0.306481308387015 -YPEL1 -0.110679998012662 -AFF2 -0.580887248407995 -TCP11L2 -0.446138772716671 -TYROBP 0.0965004216809888 -PCK1 0.583148947380073 -C3 -0.229405245486493 -BLOC1S2 -0.501156113973434 -LPAR5 -0.252012578774993 -ACAD11 0.484415314534294 -CALB1 -0.585051808236823 -GNG2 -0.514333881323537 -GRIN3A -0.54737874801763 -BLNK -0.23678687239484 -SMARCD1 -0.480222958914743 -ARMC9 0.512102956486084 -CX3CR1 -0.300766155352383 -SLC31A2 -0.502055753854611 -AGPAT3 -0.413409719893933 -EFNB3 -0.382400551167611 -ELMOD2 0.402518685883201 -PRKCG -0.34345444223993 -LAPTM5 -0.136628457581106 -IQUB 0.562346209462303 -STAM -0.566262263187017 -OR11A1 0.178234692397988 -ZDHHC9 -0.520488129277965 -C11orf9 -0.511135500492906 -KLF4 0.640024343756592 -SYCP2L 0.555576793235834 -C20orf112 -0.63210679508749 -AP3M1 -0.436291767005889 -ALMS1P 0.310301539060874 -GREM1 -0.101042197816266 -HLCS -0.404869146774348 -CARNS1 -0.358503492948689 -TSHZ2 -0.370201532555949 -CDKN1A 0.37878581767329 -CNDP1 -0.387074241865627 -C1orf161 0.408555295769768 -DOK6 -0.552556377657443 -C12orf43 -0.345533858224805 -SIPA1L2 -0.469893969573457 -FLJ40712 0.248899115372987 -TREM2 0.326657235461902 -MS4A6A 0.333196279374371 -RASGRF1 0.18816869654076 -RNF26 -0.576816063125611 -C7orf68 0.551320218061987 -DPP7 0.601525547176648 -OMD 0.556147496355725 -SNAI2 -0.402803074931945 -COL21A1 0.475584827359055 -APBB1IP -0.510593783545533 -PRKCQ -0.625167167620313 -PDGFRA -0.593141766545025 -SLCO2B1 -0.20664851085323 -LPCAT3 -0.457401881600448 -CD37 -0.225548512842192 -IRF8 -0.513003936776053 -CSF1R -0.17710132121375 -CD74 0.0263995452022326 -CHI3L1 0.637898420604861 -SELPLG -0.165789940031603 -CDH8 -0.544872582360693 -CXCL12 -0.350721988871356 -TOPBP1 -0.516846284550731 -SLC16A10 0.372816060474775 -PCDHB9 -0.583344609658305 -HLA-DRA 0.249881965203208 -OLR1 0.105145169714195 -ADORA3 0.352457579745827 -ALOX5AP 0.094898490604102 -HLA-DOA 0.0912244782358314 -ZNF519 0.242878217518759 -FCER1G 0.122597294910367 -MT1H 0.274901514766897 -MFSD2A 0.12726693788776 -AIF1 -0.0853762046815476 -CTSH 0.324179727747488 -C3AR1 0.00893654957093225 -FCGR2A -0.0476956544487118 -CXCL16 0.0931434603948185 -EVI2B -0.236921572611684 -BACE1 -0.616602739604107 -OR1E1 0.491889127463635 -CLK1 0.423619868541565 -FLJ13197 0.340321509869536 -WBP2NL 0.590401706468574 -UGT8 -0.444926073295334 -HSD17B14 0.614959487312916 -GRIK3 -0.628539434045017 -MT1G 0.569589804148072 -BAIAP3 0.50915236570152 -TJAP1 -0.211899568999271 -PIP4K2C -0.546592244445733 -CAMK4 -0.62370886479691 -TMEM63A -0.349108640870675 -CCDC45 0.470491672406875 -ERLIN1 -0.590064605968872 -ATP6V1F 0.31735684237396 -EPHB2 -0.492251103302591 -ANKRD11 -0.576352445468476 -PCDHB2 -0.56247030572076 -ACSL1 -0.580402201513607 -LGR5 -0.49666928921999 -PDE3B 0.561081934872393 -C1orf21 -0.433409479731833 -LRRTM1 -0.430851468978506 -GPR12 -0.285126298493215 -VSTM2A -0.496505850586284 -ODZ1 -0.500803022233123 -CACNG2 -0.568038440978143 -SMPD3 -0.448297258958326 -SORBS2 -0.652515435812272 -DCAF7 -0.561122254419525 -GJD2 -0.500391756170096 -PEG10 -0.529984214958046 -A2M -0.0956498395825097 -THRB -0.278461084991876 -C11orf24 -0.519543924524242 -TFG -0.340307925442264 -MAMLD1 -0.389582104545406 -ASPHD2 -0.44086160208266 -ANKRD37 0.644400268061014 -NCKAP1L -0.38869429192758 -CAPN5 -0.568639095894228 -SERINC3 -0.473478678274642 -CEBPB 0.386715054596765 -PRDM10 -0.575525391963737 -HCN1 -0.384931312491389 -CAMTA1 -0.435666315274373 -KLHDC1 0.27598504319864 -DUSP1 0.576414053338242 -QRICH1 -0.533552393948272 -SH3KBP1 -0.391446975914019 -EBF1 -0.379385913897609 -PPP1R16B -0.356903880861572 -BTBD3 -0.327196312551472 -NRXN2 -0.509283550099326 -KAZ -0.541421535478964 -KIAA0317 -0.636085461640037 -NDST3 -0.426753877235142 -GMCL1 0.45632888308336 -P2RX5 -0.283914132520413 -IGFL3 0.297606727720448 -LOC286161 -0.366837279825892 -PLEKHM1 -0.408702703852517 -RIMS1 -0.372721943202267 -UBE2Q2P1 0.327173892822723 -TTYH2 -0.407525904378876 -DES 0.06209856553185 -DBNDD2 -0.30225683329951 -ENPP2 -0.409429156664166 -NTN4 0.494337823155339 -SUN2 -0.276353435973038 -ACTG2 -0.210220455726459 -CA2 -0.0242596436213912 -THBS1 -0.221580234422776 -LDLRAD3 -0.360622764104025 -SNX1 -0.0377961368749078 -ERBB3 -0.405973590470433 -TTN 0.391623015044573 -ATRN -0.52540142288716 -NPC1 -0.267674240960311 -GNS -0.181466206971045 -KLK6 -0.378431280290618 -FOS 0.360516377902882 -CD69 0.377148542537053 -LYVE1 0.138789282779698 -FTL 0.237591315022414 -JUNB 0.394473562572383 -GSTM5 0.217560993654354 -NR4A1 0.24427289755837 -PGAM2 0.551801840506397 -TMEM176A 0.537931366670412 -EGR1 -0.157019974633097 -GPR183 0.107180842069747 -CXCL11 0.395003724312407 -PLA2G12A -0.18246216314499 -HLA-DMB 0.229795197318716 -CPNE8 0.0508489313725271 -ZFP36 0.42538436064968 -AGPAT4 -0.467855141787709 -HLA-DPA1 0.408536378107808 -PIK3C2B -0.591780318571167 -CPNE6 -0.271576531727541 -PLD3 -0.200022062788495 -PVRL1 -0.555155906198138 -GGCT -0.279243242312552 -P2RY13 -0.360442360434042 -CNTN5 0.00258913839174191 -MCM7 0.195233154899312 -GPR120 -0.199692500084005 -GABRE 0.0682190440098052 -LRRC39 0.498683033772744 -TLR7 -0.164697853025215 -RFC3 -0.486755240432686 -CD33 0.00184280522373291 -CA8 0.363290764959567 -MAS1 -0.492009752548035 -FBLN5 -0.511286958021381 -TMTC1 -0.332133706392934 -C1orf51 0.45497717618641 -RPL35 -0.0899084146126614 -DKK2 -0.38611669080376 -USP53 0.412868805138869 -CD177 -0.217675402988493 -ELAVL1 -0.579547221944692 -AIFM3 0.577935690502709 -ASCL1 0.37568323074867 -EXPH5 -0.575008199569129 -CBWD3 0.283287779368243 -PEPD -0.0553830875558683 -GPNMB 0.364500938005497 -NEDD4L -0.508710397589902 -CALB2 -0.425755713683833 -FAM49A -0.447197463197697 -NT5DC3 -0.265234061560778 -HES6 0.347000889525298 -GDA -0.336613721691585 -RASAL1 -0.344295261121664 -ANO3 -0.518790055621458 -C14orf145 0.508493948450919 -MSRB3 0.374050410076754 -CC2D2B 0.438851338613457 -FAM65B -0.254284575986291 -KIRREL3 -0.539616579176257 -CKLF 0.222793814048359 -DNAJA4 -0.486836211576555 -BCOR -0.579019889055718 -CBLL1 -0.642779519205918 -CACNG3 -0.428582206819538 -GRIN2B -0.577739683994275 -LRRC67 0.341366642004448 -RELL2 0.405916058000189 -NUDT3 -0.340375787654433 -MAST2 -0.541618527665053 -S100A10 -0.105037624066791 -OR13C2 0.379430219617317 -HSPC157 0.570528832119166 -NOP10 0.322245514370384 -C6orf174 -0.338629613564291 -LRRC61 0.0251744454575518 -FOLR2 0.131043427693804 -DYRK2 -0.522163896119695 -CALHM2 0.169628414381558 -CST7 0.313658960797421 -DUSP7 -0.523627393294567 -MTMR10 -0.415446285885383 -PPM1G -0.464776264617981 -ADCY1 -0.454137407761092 -RPL13 0.506459486318965 -RRN3P1 0.525814578931781 -CXCL2 0.3672098081501 -RXRG 0.0402026385616925 -SRGN 0.531671866088554 -HIST1H2AE 0.293542472070096 -CYP2B6 0.275105405791745 -HHIP -0.466578712584274 -KIAA1324L -0.40123393199988 -FLJ90757 -0.507490069062372 -MYT1L -0.584482026813831 -EIF2C2 -0.484852873283777 -NKAIN2 -0.549382635628517 -EIF2AK2 -0.489504988062896 -KIF21A -0.359563932905791 -CCT6A -0.177223944265096 -CDV3 -0.391589063759768 -HIVEP2 -0.600071683037855 -SPATA1 0.543060390879784 -FKBP11 -0.615494036116273 -NDST1 -0.475889745275566 -ARHGEF10 -0.250541551205642 -ZHX1 0.482981433720838 -SLC10A7 -0.337979122832437 -JAKMIP2 -0.415964197082499 -NAV1 -0.510622036406541 -NDUFB2 0.377202661234421 -ZNF507 -0.468104205569414 -MGAT2 0.222876912868186 -TTR 0.346175361449992 -EPB41L3 -0.411485674977879 -CNTNAP2 -0.327376463196595 -HNRNPU -0.346139332150707 -ZNRD1 0.194397447066282 -PMF1 0.232524370350156 -TNFRSF21 -0.387936336469165 -KCNB1 -0.405472129261546 -FOXG1 -0.471157786135538 -S100A13 0.557308910766736 -BRD4 -0.517114201471415 -TIGD6 0.442112009917649 -RSPH9 0.182331610189591 -RGS20 0.417845235693366 -ASAP1 -0.536170937682141 -SLC7A14 -0.280031937135622 -MGAT3 -0.448766981367882 -IFITM4P 0.485622606827836 -SFRS15 -0.542060168583627 -PITPNM3 -0.42639997101521 -PTPRE -0.530218005259195 -ZEB1 -0.477757026844139 -KCNQ3 -0.429926385373833 -CRB1 0.536038063001376 -MAPT -0.50877997133818 -ABCA3 -0.360772553926051 -NPAS2 -0.419863325483148 -CLIC2 0.498878325957547 -LARP1 -0.49884819681315 -NLGN2 -0.429454573027551 -ALS2CR11 0.294226279272528 -NAP1L2 -0.313096105976879 -SLIT1 -0.434411983489453 -PHB 0.00979800238909777 -ZNF587 -0.0136127665384343 -STRN4 -0.576565248356412 -DSCAML1 -0.596992679910324 -MBD2 -0.20298332637123 -CENPQ 0.422898511661338 -PHF10 0.395502631449537 -MAP3K9 -0.405184359146696 -XRCC1 -0.370898065524857 -AKR1C3 0.453192387807177 -TTC29 0.290819126414233 -ISG20L2 -0.428905666986556 -TMEM165 0.492824884935657 -C2CD3 -0.514182826428327 -DPP4 0.23910770529895 -CCDC92 -0.53622071697372 -EXT1 -0.382555479091514 -C1QL2 -0.201706565681442 -ABHD2 -0.301021168563018 -SMURF1 -0.635507196661467 -CSNK1G2 -0.414657842955022 -TSPO 0.312759943492922 -EFEMP1 0.418307207101287 -HIST1H2BC 0.155466056856681 -CACNA1G -0.603776648047605 -FCGRT 0.35186075288181 -OR6N2 0.19188744379883 -LILRA4 0.402116115371683 -GRIA1 -0.509922904695054 -HOXD8 0.311094779788594 -UPP1 0.48025126950744 -C17orf88 0.245494799347336 -MKL2 -0.495926848441475 -TAB3 -0.397855481558619 -KRTAP19-5 0.333726211690568 -PCDHB3 -0.42089893790206 -KLRF1 0.238176912312437 -TLR4 0.293561440425403 -SEPT14 0.268206811480962 -BSN -0.301460000103249 -GRLF1 -0.466342462809911 -C1orf61 0.409705166908955 -GSTM1 0.580671376408388 -SDCCAG3 0.339086319326061 -NHLH2 0.264436125619991 -CRTC1 -0.364358124950179 -ZNF701 0.262422484025346 -FTO -0.484606564596535 -KIAA0430 -0.323429860829196 -HPSE2 0.444523469491999 -AAK1 -0.336960928171931 -ZNF592 -0.459711729876906 -INF2 -0.368727716463355 -UNC80 -0.203435560684691 -KCNJ9 -0.385326074668389 -CREBBP -0.48479916887186 -TMEM187 0.353577074222219 -GIMAP6 0.196334054611495 -MSH4 0.495021650163618 -CYP2F1 -0.202379731783218 -WARS -0.36956071999387 -EIF4H -0.324258084689287 -LMF1 -0.465196534142832 -SLC9A11 0.380530864151023 -RPLP0 0.401187575431913 -SORCS3 -0.524716179920174 -SMPD1 -0.371378049257817 -MLL2 -0.382849048834827 -ACTA2 -0.351473562308814 -CD84 0.0440334284755635 -LRRC57 -0.0868790230732024 -ADAM28 -0.234050278113392 -FLJ37543 0.329929076805089 -NR4A2 -0.525703760298336 -METT11D1 0.315411883405057 -MEX3C -0.570394569556345 -ST8SIA5 -0.525318796364569 -HRH1 -0.276472654345764 -RAB3IP -0.23897971786832 -ETV6 -0.448657117826825 -LUZP2 -0.409590511647277 -TRIM44 -0.386063986999447 -MYH11 -0.280352372336459 -TPK1 0.485143439818794 -C1QC -0.0250872517448672 -A2ML1 0.356485052871728 -ZNF365 0.476040462817264 -CCL2 0.160044975309114 -ADRA2A -0.511689669158592 -TMPRSS5 0.299973105357606 -C5orf53 0.490994640268981 -MORC2 -0.41225212616417 +name value +ELMO2 -0.547404913905166 +RGS1 0.664905640201586 +GSTT1 -0.630503181260422 +SDPR 0.576954531502211 +KCNJ2 -0.389733143810031 +DLG2 -0.622560222549952 +C2orf46 0.306481308387015 +YPEL1 -0.110679998012662 +AFF2 -0.580887248407995 +TCP11L2 -0.446138772716671 +TYROBP 0.0965004216809888 +PCK1 0.583148947380073 +C3 -0.229405245486493 +BLOC1S2 -0.501156113973434 +LPAR5 -0.252012578774993 +ACAD11 0.484415314534294 +CALB1 -0.585051808236823 +GNG2 -0.514333881323537 +GRIN3A -0.54737874801763 +BLNK -0.23678687239484 +SMARCD1 -0.480222958914743 +ARMC9 0.512102956486084 +CX3CR1 -0.300766155352383 +SLC31A2 -0.502055753854611 +AGPAT3 -0.413409719893933 +EFNB3 -0.382400551167611 +ELMOD2 0.402518685883201 +PRKCG -0.34345444223993 +LAPTM5 -0.136628457581106 +IQUB 0.562346209462303 +STAM -0.566262263187017 +OR11A1 0.178234692397988 +ZDHHC9 -0.520488129277965 +C11orf9 -0.511135500492906 +KLF4 0.640024343756592 +SYCP2L 0.555576793235834 +C20orf112 -0.63210679508749 +AP3M1 -0.436291767005889 +ALMS1P 0.310301539060874 +GREM1 -0.101042197816266 +HLCS -0.404869146774348 +CARNS1 -0.358503492948689 +TSHZ2 -0.370201532555949 +CDKN1A 0.37878581767329 +CNDP1 -0.387074241865627 +C1orf161 0.408555295769768 +DOK6 -0.552556377657443 +C12orf43 -0.345533858224805 +SIPA1L2 -0.469893969573457 +FLJ40712 0.248899115372987 +TREM2 0.326657235461902 +MS4A6A 0.333196279374371 +RASGRF1 0.18816869654076 +RNF26 -0.576816063125611 +C7orf68 0.551320218061987 +DPP7 0.601525547176648 +OMD 0.556147496355725 +SNAI2 -0.402803074931945 +COL21A1 0.475584827359055 +APBB1IP -0.510593783545533 +PRKCQ -0.625167167620313 +PDGFRA -0.593141766545025 +SLCO2B1 -0.20664851085323 +LPCAT3 -0.457401881600448 +CD37 -0.225548512842192 +IRF8 -0.513003936776053 +CSF1R -0.17710132121375 +CD74 0.0263995452022326 +CHI3L1 0.637898420604861 +SELPLG -0.165789940031603 +CDH8 -0.544872582360693 +CXCL12 -0.350721988871356 +TOPBP1 -0.516846284550731 +SLC16A10 0.372816060474775 +PCDHB9 -0.583344609658305 +HLA-DRA 0.249881965203208 +OLR1 0.105145169714195 +ADORA3 0.352457579745827 +ALOX5AP 0.094898490604102 +HLA-DOA 0.0912244782358314 +ZNF519 0.242878217518759 +FCER1G 0.122597294910367 +MT1H 0.274901514766897 +MFSD2A 0.12726693788776 +AIF1 -0.0853762046815476 +CTSH 0.324179727747488 +C3AR1 0.00893654957093225 +FCGR2A -0.0476956544487118 +CXCL16 0.0931434603948185 +EVI2B -0.236921572611684 +BACE1 -0.616602739604107 +OR1E1 0.491889127463635 +CLK1 0.423619868541565 +FLJ13197 0.340321509869536 +WBP2NL 0.590401706468574 +UGT8 -0.444926073295334 +HSD17B14 0.614959487312916 +GRIK3 -0.628539434045017 +MT1G 0.569589804148072 +BAIAP3 0.50915236570152 +TJAP1 -0.211899568999271 +PIP4K2C -0.546592244445733 +CAMK4 -0.62370886479691 +TMEM63A -0.349108640870675 +CCDC45 0.470491672406875 +ERLIN1 -0.590064605968872 +ATP6V1F 0.31735684237396 +EPHB2 -0.492251103302591 +ANKRD11 -0.576352445468476 +PCDHB2 -0.56247030572076 +ACSL1 -0.580402201513607 +LGR5 -0.49666928921999 +PDE3B 0.561081934872393 +C1orf21 -0.433409479731833 +LRRTM1 -0.430851468978506 +GPR12 -0.285126298493215 +VSTM2A -0.496505850586284 +ODZ1 -0.500803022233123 +CACNG2 -0.568038440978143 +SMPD3 -0.448297258958326 +SORBS2 -0.652515435812272 +DCAF7 -0.561122254419525 +GJD2 -0.500391756170096 +PEG10 -0.529984214958046 +A2M -0.0956498395825097 +THRB -0.278461084991876 +C11orf24 -0.519543924524242 +TFG -0.340307925442264 +MAMLD1 -0.389582104545406 +ASPHD2 -0.44086160208266 +ANKRD37 0.644400268061014 +NCKAP1L -0.38869429192758 +CAPN5 -0.568639095894228 +SERINC3 -0.473478678274642 +CEBPB 0.386715054596765 +PRDM10 -0.575525391963737 +HCN1 -0.384931312491389 +CAMTA1 -0.435666315274373 +KLHDC1 0.27598504319864 +DUSP1 0.576414053338242 +QRICH1 -0.533552393948272 +SH3KBP1 -0.391446975914019 +EBF1 -0.379385913897609 +PPP1R16B -0.356903880861572 +BTBD3 -0.327196312551472 +NRXN2 -0.509283550099326 +KAZ -0.541421535478964 +KIAA0317 -0.636085461640037 +NDST3 -0.426753877235142 +GMCL1 0.45632888308336 +P2RX5 -0.283914132520413 +IGFL3 0.297606727720448 +LOC286161 -0.366837279825892 +PLEKHM1 -0.408702703852517 +RIMS1 -0.372721943202267 +UBE2Q2P1 0.327173892822723 +TTYH2 -0.407525904378876 +DES 0.06209856553185 +DBNDD2 -0.30225683329951 +ENPP2 -0.409429156664166 +NTN4 0.494337823155339 +SUN2 -0.276353435973038 +ACTG2 -0.210220455726459 +CA2 -0.0242596436213912 +THBS1 -0.221580234422776 +LDLRAD3 -0.360622764104025 +SNX1 -0.0377961368749078 +ERBB3 -0.405973590470433 +TTN 0.391623015044573 +ATRN -0.52540142288716 +NPC1 -0.267674240960311 +GNS -0.181466206971045 +KLK6 -0.378431280290618 +FOS 0.360516377902882 +CD69 0.377148542537053 +LYVE1 0.138789282779698 +FTL 0.237591315022414 +JUNB 0.394473562572383 +GSTM5 0.217560993654354 +NR4A1 0.24427289755837 +PGAM2 0.551801840506397 +TMEM176A 0.537931366670412 +EGR1 -0.157019974633097 +GPR183 0.107180842069747 +CXCL11 0.395003724312407 +PLA2G12A -0.18246216314499 +HLA-DMB 0.229795197318716 +CPNE8 0.0508489313725271 +ZFP36 0.42538436064968 +AGPAT4 -0.467855141787709 +HLA-DPA1 0.408536378107808 +PIK3C2B -0.591780318571167 +CPNE6 -0.271576531727541 +PLD3 -0.200022062788495 +PVRL1 -0.555155906198138 +GGCT -0.279243242312552 +P2RY13 -0.360442360434042 +CNTN5 0.00258913839174191 +MCM7 0.195233154899312 +GPR120 -0.199692500084005 +GABRE 0.0682190440098052 +LRRC39 0.498683033772744 +TLR7 -0.164697853025215 +RFC3 -0.486755240432686 +CD33 0.00184280522373291 +CA8 0.363290764959567 +MAS1 -0.492009752548035 +FBLN5 -0.511286958021381 +TMTC1 -0.332133706392934 +C1orf51 0.45497717618641 +RPL35 -0.0899084146126614 +DKK2 -0.38611669080376 +USP53 0.412868805138869 +CD177 -0.217675402988493 +ELAVL1 -0.579547221944692 +AIFM3 0.577935690502709 +ASCL1 0.37568323074867 +EXPH5 -0.575008199569129 +CBWD3 0.283287779368243 +PEPD -0.0553830875558683 +GPNMB 0.364500938005497 +NEDD4L -0.508710397589902 +CALB2 -0.425755713683833 +FAM49A -0.447197463197697 +NT5DC3 -0.265234061560778 +HES6 0.347000889525298 +GDA -0.336613721691585 +RASAL1 -0.344295261121664 +ANO3 -0.518790055621458 +C14orf145 0.508493948450919 +MSRB3 0.374050410076754 +CC2D2B 0.438851338613457 +FAM65B -0.254284575986291 +KIRREL3 -0.539616579176257 +CKLF 0.222793814048359 +DNAJA4 -0.486836211576555 +BCOR -0.579019889055718 +CBLL1 -0.642779519205918 +CACNG3 -0.428582206819538 +GRIN2B -0.577739683994275 +LRRC67 0.341366642004448 +RELL2 0.405916058000189 +NUDT3 -0.340375787654433 +MAST2 -0.541618527665053 +S100A10 -0.105037624066791 +OR13C2 0.379430219617317 +HSPC157 0.570528832119166 +NOP10 0.322245514370384 +C6orf174 -0.338629613564291 +LRRC61 0.0251744454575518 +FOLR2 0.131043427693804 +DYRK2 -0.522163896119695 +CALHM2 0.169628414381558 +CST7 0.313658960797421 +DUSP7 -0.523627393294567 +MTMR10 -0.415446285885383 +PPM1G -0.464776264617981 +ADCY1 -0.454137407761092 +RPL13 0.506459486318965 +RRN3P1 0.525814578931781 +CXCL2 0.3672098081501 +RXRG 0.0402026385616925 +SRGN 0.531671866088554 +HIST1H2AE 0.293542472070096 +CYP2B6 0.275105405791745 +HHIP -0.466578712584274 +KIAA1324L -0.40123393199988 +FLJ90757 -0.507490069062372 +MYT1L -0.584482026813831 +EIF2C2 -0.484852873283777 +NKAIN2 -0.549382635628517 +EIF2AK2 -0.489504988062896 +KIF21A -0.359563932905791 +CCT6A -0.177223944265096 +CDV3 -0.391589063759768 +HIVEP2 -0.600071683037855 +SPATA1 0.543060390879784 +FKBP11 -0.615494036116273 +NDST1 -0.475889745275566 +ARHGEF10 -0.250541551205642 +ZHX1 0.482981433720838 +SLC10A7 -0.337979122832437 +JAKMIP2 -0.415964197082499 +NAV1 -0.510622036406541 +NDUFB2 0.377202661234421 +ZNF507 -0.468104205569414 +MGAT2 0.222876912868186 +TTR 0.346175361449992 +EPB41L3 -0.411485674977879 +CNTNAP2 -0.327376463196595 +HNRNPU -0.346139332150707 +ZNRD1 0.194397447066282 +PMF1 0.232524370350156 +TNFRSF21 -0.387936336469165 +KCNB1 -0.405472129261546 +FOXG1 -0.471157786135538 +S100A13 0.557308910766736 +BRD4 -0.517114201471415 +TIGD6 0.442112009917649 +RSPH9 0.182331610189591 +RGS20 0.417845235693366 +ASAP1 -0.536170937682141 +SLC7A14 -0.280031937135622 +MGAT3 -0.448766981367882 +IFITM4P 0.485622606827836 +SFRS15 -0.542060168583627 +PITPNM3 -0.42639997101521 +PTPRE -0.530218005259195 +ZEB1 -0.477757026844139 +KCNQ3 -0.429926385373833 +CRB1 0.536038063001376 +MAPT -0.50877997133818 +ABCA3 -0.360772553926051 +NPAS2 -0.419863325483148 +CLIC2 0.498878325957547 +LARP1 -0.49884819681315 +NLGN2 -0.429454573027551 +ALS2CR11 0.294226279272528 +NAP1L2 -0.313096105976879 +SLIT1 -0.434411983489453 +PHB 0.00979800238909777 +ZNF587 -0.0136127665384343 +STRN4 -0.576565248356412 +DSCAML1 -0.596992679910324 +MBD2 -0.20298332637123 +CENPQ 0.422898511661338 +PHF10 0.395502631449537 +MAP3K9 -0.405184359146696 +XRCC1 -0.370898065524857 +AKR1C3 0.453192387807177 +TTC29 0.290819126414233 +ISG20L2 -0.428905666986556 +TMEM165 0.492824884935657 +C2CD3 -0.514182826428327 +DPP4 0.23910770529895 +CCDC92 -0.53622071697372 +EXT1 -0.382555479091514 +C1QL2 -0.201706565681442 +ABHD2 -0.301021168563018 +SMURF1 -0.635507196661467 +CSNK1G2 -0.414657842955022 +TSPO 0.312759943492922 +EFEMP1 0.418307207101287 +HIST1H2BC 0.155466056856681 +CACNA1G -0.603776648047605 +FCGRT 0.35186075288181 +OR6N2 0.19188744379883 +LILRA4 0.402116115371683 +GRIA1 -0.509922904695054 +HOXD8 0.311094779788594 +UPP1 0.48025126950744 +C17orf88 0.245494799347336 +MKL2 -0.495926848441475 +TAB3 -0.397855481558619 +KRTAP19-5 0.333726211690568 +PCDHB3 -0.42089893790206 +KLRF1 0.238176912312437 +TLR4 0.293561440425403 +SEPT14 0.268206811480962 +BSN -0.301460000103249 +GRLF1 -0.466342462809911 +C1orf61 0.409705166908955 +GSTM1 0.580671376408388 +SDCCAG3 0.339086319326061 +NHLH2 0.264436125619991 +CRTC1 -0.364358124950179 +ZNF701 0.262422484025346 +FTO -0.484606564596535 +KIAA0430 -0.323429860829196 +HPSE2 0.444523469491999 +AAK1 -0.336960928171931 +ZNF592 -0.459711729876906 +INF2 -0.368727716463355 +UNC80 -0.203435560684691 +KCNJ9 -0.385326074668389 +CREBBP -0.48479916887186 +TMEM187 0.353577074222219 +GIMAP6 0.196334054611495 +MSH4 0.495021650163618 +CYP2F1 -0.202379731783218 +WARS -0.36956071999387 +EIF4H -0.324258084689287 +LMF1 -0.465196534142832 +SLC9A11 0.380530864151023 +RPLP0 0.401187575431913 +SORCS3 -0.524716179920174 +SMPD1 -0.371378049257817 +MLL2 -0.382849048834827 +ACTA2 -0.351473562308814 +CD84 0.0440334284755635 +LRRC57 -0.0868790230732024 +ADAM28 -0.234050278113392 +FLJ37543 0.329929076805089 +NR4A2 -0.525703760298336 +METT11D1 0.315411883405057 +MEX3C -0.570394569556345 +ST8SIA5 -0.525318796364569 +HRH1 -0.276472654345764 +RAB3IP -0.23897971786832 +ETV6 -0.448657117826825 +LUZP2 -0.409590511647277 +TRIM44 -0.386063986999447 +MYH11 -0.280352372336459 +TPK1 0.485143439818794 +C1QC -0.0250872517448672 +A2ML1 0.356485052871728 +ZNF365 0.476040462817264 +CCL2 0.160044975309114 +ADRA2A -0.511689669158592 +TMPRSS5 0.299973105357606 +C5orf53 0.490994640268981 +MORC2 -0.41225212616417 diff --git a/console/testFiles/pd_full/PD_160714_2/layouts/PD substantia nigra.txt b/console/testFiles/pd_full/PD_160714_2/layouts/PD substantia nigra.txt index 8f57d5c9d2..5ed3ee8742 100644 --- a/console/testFiles/pd_full/PD_160714_2/layouts/PD substantia nigra.txt +++ b/console/testFiles/pd_full/PD_160714_2/layouts/PD substantia nigra.txt @@ -1,4342 +1,4342 @@ -# VERSION=1.0 -# NAME=PD substantia nigra +# VERSION=1.0 +# NAME=PD substantia nigra # DESCRIPTION=Differential transcriptome expression from post mortem tissue. Meta-analysis from 8 published datasets, FDR = 0.05, see PMIDs 23832570 and 25447234. -name value -GBE1 -0,943978048 -SLC18A2 -0,941309505 -KCNJ6 -0,894120983 -DLK1 -0,887122171 -PTDSS1 -0,851959645 -FGF13 -0,842876271 -PCDH8 -0,83524894 -ZNF226 -0,82900335 -SLC6A3 -0,824713365 -PIP5K1B -0,812285785 -DENR -0,81101551 -TPBG -0,806963209 -PRKAR2B -0,805288865 -OSBPL10 -0,80406299 -ALDH1A1 -0,795042129 -GGCX -0,795035797 -ACP2 -0,794853979 -SLITRK5 -0,793842132 -FAM70A -0,793715412 -HPRT1 -0,792370336 -CCNH -0,790971864 -MYRIP -0,78490295 -TUBB2A -0,783142444 -ACTR10 -0,782043082 -BASP1 -0,778702387 -CADPS2 -0,777552826 -PID1 -0,775106213 -SV2C -0,774895093 -RBM3 -0,77091551 -REEP1 -0,770000111 -RIMBP2 -0,766421185 -CNIH3 -0,765790316 -DMXL2 -0,765309344 -LOC10431 -0,762992699 -SV2B -0,759985564 -AGK -0,756506198 -RCAN2 -0,753762002 -LPPR4 -0,753018962 -RALYL -0,75270126 -L1CAM -0,751978689 -BCAS2 -0,751241508 -LOC100131795 -0,750350108 -TH -0,748260596 -AV756161 -0,747351587 -TRIM36 -0,746057792 -MPPED2 -0,743864716 -NELL2 -0,742513977 -MAGED1 -0,739190733 -LRRC49 -0,738776851 -SYNGR3 -0,734846774 -ERC2 -0,734619705 -VBP1 -0,73223558 -UQCC -0,729749962 -DCLK1 -0,725139215 -GSS -0,724321987 -OPA1 -0,723790592 -PPP2R2B -0,720892147 -COPS4 -0,720599852 -NSF -0,720580224 -DLD -0,72035948 -DYNC1I1 -0,719837984 -GABARAPL3 -0,717235008 -GPRASP1 -0,71302626 -NAP1L2 -0,712876929 -AMPH -0,711957162 -PNMAL1 -0,70952389 -RGS6 -0,706463 -LDB2 -0,704777497 -TTC19 -0,704232585 -SCN3B -0,703738866 -ATPIF1 -0,702603531 -BEX1 -0,700382911 -LMO3 -0,699029823 -TBC1D9 -0,698189481 -NDUFS1 -0,697230219 -INSM1 -0,696524737 -PARL -0,696362568 -MRPL15 -0,688780959 -C3orf14 -0,687875821 -C19orf62 -0,687403479 -PCYOX1L -0,686812669 -VRK1 -0,685016241 -MDH2 -0,684889561 -SMYD3 -0,684642724 -ASAH1 -0,68459801 -GSTA4 -0,684021936 -NDUFA9 -0,683116722 -ATP5C1 -0,682289667 -DDX25 -0,681511867 -GNG3 -0,681122999 -MUDENG -0,67996077 -SCG2 -0,679728044 -MOAP1 -0,679575281 -SYT1 -0,678979261 -ATP6V1H -0,6786546 -SHOC2 -0,677754756 -PCSK1 -0,677441918 -LBH -0,67710638 -HK1 -0,676818391 -KIAA0319 -0,676346138 -SMAP1 -0,67618103 -EHBP1 -0,675429621 -RAP1GAP2 -0,673705297 -FABP7 -0,673485271 -LRRN3 -0,6731503 -AHNAK2 -0,672875949 -DHDDS -0,671959403 -SNAPC5 -0,670824633 -C17orf108 -0,670563093 -AL390170 -0,67026906 -PTS -0,669577055 -NUDT11 -0,668061506 -HMP19 -0,66794356 -IMMT -0,667541939 -RGS4 -0,667109174 -RET -0,667088994 -PBLD -0,666164981 -AP3M2 -0,666056972 -WDR7 -0,665751643 -ATP6V0D1 -0,665487037 -RTF1 -0,664652469 -TUBB3 -0,664644351 -CHCHD2 -0,664529051 -DYNLT3 -0,663584428 -RAB6B -0,662755469 -CHGB -0,661865706 -NGFRAP1 -0,659441958 -AZIN1 -0,659394366 -EN1 -0,659313013 -SNX10 -0,659251628 -MIA3 -0,65882244 -ANK1 -0,657621479 -NR4A2 -0,65598531 -ANAPC13 -0,655864214 -RGS7 -0,654445938 -NME5 -0,652754395 -TXNDC9 -0,652019899 -PPIP5K2 -0,651763237 -RFK -0,651442652 -BE674466 -0,651048329 -PEG10 -0,650932122 -PIAS2 -0,650823358 -CUX2 -0,649970555 -SEPT6 -0,649422911 -FKBP1B -0,649416387 -C12orf10 -0,648407487 -HMGCS1 -0,648164918 -WDR61 -0,648133373 -GFPT1 -0,647751981 -MLLT11 -0,647471245 -AGTR1 -0,645674318 -CSNK1D -0,645408463 -WDR47 -0,64495088 -PSMD14 -0,644669314 -CISD1 -0,643780748 -PSMD11 -0,642982055 -KCNS3 -0,642919136 -TIMM8B -0,642730563 -RUNDC3B -0,641744336 -ANKRD6 -0,640032629 -MDH1 -0,639623665 -STMN2 -0,639070421 -BAI3 -0,638894116 -STX12 -0,638382169 -NECAP1 -0,638376593 -NIT2 -0,638223243 -CIRBP -0,637859912 -XK -0,636787355 -KIAA1797 -0,636384728 -ICMT -0,636379567 -GALT -0,636138691 -SPINT2 -0,635454321 -PAIP1 -0,634724103 -TAGLN3 -0,63459569 -CADPS -0,634245008 -GALNT11 -0,634168707 -SLC9A6 -0,632805526 -ANKRD34C -0,63217094 -COPG2IT1 -0,63213856 -VPS4B -0,63135628 -ATP6V0E2 -0,631164455 -SC5DL -0,631137699 -CNPY2 -0,630875303 -GCC2 -0,630691438 -CRYZL1 -0,63015348 -MOBKL3 -0,630076244 -SNCA -0,629316875 -STAM -0,628134338 -TUBA4A -0,627764216 -MAK16 -0,627148096 -FRY -0,626684765 -UBE2V2 -0,626378865 -RWDD2B -0,626170788 -FBXO9 -0,62572532 -FLJ41278 -0,6251633 -SLC30A9 -0,624759053 -LOC100132015 -0,623179237 -EXOG -0,622056922 -RAP1GAP -0,618803848 -DYNC1LI1 -0,618641756 -HARS -0,618639749 -NDUFA5 -0,618245275 -SPCS1 -0,618130333 -PSMB7 -0,618122572 -NETO2 -0,618103081 -ATP5G3 -0,617855025 -UCHL1 -0,617452524 -FAM127A -0,616124191 -TSSC1 -0,615619431 -CBLN1 -0,615519237 -CYB5R1 -0,615294192 -PSMG1 -0,61487171 -AKAP12 -0,614821543 -CYB561 -0,614281499 -KCND3 -0,613554227 -GABRB1 -0,613364723 -SLIT1 -0,613251897 -HN1 -0,612796898 -F8 -0,612749576 -VSNL1 -0,611517123 -ATP5A1 -0,611141848 -ARMCX5 -0,610703909 -AI097640 -0,610659067 -CERK -0,610508368 -TMX4 -0,610174408 -TSPAN13 -0,609932725 -CAMLG -0,609409157 -NDUFA7 -0,609351405 -STRAP -0,609237631 -RTCD1 -0,607502869 -ORC5L -0,606910471 -SCG5 -0,606870723 -HSPA12A -0,606863939 -VAV3 -0,606070683 -TUBB2C -0,60582666 -DCTN2 -0,605238426 -OCRL -0,604661192 -HPCAL4 -0,604023171 -ARL1 -0,604008234 -CDK14 -0,603712397 -TLK1 -0,603591955 -BLVRA -0,603201697 -NEFL -0,602887281 -SLC25A32 -0,602708801 -ATXN10 -0,602624835 -UQCRC2 -0,601726567 -SLC25A3 -0,601470752 -MYL12B -0,601373186 -CDS2 -0,601292766 -DDC -0,601079077 -BSCL2 -0,6009448 -CACNB3 -0,598982611 -RIMS3 -0,598771066 -LASS6 -0,598387226 -FIBP -0,598382328 -LRPPRC -0,598144321 -PYROXD1 -0,598012671 -MAP3K9 -0,597438703 -CHL1 -0,5969101 -FJX1 -0,596748319 -PFN2 -0,596551333 -ATMIN -0,59649395 -LIN7B -0,596058244 -AV704232 -0,595274626 -PPP2R5C -0,594797769 -SNAP91 -0,59414072 -AKT3 -0,593859242 -NDUFAB1 -0,593111219 -CCDC28A -0,59307395 -GLOD4 -0,592429097 -STXBP1 -0,591440124 -HLTF -0,591296161 -CRMP1 -0,590916915 -KIAA0513 -0,590696005 -GHITM -0,590624599 -ATP6V1B2 -0,590367192 -USP14 -0,589739205 -RNFT2 -0,589705749 -SCG3 -0,589375952 -ATP5B -0,588999541 -FAM136A -0,588982627 -UBE2N -0,588308222 -ANXA6 -0,588071667 -MRTO4 -0,58799806 -SNRK -0,587183425 -CACNA2D2 -0,587134808 -IFT57 -0,586933566 -PPP3CB -0,586906049 -RICH2 -0,586554767 -ME3 -0,586514247 -THOC7 -0,585617181 -FAM188A -0,584083221 -EIF2B3 -0,582997986 -CNTNAP1 -0,582856877 -SCRN1 -0,582791752 -ACAT1 -0,582760841 -IDI1 -0,582694626 -PBX1 -0,582658829 -CDC42 -0,582658446 -NBEA -0,582614884 -PPP1R2 -0,581839918 -ACTR6 -0,581817384 -TAF9 -0,581794162 -NIPSNAP1 -0,581711722 -SEC61A2 -0,58139821 -WDR37 -0,581272248 -VWA5A -0,581248993 -CDC27 -0,580500838 -MYT1L -0,580491453 -PSMC1 -0,580473356 -KATNB1 -0,578133005 -ZWINT -0,577661475 -C12orf24 -0,577181135 -SLC25A46 -0,577144749 -DOLK -0,576794187 -APOO -0,576716633 -GCH1 -0,576494714 -TBC1D30 -0,575582077 -DCTN3 -0,575526778 -FBXL2 -0,575141782 -KIFAP3 -0,574923419 -CMAS -0,574834972 -C18orf10 -0,574780811 -PNMA2 -0,574504978 -PDHX -0,574434123 -SAMM50 -0,574204311 -NDUFA2 -0,574087728 -NPTN -0,573534504 -HIGD1A -0,573110642 -CYC1 -0,573010558 -HMGCR -0,572959475 -TRAPPC2L -0,572517332 -IMPA1 -0,572397104 -IMPACT -0,572070372 -KIAA0802 -0,572067617 -DSTN -0,571964512 -C5orf44 -0,571958339 -CCK -0,571148184 -OGDHL -0,571078621 -TCP11L1 -0,570951095 -RNF14 -0,569913578 -IARS -0,569079443 -CDH8 -0,569072707 -RNF41 -0,568830451 -SCN3A -0,568276898 -PSMD12 -0,567936617 -TNFRSF21 -0,567631199 -FIG4 -0,566751868 -DDX24 -0,566446037 -MARK1 -0,566206858 -ATP8A2 -0,565754513 -ACLY -0,565055263 -DDX42 -0,564984354 -KIF3C -0,564949485 -PIN1 -0,564290859 -PSEN2 -0,564206755 -TERF2IP -0,564084181 -VDAC3 -0,563895581 -B3GNT1 -0,563686309 -CHN1 -0,563660153 -GLO1 -0,561564055 -RAB11A -0,561549092 -PRPS1 -0,561391557 -MAP2 -0,561080301 -NHP2 -0,56096586 -DNAJA2 -0,560780556 -NDRG4 -0,560771764 -HNRNPA0 -0,560406816 -NDUFV2 -0,559975953 -ADH5 -0,559909821 -FAM3C -0,559672666 -COPS7A -0,559265307 -SULT4A1 -0,558733244 -MATN3 -0,558346148 -TMEM14A -0,557817575 -HRASLS -0,557799459 -TMEM14B -0,557593404 -TTC1 -0,557573183 -R3HDM1 -0,557428266 -AUH -0,55725646 -C5orf22 -0,55714645 -TUBB -0,557095971 -C5orf13 -0,55663948 -COX7A2L -0,556219721 -POMP -0,556110434 -ATP5J2 -0,555267292 -ZNF204P -0,555121445 -INA -0,554984251 -NUP93 -0,55488654 -STAU2 -0,55454534 -VAT1 -0,554180752 -DDB1 -0,554146967 -THY1 -0,554057809 -SRPRB -0,553818923 -IMP4 -0,553554219 -SRP19 -0,552319097 -FUCA1 -0,551919323 -PRKCZ -0,551777138 -CD2BP2 -0,55167071 -C12orf43 -0,551436389 -SUSD4 -0,55137396 -W88821 -0,551080268 -LSM4 -0,550328209 -SNAP25 -0,550276399 -ACSL6 -0,549806401 -MYH10 -0,549550685 -DDHD2 -0,548942799 -PRKACA -0,548422775 -CHRNB3 -0,547701041 -NEFM -0,547618123 -PLD3 -0,547495065 -GSPT2 -0,547329995 -ATP6V1E1 -0,546911033 -GABBR2 -0,546899558 -IPW -0,546596796 -SCAMP5 -0,546380917 -RFPL1S -0,545994554 -BSN -0,545979557 -MAGI1 -0,54490486 -DRG1 -0,544733954 -PITPNB -0,544704547 -LETMD1 -0,544636809 -AI263044 -0,544470885 -STOML1 -0,544383238 -GBAS -0,544103215 -RAB3GAP1 -0,543092086 -ACTG1 -0,54300405 -PPME1 -0,542943175 -AFG3L2 -0,542490245 -DNAJC6 -0,541912283 -TUBA1B -0,541625287 -ABCE1 -0,541581351 -ARF3 -0,541401116 -SRSF3 -0,54134715 -NEFH -0,540578844 -ADK -0,540377244 -TIMM17A -0,540158649 -ELOVL6 -0,540054201 -FAM189A1 -0,539987546 -ATP6V1A -0,539816156 -OAT -0,53960074 -KIAA0284 -0,539436564 -SLC25A12 -0,538986194 -AP3D1 -0,538816413 -ISCU -0,53848727 -CDH10 -0,538458105 -APEH -0,538385859 -TMEM35 -0,537944022 -NDFIP1 -0,537769873 -U79277 -0,537586945 -SYNGR1 -0,53757151 -MEAF6 -0,537175986 -DNM1 -0,536361784 -DEF8 -0,536162488 -PDXK -0,536128962 -RIT2 -0,536060129 -AACS -0,535868362 -RAB3A -0,535840143 -LXN -0,535676847 -CCBL2 -0,53559953 -ATXN7L3B -0,535570224 -RCN2 -0,535264733 -SDC2 -0,535187449 -NRXN3 -0,534911729 -SDC1 -0,534748047 -PSMD1 -0,534162775 -UBA5 -0,534098166 -PEX11B -0,533915774 -RAP1GDS1 -0,533764019 -NUPL1 -0,533680375 -ARMCX1 -0,533607326 -SDHAP1 -0,533209621 -PJA2 -0,532853246 -ACOT7 -0,532662038 -SEZ6L -0,532618647 -CELF2 -0,532603645 -CXorf40A -0,532513065 -NDUFB5 -0,532279155 -GARS -0,532224902 -NRG1 -0,532009485 -SEC31B -0,53180843 -ME1 -0,531466374 -PSMD8 -0,531445018 -MSL1 -0,531268404 -PCLO -0,531166247 -RAB14 -0,531006634 -MAGED2 -0,530858407 -EIF3K -0,530846086 -MMD -0,530845303 -MYO5A -0,530805656 -NCRNA00094 -0,530597959 -KIAA1107 -0,53057188 -KIAA0564 -0,530294183 -PSMB2 -0,530140819 -C1orf114 -0,530111522 -GCLM -0,529867963 -NDN -0,529086871 -SRD5A1 -0,528786683 -DNAJB9 -0,528374918 -SLC7A8 -0,528181836 -CLIP3 -0,527794519 -NDUFB1 -0,527724864 -CLSTN2 -0,52726691 -C14orf156 -0,527148764 -CIAPIN1 -0,527136633 -ATP5F1 -0,527047789 -PSMB5 -0,526841307 -FAM32A -0,526499611 -KIAA1644 -0,526147045 -RTN1 -0,526062751 -EXOSC9 -0,525622526 -PFKM -0,525053758 -TCF25 -0,524910517 -ATP5O -0,524889972 -PTPRN2 -0,524794642 -SNX4 -0,524373257 -ATP6V1G2 -0,524016622 -SLC35E3 -0,523930118 -SLC2A6 -0,52364368 -SUCLA2 -0,523588063 -PLCB1 -0,523263994 -TMEM30A -0,521872901 -PDE4D -0,521870014 -RAB5A -0,521632556 -MAPK9 -0,521572661 -CAP2 -0,521120749 -RPS6KA3 -0,520660932 -GNAO1 -0,520506337 -PSMD6 -0,520132666 -TBCE -0,519679173 -C9orf125 -0,519623009 -MN1 -0,51937171 -MFSD1 -0,51842841 -KIF3A -0,518357676 -SHFM1 -0,517546292 -NRIP3 -0,516545986 -ANKMY2 -0,516365077 -CDK5 -0,516196782 -REEP5 -0,516165841 -SLC1A1 -0,516141732 -UBE2K -0,516036367 -SMEK2 -0,515537555 -PI4K2A -0,515462049 -TTC39A -0,514924765 -GUCY1B3 -0,514788287 -QPCT -0,514170797 -ST6GALNAC5 -0,514077764 -ATP6V1F -0,513941613 -HSD17B12 -0,513489073 -PPFIA2 -0,51321383 -PLCH1 -0,512855521 -CNTN6 -0,512564243 -ENTPD6 -0,512350634 -ALAS1 -0,512141897 -RUNDC3A -0,511994377 -PCMT1 -0,511547085 -IDS -0,511290223 -PLEKHB2 -0,510964275 -CDO1 -0,510668427 -NDUFB6 -0,510219117 -COX6C -0,509869079 -OPTN -0,509603205 -PSMA1 -0,509510596 -STS -0,509361214 -TIMM10 -0,509318807 -C1D -0,509252454 -GAP43 -0,509215292 -CCDC6 -0,509150548 -TRIM37 -0,509012308 -ATP2B2 -0,508803511 -PGAM1 -0,50863259 -GGNBP2 -0,508616013 -SRP72 -0,508482078 -TCEAL2 -0,508464868 -SV2A -0,508330914 -CDK5R2 -0,508227652 -FHOD3 -0,508155146 -FECH -0,508046235 -ATP2A3 -0,507932978 -SUB1 -0,507787459 -ACO2 -0,507726776 -C20orf3 -0,507526055 -SEC22B -0,507453281 -VPS35 -0,507278509 -MRPS33 -0,507141908 -TXNL4A -0,50704416 -ARHGEF9 -0,506224253 -RBM9 -0,506096633 -TMEM135 -0,506088817 -UHRF1BP1L -0,505757524 -ME2 -0,505446593 -BZRAP1 -0,505378895 -MCAT -0,50534007 -AKAP6 -0,505213579 -COPS3 -0,505110121 -MRPS35 -0,505107922 -YWHAB -0,505015581 -PEX7 -0,504955276 -COPS8 -0,504746043 -OXCT1 -0,504643125 -MAD2L1 -0,504589351 -MCTS1 -0,504510155 -LGALS8 -0,50448664 -ACP1 -0,504339709 -MX1 -0,50393674 -NCALD -0,50389725 -TASP1 -0,503797818 -AGTPBP1 -0,503605082 -RNF128 -0,503554068 -PSMD13 -0,503503704 -TXN -0,50336484 -NHLH2 -0,50325399 -USP12 -0,503149229 -PFDN4 -0,502988386 -NAP1L3 -0,502893901 -MRPL20 -0,502624211 -ACSL3 -0,502355771 -MTPAP -0,502307088 -PMPCB -0,502239978 -SH3GL3 -0,502227406 -API5 -0,502196949 -CAPNS1 -0,5020898 -YWHAZ -0,501747483 -TOMM70A -0,501591565 -STX18 -0,501503813 -HNRNPK -0,501464694 -LRP1B -0,501433491 -CDC123 -0,500993468 -DCTN6 -0,500740808 -VAPB -0,500599356 -CCDC56 -0,499906136 -GOT2 -0,499477446 -RHEB -0,499343134 -PSMD2 -0,499333749 -YPEL5 -0,49910251 -ATP5G1 -0,499077107 -TUBA1A -0,498949544 -GSTM3 -0,498766376 -EPB41L1 -0,498605796 -EPS15 -0,498447403 -ENO2 -0,498261848 -ASMTL -0,498100631 -FH -0,498098378 -CLTC -0,497596743 -PSMA3 -0,497405846 -UROS -0,497291028 -OLFM1 -0,496832922 -ATP6V1G1 -0,496818916 -B3GALNT1 -0,496135395 -PHLPP2 -0,496077027 -TSPYL1 -0,495383913 -SERINC1 -0,49538338 -RPL15 -0,495355843 -ITFG1 -0,495195881 -PDHB -0,494999933 -RABL3 -0,494855325 -TMEM22 -0,49462563 -MCFD2 -0,494506103 -GABARAPL1 -0,494373853 -MAGEL2 -0,493987847 -VPS33B -0,493750355 -CDIPT -0,493440531 -ATP6V0B -0,493438352 -CLGN -0,493358721 -SEC23A -0,493255831 -C7orf43 -0,49286586 -ARL3 -0,492481932 -SLC12A5 -0,492392187 -LAPTM4B -0,492348426 -LOC285359 -0,492290998 -LARP1 -0,49192011 -YME1L1 -0,491725992 -RAB2A -0,491586306 -SPATA20 -0,490991626 -ASH2L -0,490785052 -PTBP2 -0,490747846 -WTAP -0,490599757 -NANS -0,490410248 -SCFD1 -0,490269997 -EPB49 -0,489916122 -TUFT1 -0,489843226 -POP4 -0,489594415 -CACNA1G -0,489236615 -PRPF19 -0,48917604 -NCOA4 -0,488872014 -C1orf216 -0,488856307 -TXNL1 -0,488777426 -AMPD2 -0,48875487 -ASL -0,488300478 -PFDN1 -0,48807629 -EXTL2 -0,488020888 -RPA3 -0,48773487 -ACVR1B -0,487609726 -ANKRD46 -0,487476076 -GRIA1 -0,48726366 -PSMB6 -0,487099126 -CAPRIN2 -0,486969775 -SRGAP3 -0,48684289 -ARPC5L -0,486786621 -PSME3 -0,486309204 -NME2 -0,486066455 -ISCA1 -0,485683262 -ZNF365 -0,485504618 -PINK1 -0,485341061 -RWDD2A -0,48504437 -EXOC1 -0,484927354 -ECE2 -0,484617735 -WDR77 -0,484600271 -AI890972 -0,484490353 -ERBB4 -0,484253264 -PSMD4 -0,483962197 -RAB6C -0,483864006 -CSTF3 -0,483798153 -NIPA2 -0,483638091 -AK5 -0,483482302 -C17orf91 -0,483141592 -INPP4B -0,482534933 -PJA1 -0,482372063 -BE551361 -0,482367089 -B4GALT5 -0,48224903 -MTX2 -0,481915827 -MGST3 -0,481667788 -TRMT11 -0,481613419 -PTPRN -0,481522612 -DNAJC12 -0,48150495 -FTSJ2 -0,481162212 -CCT8 -0,48112028 -PGAP1 -0,481030935 -SLC25A44 -0,480898127 -AMIGO2 -0,480319409 -SCAMP1 -0,480275681 -RBKS -0,480222 -SYN1 -0,48014199 -APEX1 -0,479680328 -AL157484 -0,4790893 -PAK3 -0,479026618 -SLC25A13 -0,478484409 -EIF1B -0,478403329 -DLAT -0,478235597 -AI375694 -0,47804406 -PMS2L1 -0,477748782 -DYNC2LI1 -0,477528415 -RANBP9 -0,477445784 -PTPN20A -0,476653786 -ZMYM4 -0,476508652 -UQCRQ -0,476353248 -EXOSC7 -0,476299374 -NDUFB3 -0,476207507 -LCMT1 -0,476121484 -ZNF547 -0,47597802 -TBCA -0,475802982 -MAPK8IP3 -0,475554385 -N80935 -0,475378775 -SLC4A3 -0,475327531 -AASDHPPT -0,475086681 -CAND2 -0,475049952 -CXorf40B -0,474988185 -FXYD6 -0,47456179 -RNF10 -0,474499733 -ELOVL4 -0,474412575 -AAK1 -0,474378982 -SEH1L -0,474159291 -PTPRU -0,473978747 -LPGAT1 -0,473432618 -VPS24 -0,473360696 -MCF2 -0,473341916 -FAR2 -0,473007144 -CKMT1A -0,472884518 -TMED3 -0,472883274 -RNASEH1 -0,47283341 -NDUFA3 -0,472657747 -GLS -0,472644869 -FAM168A -0,472617309 -KLHDC10 -0,472577269 -GLRX5 -0,472478522 -SYT17 -0,472292582 -PAM -0,472018566 -CLTB -0,471770785 -COPS2 -0,470912718 -DDA1 -0,470419616 -PCSK2 -0,470372976 -SLC25A6 -0,470332168 -TPI1 -0,470300584 -MECR -0,47026417 -ORC4L -0,47025895 -ITPR1 -0,470228063 -HMG20A -0,470060529 -GNB5 -0,470039178 -TMEM208 -0,469963608 -NCAPG -0,469752447 -GLRB -0,469638821 -ATP6V1D -0,469577982 -AKAP11 -0,469501191 -SH3GL2 -0,46948768 -NISCH -0,469445416 -SIPA1L1 -0,469275377 -PFKP -0,469125064 -LYRM4 -0,469088537 -SLC4A1AP -0,46898494 -AP2A2 -0,468669242 -CX3CL1 -0,46850557 -WBP11 -0,468444743 -LASP1 -0,468444317 -GOT1 -0,468375399 -C6orf120 -0,468133996 -SPAG7 -0,468070563 -SERGEF -0,467688975 -TFB2M -0,4675501 -AP3B2 -0,467537408 -PAFAH1B1 -0,467362101 -BPGM -0,467130793 -CRAT -0,466839519 -DDX1 -0,466770911 -ADAM23 -0,46652833 -ASB6 -0,466473575 -PCDHA1 -0,466456945 -TUSC3 -0,465574044 -TCEA2 -0,465512943 -SMARCA4 -0,4653413 -DAPK1 -0,465142929 -DBNDD1 -0,464965333 -NDUFC2 -0,464959656 -IDH3B -0,464778307 -CDC37L1 -0,464692992 -WDR11 -0,464429092 -CD200 -0,464378251 -TUSC2 -0,464289641 -IRGQ -0,464009317 -CALY -0,463919598 -NNT -0,463872117 -MSH2 -0,463745236 -GYG1 -0,463657489 -FAM134C -0,463380379 -RTN2 -0,463379977 -RBM12 -0,463289569 -SYNJ1 -0,463207762 -ABCA5 -0,462881594 -ENTPD4 -0,462777994 -MAP2K4 -0,462732144 -AIMP2 -0,46256199 -PITPNA -0,462484131 -BNIP3 -0,461982272 -COPS5 -0,461956463 -BRE -0,461910476 -MIR21 -0,461667267 -ATP5S -0,46152488 -SIN3B -0,461515059 -NAT10 -0,461457105 -MTCH2 -0,461117099 -ACHE -0,461032229 -PSD3 -0,46079613 -UCHL3 -0,460466303 -SMPX -0,459975528 -USP11 -0,459753441 -RNF187 -0,459566796 -AAGAB -0,458932639 -ENY2 -0,458770966 -NDEL1 -0,458614173 -FAM184A -0,458384449 -TOX4 -0,458204483 -SLC25A15 -0,458110832 -SACM1L -0,458050139 -ADARB1 -0,458034616 -SPHK2 -0,457781426 -CES2 -0,457687554 -CYFIP2 -0,457201169 -KPNA2 -0,457034156 -ACTR1A -0,456856222 -SLC25A22 -0,456321526 -DPYSL3 -0,456025294 -PRKAR1A -0,455984698 -SIDT1 -0,455560984 -TIPRL -0,455474112 -EIF5 -0,455347544 -C16orf58 -0,455176502 -RAB7A -0,454946879 -MFSD6 -0,454914435 -NDUFS2 -0,454605666 -APOOL -0,454580027 -GNB1 -0,454284789 -SARS -0,454282127 -PIK3R3 -0,454240907 -SERINC3 -0,454097365 -ST3GAL5 -0,45407104 -DHRS11 -0,453695947 -NEDD8 -0,45367218 -RAB15 -0,453664346 -HSPA13 -0,453577406 -OLA1 -0,453153228 -C3orf18 -0,45312023 -AF131844 -0,453027105 -C12orf52 -0,452914604 -ACBD3 -0,452894377 -PCIF1 -0,452240197 -BMP2K -0,451224584 -TSPYL5 -0,450674174 -SEC63 -0,450642641 -C7orf44 -0,450408444 -PWP1 -0,450360796 -SLC25A14 -0,45012674 -SYP -0,449768016 -PRKCB -0,449564151 -KIF2A -0,449276369 -PEX26 -0,449100108 -SDHA -0,448617251 -PITRM1 -0,448602767 -PPA2 -0,448269554 -MAN2A2 -0,448177121 -FAM49A -0,448170721 -KCTD9 -0,448062861 -REEP2 -0,44801948 -NDUFS3 -0,447803075 -CHGA -0,447356315 -UBE2E3 -0,447311178 -LOC595101 -0,447006376 -RNF170 -0,446698112 -TMCO1 -0,446651514 -PCCB -0,446640741 -RAB1A -0,44645249 -ATP1A1 -0,446309137 -KIAA1045 -0,446174802 -CASD1 -0,445992918 -C3orf37 -0,445975885 -RAD17 -0,445659766 -BBS4 -0,445631347 -TBC1D19 -0,445509157 -TSG101 -0,445289202 -DKK3 -0,445181251 -KCNQ2 -0,444911548 -EIF4E -0,44477948 -LOC100134209 -0,444742688 -OSTF1 -0,444651424 -PPCS -0,444330494 -ATP13A2 -0,443924538 -DHRS7B -0,443866868 -TSN -0,443785273 -AI201594 -0,443780197 -UBE2J1 -0,443536878 -C12orf51 -0,443320039 -INPP5F -0,44324612 -KIAA0391 -0,443138749 -NDUFB8 -0,442168118 -COX8A -0,442151263 -PLCB4 -0,442128902 -UQCRC1 -0,442055114 -RNMT -0,442010619 -PSMB4 -0,441631296 -ATP9A -0,441570839 -COMMD8 -0,441419712 -STX7 -0,441415012 -UQCRFS1 -0,441387219 -ARMC8 -0,441335025 -USP33 -0,441131902 -SC4MOL -0,441051846 -AVL9 -0,440604375 -CORO1C -0,440555184 -ATP6V0A1 -0,440500219 -AKTIP -0,440321706 -C11orf49 -0,440065839 -ACCN1 -0,439959618 -DYNC1H1 -0,439954428 -RTN4 -0,439926435 -IFT52 -0,439664934 -ARIH1 -0,439616652 -SLC23A2 -0,439279622 -FDPS -0,439263979 -ZW10 -0,439088192 -C6orf211 -0,438493952 -CAPZA2 -0,438442617 -TRIM9 -0,43841496 -PANK2 -0,438226487 -SLC25A36 -0,437878589 -TM7SF2 -0,437751686 -GPD1L -0,437274057 -TM2D3 -0,437156245 -TBC1D22A -0,436837159 -AFF2 -0,436678505 -PSMA4 -0,43652406 -SCAPER -0,436328183 -KPNB1 -0,43624217 -C8orf33 -0,436164892 -RRAS2 -0,435924543 -PNMA1 -0,435862986 -DRD2 -0,435854058 -CCDC92 -0,435740221 -CYB5B -0,435703661 -DNM1L -0,435497666 -FAM98A -0,435109538 -CYCS -0,43500707 -UBE2B -0,434857087 -DCTPP1 -0,434751269 -ENC1 -0,434576571 -SAP18 -0,434463135 -MED7 -0,43446171 -UBXN6 -0,433506891 -MAEA -0,433493136 -C20orf27 -0,433220759 -ARFGEF2 -0,4331108 -FKBP9 -0,433030189 -COQ10B -0,432955202 -SNRNP25 -0,432902395 -PHKB -0,432809153 -CETN2 -0,432732838 -PIK3R4 -0,432641256 -EFR3A -0,432263211 -FAM162A -0,432255742 -LOC732160 -0,432226821 -SRPK2 -0,432044566 -USP9X -0,431489845 -DENND2A -0,431031563 -PPP2CA -0,430950806 -CHST1 -0,430892555 -OSBPL9 -0,430720865 -TPM3 -0,430527364 -UGP2 -0,430314768 -AL049387 -0,430134526 -ARHGDIG -0,429952838 -GPR161 -0,429932801 -HGSNAT -0,429440496 -TCEAL4 -0,429402449 -KHDC1 -0,429285977 -SPATA7 -0,428924113 -NIPSNAP3B -0,428922472 -NHP2L1 -0,42870798 -BZW2 -0,428685674 -BZW1 -0,428658261 -ABCF3 -0,428526247 -PEX19 -0,428349422 -POLR2K -0,42820853 -FAM134B -0,428156057 -TUBGCP4 -0,428150919 -CSNK2A1 -0,427824997 -PPP2R5D -0,427719013 -CEND1 -0,427667723 -RNF11 -0,427514623 -EBNA1BP2 -0,427275229 -SDHC -0,42690156 -ATP6AP2 -0,426823582 -MAPK1 -0,426681157 -YTHDC2 -0,425950246 -ACTR3B -0,425721173 -LRRC47 -0,424928312 -ANO10 -0,424906321 -MORF4L2 -0,424702281 -NAE1 -0,424669605 -GRSF1 -0,424576498 -UBE3C -0,42455123 -RRM1 -0,424268285 -IARS2 -0,424201991 -HINT1 -0,423973896 -B4GALT7 -0,423964657 -OBSL1 -0,423852756 -RPH3A -0,423713255 -PTPRM -0,423526608 -TRAP1 -0,423405292 -GSTO1 -0,423136683 -PGK1 -0,423107749 -KCTD2 -0,423033005 -AKAP9 -0,423014145 -KIAA0090 -0,422971022 -NIF3L1 -0,422805913 -SAE1 -0,422487927 -TRAPPC4 -0,422454822 -UBE3B -0,422322842 -MRPL13 -0,422291395 -ARF1 -0,422218883 -NCKAP1 -0,421739152 -COX11 -0,421717769 -XPA -0,421552598 -FKBP11 -0,421544606 -ZFAND1 -0,42136139 -RUSC1 -0,421250909 -PSMC2 -0,42099626 -MCM4 -0,420976269 -HEXA -0,420954607 -PDE4A -0,420795908 -VPS45 -0,420785909 -OGFOD1 -0,420640442 -ADPGK -0,420505817 -AP2M1 -0,420467875 -PSMD5 -0,420139323 -PGRMC1 -0,420109613 -CLASP2 -0,419942702 -CAMTA1 -0,419843296 -COX5A -0,419753275 -BCAP29 -0,419678508 -C21orf59 -0,419586484 -INSIG1 -0,419347593 -NDUFAF1 -0,419256514 -SNCG -0,419205938 -NCAN -0,418993508 -SLC24A3 -0,418714364 -MAP2K1 -0,418679322 -BRCC3 -0,418660516 -MYCBP2 -0,418420128 -PREPL -0,41818051 -TUFM -0,418149804 -LYRM2 -0,41810337 -ORC3L -0,417994092 -TSR2 -0,417894679 -SLC41A3 -0,41774061 -DZIP3 -0,417712026 -MRPS11 -0,417644175 -B4GALT6 -0,41761846 -CHD5 -0,417472 -TUBA1C -0,417351982 -OTUB1 -0,41729395 -DCAF6 -0,417154254 -UQCR10 -0,417021115 -BEX4 -0,416948363 -RTN3 -0,416868526 -GOLT1B -0,416408995 -MRPL3 -0,416396676 -DDX19A -0,416375948 -C4orf41 -0,416356919 -SEMA3G -0,416349944 -TUBA3D -0,416216957 -B4GALNT1 -0,415958605 -TOR1A -0,415819164 -SUPT16H -0,415597727 -ACTR3 -0,415469056 -ABCB9 -0,415410201 -SERF1B -0,415262572 -PSMC6 -0,415072747 -GALNT2 -0,414525722 -ARF5 -0,414370994 -TCEB1 -0,414262524 -FEN1 -0,414164817 -HS2ST1 -0,413801139 -FBXL15 -0,413238338 -ANAPC10 -0,413161353 -MAPK10 -0,413048251 -FGF12 -0,412576909 -GTF2B -0,412561968 -CALM3 -0,412474461 -C12orf5 -0,412385409 -BTRC -0,412323302 -UBXN8 -0,411884422 -G6PC3 -0,411853401 -MARK4 -0,411850043 -SDHB -0,411814414 -FXC1 -0,411804756 -KIAA1467 -0,411406746 -COL4A3BP -0,411372338 -MADD -0,411317373 -SLC25A11 -0,411257994 -APBB3 -0,411242683 -LDHB -0,411172229 -ENTPD3 -0,410988615 -CAMK2B -0,410817586 -C15orf24 -0,410807275 -RAB11FIP5 -0,410722406 -C18orf1 -0,410410534 -IL13RA2 -0,410393436 -TMEFF1 -0,40994415 -TAX1BP1 -0,409905258 -ABHD11 -0,409662969 -SETD4 -0,409479623 -NARS -0,409352949 -LOC441259 -0,409193342 -SMAD2 -0,408937637 -MAGEH1 -0,408820062 -LPIN2 -0,408744346 -WRB -0,408371938 -HSPB11 -0,408269901 -COMMD9 -0,407620354 -RMND1 -0,407542555 -RBP1 -0,407484296 -TSPAN7 -0,407465467 -YKT6 -0,407243851 -ATP5L -0,407238078 -STAT1 -0,407123963 -SPTAN1 -0,407085674 -SLBP -0,407034029 -FAM115A -0,407018502 -ATP1B1 -0,407007242 -GIN1 -0,406994648 -SLC25A4 -0,406703055 -RPAP3 -0,40653888 -ELAVL4 -0,406510215 -LDHA -0,406394191 -GABRG2 -0,406143723 -ACOT1 -0,406088493 -LZTFL1 -0,406077259 -LARP4 -0,406073312 -PTPRG -0,405852123 -DIRAS2 -0,405793372 -SNCB -0,405789504 -CDS1 -0,405765281 -ARL2BP -0,405758176 -BCL2L13 -0,405729545 -STAT4 -0,405634359 -C17orf75 -0,405632179 -ELAVL2 -0,405590653 -DNM3 -0,405342092 -SNX16 -0,404866663 -TACO1 -0,40485549 -HPGD -0,404805074 -CHMP2B -0,404775945 -DPP8 -0,404495701 -SYBU -0,403649563 -CHP -0,403478973 -GTF2H5 -0,403475179 -PPP2R5B -0,403191055 -TRAK1 -0,402996995 -ACSL4 -0,402921692 -RABGAP1L -0,402883713 -PSMB3 -0,402864552 -ASTN1 -0,402784524 -TIMM23B -0,402679864 -NDUFC1 -0,402669713 -GPM6A -0,402645229 -NCDN -0,402391637 -TMEM183A -0,402206694 -LACTB2 -0,402125728 -SFPQ -0,401934429 -SLC1A4 -0,401903736 -LOC731884 -0,401617561 -TTC3 -0,401599425 -APBA1 -0,401587582 -FAM20B -0,401527926 -ISOC1 -0,401479145 -TMEM70 -0,401425176 -GLUD1 -0,401204073 -NDUFA4 -0,401152135 -SHANK2 -0,401076931 -NDUFA6 -0,400922451 -FAM128A -0,400907344 -TSNAX -0,400758374 -BLCAP -0,400561763 -WASF3 -0,400514139 -MTMR6 -0,400412018 -CBARA1 -0,399961135 -SMCR7L -0,399645568 -REXO2 -0,399637796 -ASTN2 -0,399013865 -FBXO31 -0,398919379 -MRPS10 -0,398754479 -GNAL -0,398117434 -RDH11 -0,398104472 -ANKH -0,398086916 -EPHA5 -0,397910595 -DPY19L2P2 -0,397861593 -NRXN1 -0,39777997 -FOXA1 -0,397622781 -AGGF1 -0,397583973 -CLCN6 -0,397581706 -PRKAG1 -0,397496639 -GRM5 -0,397456403 -BCAT1 -0,397331444 -MAP1LC3B -0,397317027 -HMGCL -0,397130437 -IFIT5 -0,397045055 -FAM82B -0,397007464 -TMEM189-UBE2V1 -0,39671729 -TMEM160 -0,396535704 -PIGZ -0,396390486 -VDAC2 -0,3962914 -BCAP31 -0,396227306 -CUL2 -0,395939867 -C5orf30 -0,395902062 -VAMP4 -0,395520757 -CLTA -0,395495699 -NOS1AP -0,395452681 -YWHAH -0,395414553 -AGL -0,39537715 -PPIA -0,395286888 -POLR2E -0,395239973 -FAM190B -0,395231307 -CAND1 -0,395218949 -DIABLO -0,395167608 -FAM155A -0,395099838 -FAM174B -0,394929763 -ABCA11P -0,394841999 -LMF1 -0,394801997 -EIF3I -0,394774336 -RRAGA -0,39363313 -SLC25A5 -0,39336993 -BTBD3 -0,393323586 -SLC38A6 -0,393193457 -TSPYL4 -0,39289974 -NDUFA8 -0,392898828 -ERI3 -0,392853573 -CDH11 -0,392815946 -VPS11 -0,392712183 -RPP40 -0,39270293 -SMS -0,392616216 -USP4 -0,39251437 -RAN -0,392486577 -SYT11 -0,392234251 -SEC23IP -0,392233152 -SUPV3L1 -0,392124663 -TOX3 -0,392048323 -OSBPL3 -0,391742979 -ATP5J -0,391738382 -APC -0,391687772 -EIF2AK2 -0,391678642 -MPPE1 -0,391534871 -CHD3 -0,391021702 -BE858194 -0,390954653 -GPN2 -0,390821549 -TMEM97 -0,39059622 -BRF2 -0,390477924 -NSDHL -0,390017568 -LOC654342 -0,389476483 -SATB1 -0,389035394 -RPP14 -0,388984247 -C16orf68 -0,388858051 -PHF14 -0,388842446 -CKAP5 -0,388699527 -MMADHC -0,388406258 -MEST -0,388313548 -UQCRH -0,387974488 -GBAP1 -0,387823169 -PMPCA -0,387778282 -TMEM41B -0,387668262 -SCLY -0,387620138 -OXA1L -0,387520115 -CLPX -0,387517816 -EML1 -0,387443167 -DPP6 -0,387318033 -FBXO3 -0,387294212 -GAPDH -0,386769027 -ATP6V1C1 -0,386766958 -PRAF2 -0,386484628 -NAA35 -0,386425969 -EIF4H -0,386302469 -SGSH -0,386196526 -CLCN3 -0,386084887 -SMARCA1 -0,385880429 -FAM158A -0,385760557 -AP3S2 -0,385712457 -EIF1AX -0,385367803 -RNF115 -0,385287305 -GPI -0,385266179 -SEC62 -0,385020013 -G3BP2 -0,384968143 -NDUFV1 -0,38487232 -C19orf42 -0,384758261 -BEND5 -0,384699839 -KCNAB2 -0,384620267 -EVL -0,384619104 -MTMR9 -0,384460721 -SIRT3 -0,384239932 -CNIH -0,383916854 -TOLLIP -0,383913386 -C11orf2 -0,383735535 -NUDCD3 -0,383703548 -MED4 -0,383545823 -RABGEF1 -0,38353381 -PTN -0,383407974 -GBF1 -0,383365739 -C1orf163 -0,383317238 -LOC100129361 -0,383315417 -CUL4B -0,383032231 -OXR1 -0,382758654 -TRIM33 -0,382726006 -GPC5 -0,382713696 -C11orf51 -0,382673891 -MAN1C1 -0,382595078 -FGF9 -0,382294616 -SPOCK2 -0,382267861 -GLMN -0,382038722 -MPP1 -0,381567886 -KIF21B -0,381555674 -RND1 -0,381481938 -PEX1 -0,381462705 -C2orf34 -0,381417191 -OTUD3 -0,381344145 -MSRB2 -0,381206334 -CCDC85B -0,38118283 -RGS3 -0,380621769 -SERPINI1 -0,380596066 -C14orf2 -0,380470075 -IDH3G -0,380458518 -POLR2C -0,380378788 -CTNNA2 -0,380377628 -XRCC6 -0,380295972 -EIF3A -0,380281294 -CRBN -0,380214781 -RPS6KC1 -0,3801397 -NUDT2 -0,380057201 -GOLPH3L -0,379823471 -CSNK1A1 -0,379812095 -NDUFB2 -0,379757693 -FTO -0,37940886 -SLC6A15 -0,379271656 -PCP4 -0,379256762 -NIT1 -0,37912136 -CCNC -0,378699092 -DGKB -0,378485235 -RANBP6 -0,377965444 -DNAJC8 -0,377764456 -MAPRE2 -0,377675379 -ARFGAP2 -0,377574006 -BDNF -0,377511436 -HSD17B10 -0,376728332 -AKAP7 -0,376531212 -EHD1 -0,376479944 -PSMD10 -0,376243528 -FABP5L2 -0,376090187 -VAMP7 -0,376017526 -WBP4 -0,375749974 -MAP1B -0,375485017 -SMPDL3A -0,375390185 -GPR89C -0,375362209 -SEPT2 -0,37512019 -GPX3 -0,374915078 -AARSD1 -0,374664572 -HSPA9 -0,37466397 -MAP1A -0,374598439 -C16orf62 -0,374459363 -CARKD -0,374388504 -ASS1 -0,374197776 -WDR12 -0,374046313 -ABHD14A -0,37397421 -SPIN2B -0,373568971 -RAB6A -0,373528481 -PTPRF -0,373483075 -RRAGB -0,373427062 -STK39 -0,373365187 -COX7B -0,373307822 -PDCL -0,373110957 -ATP2A2 -0,373066228 -PPM1E -0,37285382 -TRMT61B -0,372798595 -C21orf33 -0,372766056 -MGMT -0,372730061 -LPHN3 -0,372647138 -WBP2 -0,372385809 -ACSBG1 -0,372296169 -PGRMC2 -0,372287654 -LRRC20 -0,372239514 -AGA -0,372171162 -NRCAM -0,372117405 -FUT9 -0,372053568 -C22orf28 -0,371916518 -MRPS15 -0,371914782 -UFM1 -0,371876489 -CAMK2G -0,371790847 -AVPI1 -0,371692415 -MAST2 -0,371637676 -PPP1R7 -0,371553142 -EEF1A2 -0,371514176 -ATP5D -0,371416456 -EEF1E1 -0,37139203 -NLRP1 -0,371368381 -PMS2CL -0,371209965 -CDK5R1 -0,371120209 -C2orf72 -0,371108998 -OAZ2 -0,3710748 -AL109698 -0,37073584 -INPP4A -0,370700597 -ERH -0,370513944 -CAMK1G -0,370474818 -MED24 -0,370430566 -DMXL1 -0,370287216 -COMMD4 -0,370258812 -NOMO3 -0,370043447 -MORF4 -0,369691968 -ZNHIT3 -0,369651044 -GDPD5 -0,369635923 -CUL5 -0,369519961 -AP1B1 -0,369511443 -YARS -0,369387873 -ABHD10 -0,36913324 -KCNB1 -0,369083149 -SKP1 -0,369015624 -FBXO28 -0,368924883 -ATR -0,368436696 -TMED2 -0,368132686 -ARPC1A -0,367983188 -PHYH -0,367958422 -MRPL22 -0,367879083 -SRRD -0,367868238 -WDYHV1 -0,367821841 -EIF3CL -0,367732775 -HMGB3 -0,367450086 -DENND1B -0,36732795 -ALDH5A1 -0,367318431 -CCNA1 -0,367103911 -FAM134A -0,367014983 -DZIP1 -0,366778091 -WASF1 -0,366602553 -ATXN3 -0,366426778 -CCDC25 -0,3658102 -ERP29 -0,365799413 -IVD -0,365499555 -SNX24 -0,365222253 -CDK20 -0,365176415 -TTC9 -0,365148586 -RBM8A -0,36488846 -AMACR -0,364562114 -TBPL1 -0,364450426 -PTPMT1 -0,364434415 -CANX -0,364232908 -ELAC2 -0,364131757 -EIF2S1 -0,364109368 -AKR1B1 -0,363915593 -ACADM -0,363858719 -RGS16 -0,363795844 -SLC20A1 -0,363602798 -MTUS2 -0,363384151 -ZMIZ2 -0,363364816 -NDUFS4 -0,363146027 -AW242701 -0,363104323 -SNAPC3 -0,363053639 -ENOPH1 -0,362868334 -LYRM1 -0,362706602 -TRMT12 -0,362561085 -BAALC -0,362539013 -CHMP1B -0,362404908 -ATP1A3 -0,362300724 -TOMM20 -0,362192747 -PEX14 -0,362047536 -EIF2AK1 -0,361934247 -CNNM2 -0,361790716 -PPOX -0,361753445 -TAC1 -0,361655557 -GLRX3 -0,361266708 -OBFC1 -0,360197329 -MFN2 -0,360036589 -DGCR14 -0,359808857 -FAM175B -0,359691136 -PARP2 -0,359639462 -GPR107 -0,359495249 -TUBGCP5 -0,35920098 -ENSA -0,359186957 -UMPS -0,358973056 -SSBP1 -0,358916914 -PFDN2 -0,358707301 -IFFO1 -0,35859667 -CCT2 -0,358497035 -PSMA5 -0,358414139 -ZC3H15 -0,358397302 -EPHX2 -0,358269729 -CALB1 -0,358259257 -POP7 -0,358253841 -MRPL12 -0,357874032 -DFNA5 -0,357815106 -PIAS1 -0,357740062 -ARL4C -0,35770713 -HRAS -0,357592893 -CEP68 -0,35754909 -SNRPA1 -0,357535253 -SCP2 -0,357518758 -C4orf27 -0,356816465 -TMEM185B -0,35662055 -SPAG16 -0,356585241 -ESYT1 -0,356493695 -PTP4A1 -0,356347412 -PDLIM2 -0,356333479 -MSRA -0,355999453 -UAP1 -0,355870622 -CDK16 -0,355785531 -MBOAT7 -0,355761708 -FARSA -0,355610517 -MRPS7 -0,355424517 -EPHB2 -0,355389176 -LOC729991-MEF2B -0,355378273 -PDHA1 -0,355252318 -ACTL6B -0,355166654 -SAR1A -0,355144478 -KDM1A -0,355067715 -PRDX3 -0,354963773 -ETF1 -0,354759299 -ARMCX2 -0,354758912 -IQSEC1 -0,35395949 -TIMM13 -0,353925241 -AP2B1 -0,353904118 -STYK1 -0,353863363 -CDK7 -0,353806664 -DLG3 -0,353783905 -SEPHS2 -0,353722454 -MTOR -0,353463273 -PPIH -0,353351383 -GRPEL1 -0,353254529 -C9orf91 -0,353075824 -RGS17 -0,353023569 -NTSR1 -0,352789658 -HNRNPH2 -0,352751195 -HCCS -0,3526918 -C2orf3 -0,352661516 -TFDP2 -0,352647453 -GOSR2 -0,352396188 -PSMB1 -0,352279045 -MPI -0,35224609 -DUSP26 -0,351953212 -HERC1 -0,351631367 -SORD -0,351295095 -TUBB2B -0,351140866 -LPCAT4 -0,351128323 -CFL1 -0,351124653 -ARPP19 -0,350935095 -MTMR4 -0,350923479 -COX7A2 -0,350878835 -PGM1 -0,350865278 -RHOQ -0,350802567 -CCDC53 -0,350756677 -UQCRB -0,350742301 -NAPA -0,350657124 -CSDC2 -0,35061274 -BECN1 -0,350596093 -GYG2 -0,350535323 -GPKOW -0,35045328 -FXYD7 -0,350387292 -CYLD -0,349973469 -CSPG5 -0,349825086 -TTC15 -0,349816074 -ILF2 -0,349761198 -STOML2 -0,349586681 -CACNB2 -0,349516102 -VARS -0,349372141 -ZSCAN18 -0,349241937 -PTRH2 -0,349224021 -P2RX5 -0,349175679 -RALB -0,349042784 -NUBPL -0,348899542 -NCBP2 -0,348786336 -DKFZp434H1419 -0,348772873 -UFSP2 -0,348370783 -ARHGEF17 -0,348050229 -FXR2 -0,34801331 -INSIG2 -0,347755165 -XRCC5 -0,347746659 -CLTCL1 -0,34759935 -TMEM177 -0,347585446 -VAMP2 -0,347189398 -EML2 -0,347084746 -SNUPN -0,346850632 -GPX4 -0,346688538 -RASA1 -0,346685342 -USP46 -0,346590476 -LSM5 -0,346546029 -SEC31A -0,34652486 -PALM2-AKAP2 -0,346447335 -CKAP2 -0,346385113 -ELOVL5 -0,346375127 -PMS2L3 -0,346133275 -PAQR3 -0,346117871 -ST8SIA3 -0,34604187 -FDX1 -0,34603415 -C12orf4 -0,345989709 -COQ7 -0,345988262 -UROD -0,345987158 -RPE65 -0,345902642 -DCK -0,345889475 -RARS -0,345819092 -CAPZA1 -0,345775372 -NRN1 -0,345693574 -RNF7 -0,345545425 -ABAT -0,345474072 -CRY2 -0,345467057 -HR -0,345290796 -CACNA2D3 -0,345213407 -TWIST1 -0,345148814 -P4HTM -0,345112277 -GDI1 -0,344731063 -GRIA3 -0,344721718 -D4S234E -0,344715573 -TMEM151B -0,344385728 -MPHOSPH6 -0,344298044 -PYGB -0,344201683 -MARCH6 -0,344086188 -AL050136 -0,343680587 -NDUFS6 -0,343667551 -TRAPPC9 -0,343555476 -PYGL -0,343533875 -EFNB3 -0,343417492 -SCD -0,343398039 -TFG -0,342863204 -PPFIA3 -0,342761025 -SENP6 -0,342750174 -KCMF1 -0,342689973 -GNAS -0,342684217 -MAPK6 -0,342588157 -PRMT5 -0,34246621 -SEPT11 -0,342460355 -MEIS3P1 -0,342265108 -FABP3 -0,3421554 -YIPF6 -0,3420929 -FABP6 -0,342074193 -SRSF9 -0,341825092 -AP1AR -0,341737984 -PKNOX2 -0,341609179 -PAK6 -0,341535575 -PRKAA1 -0,341378959 -UBA3 -0,34130955 -OAZ1 -0,341251276 -EID1 -0,340941987 -MRPS28 -0,340842312 -AA890010 -0,340724739 -OSBP -0,340497775 -ATP6V0C -0,34047911 -ARHGAP24 -0,340414643 -PNKP -0,340118439 -PSMD7 -0,340085658 -IPO9 -0,340071575 -ARF4 -0,339993296 -TERF2 -0,339818219 -SRSF2 -0,339525933 -PSMC5 -0,33950993 -TM9SF1 -0,339389717 -ACAT2 -0,339093022 -CDK8 -0,33909169 -KIAA0196 -0,338987444 -TFPT -0,338941882 -TRPC4AP -0,338718194 -TUBG1 -0,338211067 -SCN2B -0,338080627 -MTHFD1 -0,338071854 -ATPAF2 -0,338050158 -IGSF1 -0,337997383 -RGPD6 -0,337877048 -C16orf45 -0,33773508 -C10orf76 -0,337659307 -UBE2A -0,33762595 -PQLC1 -0,337612976 -SOD1 -0,337454918 -ARPC2 -0,337418781 -MEMO1 -0,33728488 -CSDE1 -0,337036578 -PHYHIP -0,336992273 -LYPLA1 -0,33698776 -NDUFA1 -0,336883322 -MARCKSL1 -0,336747008 -DCTN1 -0,336745427 -COX6A1 -0,336728807 -DPM1 -0,336614034 -ELP3 -0,336602956 -LOC653566 -0,336555692 -COX7BP1 -0,336528019 -CAPZB -0,336348777 -DCUN1D4 -0,335942405 -UCHL5 -0,335933871 -PSIP1 -0,335684272 -MRS2 -0,335589123 -RABGAP1 -0,335570544 -KCNA6 -0,335454989 -RAC1 -0,335429141 -ZMYM2 -0,33542626 -MRPL17 -0,335371398 -MLF1 -0,335274724 -RFC3 -0,33507418 -ARMCX3 -0,335005795 -GMDS -0,334931775 -KIAA0317 -0,334922749 -CAMSAP1 -0,334678333 -LSG1 -0,334628714 -PNPO -0,334625052 -THOC5 -0,334532053 -C11orf58 -0,334154436 -MTCH1 -0,334038037 -KAL1 -0,333848755 -OMG -0,333590731 -KLHL7 -0,333537148 -TTPAL -0,333489991 -GLA -0,333336937 -SEZ6L2 -0,333262252 -SNURF -0,333035272 -ARL6IP1 -0,332988884 -BFSP1 -0,332976059 -MAPKSP1 -0,332894473 -HABP4 -0,332672498 -SLC8A2 -0,332645114 -CKAP4 -0,332543738 -NPM1 -0,332250102 -CLSTN3 -0,332157745 -RUSC2 -0,33210981 -RCHY1 -0,331805148 -CACNA1D -0,331681156 -ZFAND5 -0,331302172 -TACC2 -0,331046487 -CHCHD3 -0,331008486 -RGS2 -0,330792786 -LDOC1 -0,330775706 -BTN2A1 -0,33075204 -WDR45 -0,330593865 -W87688 -0,330499179 -YWHAQ -0,330473094 -RAB3GAP2 -0,33029144 -HTRA2 -0,330240669 -SNRPD1 -0,330240562 -ANXA7 -0,330030639 -KIAA1024 -0,329770804 -RAD51C -0,329735785 -PRPF18 -0,329474331 -CCT6B -0,329361737 -ABCD3 -0,329205796 -PARN -0,329139621 -APOL2 -0,328983174 -MRPS18A -0,32863432 -RASL10A -0,328581006 -COG8 -0,328398026 -ZNF512B -0,327877848 -ATP5H -0,327758416 -PRDM4 -0,327710757 -TSPAN3 -0,327644045 -EPB41L3 -0,327416874 -APLNR -0,327394979 -TFR2 -0,327337619 -GADD45A -0,327012981 -POLR3F -0,326871651 -FASTKD3 -0,326789822 -TCERG1 -0,326746174 -VPS41 -0,326459968 -C17orf101 -0,325979143 -EXOC3 -0,325763291 -SLC25A17 -0,325666279 -GDAP1L1 -0,325526797 -HCFC1R1 -0,325022815 -SF3B5 -0,324878766 -TEX10 -0,324812522 -PSMA7 -0,324673715 -TCTN3 -0,324389244 -NOVA1 -0,32437578 -RABEPK -0,324366299 -ALG5 -0,324335095 -ENOSF1 -0,32427768 -SH3BGRL3 -0,32409913 -CTNND2 -0,324002004 -NKRF -0,323983769 -SLC6A1 -0,323833407 -MAPK1IP1L -0,323722226 -RAB22A -0,323713658 -GRP -0,323354345 -SDS -0,323335387 -IBTK -0,323304602 -CARS -0,322679359 -WWP1 -0,322463311 -ARL8B -0,322442301 -SLC19A2 -0,322361872 -F8A3 -0,322202521 -LPHN1 -0,322183082 -SMARCD3 -0,322148361 -GPN1 -0,322024809 -FAF2 -0,322014431 -SLC35B1 -0,321878066 -MPV17 -0,321698226 -TOM1 -0,321634922 -NEDD4L -0,321518057 -MRFAP1L1 -0,321393672 -C6orf62 -0,321303598 -POLR3B -0,321247444 -HTR2A -0,321189596 -CUL3 -0,321141566 -PSMD9 -0,321108014 -LRP3 -0,32099653 -TMEM62 -0,320873847 -PLS3 -0,320803014 -SUMO1 -0,32076762 -DLG4 -0,320617015 -ANKRD17 -0,320557554 -ARFIP2 -0,320500236 -HMGN4 -0,320196335 -PRKAG2 -0,319945607 -STAR -0,319749743 -NF1 -0,319726773 -ATOX1 -0,31967306 -UBE2M -0,319629201 -NDRG3 -0,319446308 -SNPH -0,319396594 -TPD52 -0,319178712 -PLK2 -0,319120325 -C1QBP -0,318975829 -SRSF8 -0,318843616 -USP22 -0,318806098 -GPD1 -0,318728943 -MAPK8IP2 -0,318691894 -USP20 -0,318610382 -RPA2 -0,31845096 -CCPG1 -0,318358561 -NQO2 -0,318256129 -POLR3C -0,318231923 -HBXIP -0,318079181 -MRPS31 -0,318018334 -SNRPB2 -0,31801084 -CACNG3 -0,317104885 -CCNE1 -0,316783937 -NDUFAF4 -0,316755785 -GRK6 -0,316405946 -ZER1 -0,316363024 -CHCHD7 -0,316179658 -C20orf29 -0,315860291 -AI693193 -0,315746456 -TPMT -0,315745725 -TPPP3 -0,315557058 -CTH -0,315210231 -HSDL2 -0,31516145 -MAPRE3 -0,314964867 -NLE1 -0,314918022 -ARHGEF4 -0,314777145 -STK19 -0,314737564 -AW503390 -0,314280211 -KIAA1279 -0,314104435 -CA14 -0,313849822 -CYP2E1 -0,313441486 -FHL1 -0,313417456 -MYL6B -0,313075964 -PACRG -0,3129322 -SCN2A -0,312912414 -POLR3G -0,312898745 -MED6 -0,312862133 -PCSK1N -0,312861133 -FLJ10038 -0,312756044 -PHTF1 -0,312716368 -PRPF4 -0,312654478 -RPRD1A -0,312642779 -HLF -0,312545473 -MTMR1 -0,312535102 -MFN1 -0,312461722 -C1orf50 -0,312398425 -QPRT -0,312349796 -ZDHHC6 -0,31229266 -ITGAE -0,311863717 -SLC18A1 -0,311739998 -CD83 -0,311711539 -GGCT -0,311631664 -KIAA0100 -0,311503156 -OPN3 -0,311374884 -SSX2IP -0,311111099 -NUCB2 -0,31105706 -UTP11L -0,311015852 -GOLGA8B -0,310924837 -UST -0,310734373 -PRKCI -0,310493775 -AP2S1 -0,310480065 -WBSCR22 -0,310476192 -PPP3CA -0,310434457 -PDSS2 -0,310396648 -PEG3 -0,310335546 -ATP5E -0,310319916 -GABRA5 -0,310200087 -AGPAT4 -0,310173061 -PDCD10 -0,310157516 -DDOST -0,310094837 -RPL23 -0,309992315 -HOMER1 -0,309485866 -C1orf123 -0,309187816 -POLE3 -0,309012195 -DDX41 -0,308923345 -HSD17B8 -0,308824584 -GMPR2 -0,308792858 -SCARB2 -0,308695909 -DGUOK -0,308606021 -MAGEF1 -0,308535371 -FOXA2 -0,308348483 -GLS2 -0,308287643 -TBCC -0,308286536 -FBXO41 -0,308255485 -SLC12A1 -0,308214984 -PELO -0,308137793 -KCNE1L -0,30811412 -RBBP4 -0,308007454 -UBL5 -0,307720013 -KLHL12 -0,307571676 -FTSJ1 -0,307464516 -ZFYVE16 -0,307366442 -PPT1 -0,3073579 -ZC3H13 -0,307293327 -DYRK1A -0,307183877 -PHACTR2 -0,306935621 -SLITRK3 -0,306872073 -PI4KA -0,306770561 -RNPS1 -0,306364972 -RALGAPB -0,306086767 -BRP44 -0,305953308 -BNIP1 -0,305883874 -SUPT4H1 -0,305675152 -BCKDK -0,30566687 -PLAA -0,305619464 -ACTR2 -0,305363631 -PION -0,305054773 -NFU1 -0,305010295 -CCT6A -0,304801168 -KIAA0427 -0,304585348 -EHD3 -0,304533089 -FAM63B -0,304437794 -STK25 -0,304425083 -POLB -0,304419007 -MRPL35 -0,304416576 -UBE2Z -0,3043165 -GSTZ1 -0,304133065 -AP3S1 -0,30395899 -SPATS2L -0,303776395 -LOC729580 -0,303766036 -RALGAPA1 -0,303697943 -PUF60 -0,303647762 -DAP3 -0,303640732 -AHI1 -0,303570806 -UBE2NL -0,303361552 -TMEM164 -0,303165514 -DOCK3 -0,303099341 -CADM3 -0,303050893 -ZNF219 -0,302968533 -PRKAR1B -0,302898104 -DOK5 -0,302798088 -ORMDL2 -0,302372011 -ACVR2A -0,302331205 -ALDOA -0,30171568 -ATRN -0,301666345 -COX7C -0,301597748 -PRKDC -0,301229867 -GNG10 -0,300757182 -SNX17 -0,300752701 -RBMS1 -0,300466996 -AJAP1 -0,300458474 -PREP -0,300414848 -ALDOC -0,300361514 -LAMA4 -0,300246196 -PI4KAP1 -0,300223018 -TMEM222 -0,30010369 -PIGB -0,299980372 -SSSCA1 -0,29997354 -DCUN1D1 -0,299517655 -DLSTP1 -0,299414392 -ITM2B -0,299325985 -AK025651 -0,299260618 -ACOT13 -0,299073057 -ZNF593 -0,298588283 -LOC100129250 -0,298385026 -H2AFY -0,298292243 -IGF1 -0,298232454 -KIAA0368 -0,29819687 -FKBP3 -0,298122528 -C12orf49 -0,297820161 -PRKRIR -0,297808472 -GLUD2 -0,297805688 -NBL1 -0,297799978 -PTPN4 -0,297657679 -LOC644617 -0,297586698 -IL33 -0,297538719 -CUL4A -0,29730361 -SIP1 -0,297199387 -POLDIP2 -0,297140479 -EBP -0,297109427 -FASTKD2 -0,296665172 -SMPD1 -0,296658212 -FAM55C -0,296650198 -TRPV2 -0,296465177 -DOPEY1 -0,29633822 -SCYL3 -0,296201386 -UBL3 -0,296188632 -STK38L -0,296164266 -APITD1 -0,296017845 -SFXN1 -0,295918484 -CPT1A -0,295754312 -USP8 -0,29570338 -MRPS30 -0,295702739 -ATG7 -0,295335659 -C10orf88 -0,29514056 -PIPOX -0,295018193 -RAC3 -0,294600261 -CIAO1 -0,294564961 -KLC2 -0,294523931 -LEPROTL1 -0,29448316 -ENDOD1 -0,294147277 -FEM1B -0,294007766 -IRS1 -0,293342341 -CYP51A1 -0,293155923 -DYNLRB1 -0,292974645 -TOM1L2 -0,292906836 -TDP2 -0,292808809 -MRPL49 -0,292778686 -LRP8 -0,292767989 -MOSPD1 -0,292730297 -C6orf134 -0,29255632 -TRPC1 -0,29249815 -RASL11B -0,292459191 -AL109671 -0,292334441 -TTC37 -0,292136499 -ODZ4 -0,292070818 -KIN -0,291741417 -KPNA1 -0,291721639 -CAST -0,291558763 -NDUFA13 -0,291524477 -AKR1A1 -0,29149158 -QARS -0,29146477 -MRPS22 -0,29145846 -MMACHC -0,291414294 -UBQLN2 -0,291358191 -PIK3CB -0,291242041 -COX6B1 -0,291081182 -PDK2 -0,290962723 -RABGGTB -0,290962562 -SR140 -0,290943983 -ATF2 -0,290881352 -FADS1 -0,290820194 -SRP14 -0,290691218 -RAD23B -0,290632171 -AHCY -0,290521401 -RINT1 -0,290502144 -SRP54 -0,290224786 -COX5B -0,289972152 -NBN -0,289962803 -DDX50 -0,289845246 -NUFIP1 -0,289611609 -HDGFRP3 -0,289540354 -HBA2 -0,289412602 -SRP9L1 -0,289377441 -ARFGEF1 -0,289327503 -FAM13B -0,289118442 -DIMT1L -0,288943725 -LPO -0,28888192 -VPS28 -0,288730564 -SSR3 -0,28867602 -SEPT7 -0,288663677 -NARS2 -0,288651232 -EMG1 -0,288493971 -HSPA8 -0,288488899 -TBC1D13 -0,288209587 -TTC35 -0,288076299 -GTPBP4 -0,287916733 -SPG7 -0,287774853 -PAFAH1B3 -0,28772138 -MAPT -0,28765216 -RERGL -0,287509361 -HNRNPD -0,287438947 -PLCL2 -0,287391702 -HLA-DPA1 -0,287200849 -CD55 -0,286966384 -IDH3A -0,286870398 -STXBP5L -0,286801199 -MAP3K12 -0,286334641 -PPP2R1A -0,286259611 -TMEM126B -0,286136364 -CDKN3 -0,286064506 -ABCC5 -0,286013319 -TMEM127 -0,285913561 -DNAJC2 -0,285585137 -SEC61G -0,285583827 -SSR1 -0,285489405 -AIMP1 -0,285281231 -YTHDF2 -0,285194578 -FAM86B1 -0,285046154 -CTBP1 -0,285027477 -CHRFAM7A -0,285001423 -SSBP3 -0,284934817 -MRPL46 -0,284930449 -TSPAN6 -0,284861931 -MYST2 -0,284824247 -GGH -0,284817124 -PRKACB -0,2847024 -C2orf47 -0,284692381 -NLK -0,284579832 -ASNS -0,28445955 -EXOC5 -0,28439526 -OAZ3 -0,284379411 -CTNNBIP1 -0,284364924 -PVR -0,284070802 -C16orf80 -0,284019987 -UBE3A -0,283816198 -EAPP -0,28376748 -IGSF3 -0,283764031 -KCND2 -0,283569047 -FOXK2 -0,283286684 -SLC35A2 -0,283204451 -TBCB -0,283168385 -SLC38A1 -0,283158141 -ACCN2 -0,283147998 -FAM149A -0,283126904 -TIMM22 -0,283102824 -EIF4ENIF1 -0,28310048 -THSD1P1 -0,282819454 -MAGED4 -0,282562753 -CLASP1 -0,282510547 -C1orf61 -0,282424601 -C6orf106 -0,282397365 -WDR44 -0,282155933 -GNL3 -0,282115302 -RCBTB1 -0,28192202 -OSTM1 -0,281535242 -AGPAT5 -0,281510168 -PRNP -0,281405094 -APPBP2 -0,281330465 -GAD1 -0,281295305 -NECAB3 -0,281056363 -ABCF1 -0,280961256 -DNAJC7 -0,280750506 -EPHB1 -0,280596899 -GPRC5A -0,280368026 -HSPA14 -0,280049432 -CLPTM1 -0,280042656 -SGPP1 -0,27999737 -ABCG4 -0,279891909 -GFRA1 -0,279146972 -ATP5SL -0,278849245 -CTSO -0,278677227 -DCTN4 -0,278556645 -MAP2K2 -0,278535478 -ZNF423 -0,278503712 -FUS -0,278285124 -ACTR8 -0,278282163 -PRR13 -0,278189761 -ZNF329 -0,278179162 -RNASEH2B -0,278151755 -LOC284244 -0,278099761 -FAM117A -0,277715513 -MREG -0,277651168 -C2orf18 -0,277609469 -AW612311 -0,277599115 -SYNRG -0,277434047 -SMARCE1 -0,277346186 -DNAJA3 -0,277188103 -PPP2R5E -0,2770317 -TMCO6 -0,276951805 -C6orf35 -0,276886272 -DDX18 -0,276619655 -TTLL1 -0,276373935 -LANCL1 -0,276361838 -SNRPE -0,276287655 -DTX4 -0,276233703 -IDH2 -0,276017451 -SACS -0,275814599 -ABHD2 -0,275491786 -VAMP1 -0,275092752 -AGPAT1 -0,27504004 -TYMS -0,274913065 -ZDHHC3 -0,27479568 -LMO1 -0,274566957 -UVRAG -0,274559415 -HBB -0,274385467 -PSMA2 -0,274273938 -CD24 -0,27422103 -GRAMD1B -0,27394685 -PRC1 -0,27393137 -YARS2 -0,27376193 -SIGMAR1 -0,273597834 -CPEB3 -0,273534888 -ARMC9 -0,273442678 -DNAJC10 -0,273369377 -TM9SF4 -0,27326642 -RBX1 -0,273166064 -C13orf1 -0,273151402 -PDCD4 -0,273130523 -LUZP2 -0,272843047 -APLP2 -0,272609838 -USO1 -0,272598741 -SH3BP5 -0,272512602 -PPP1R11 -0,272494252 -PEMT -0,272485616 -CDC16 -0,272287144 -LCMT2 -0,272235596 -DCX -0,271983078 -DDAH1 -0,271924121 -UBE2D2 -0,271815552 -TANK -0,271664689 -AW974666 -0,271662837 -USH1C -0,271630244 -BDH1 -0,271624449 -B9D1 -0,271589518 -BRD9 -0,271105209 -USP7 -0,271052865 -TRIM2 -0,270764995 -PARK7 -0,270634786 -NSFL1C -0,270597248 -COQ2 -0,269953826 -HNRPDL -0,269787459 -NOV -0,269731303 -SLC25A28 -0,269706278 -EXT2 -0,26958066 -VLDLR -0,269148459 -SLC4A4 -0,268895862 -SMURF1 -0,268798637 -ORC2L -0,268275919 -ZC4H2 -0,268056536 -SDHAF1 -0,267985583 -VDAC1 -0,267895013 -ALDH1A3 -0,267738476 -PNPLA4 -0,267586498 -HAGH -0,267406111 -CNTNAP2 -0,267355858 -KPNA3 -0,267278305 -LRBA -0,267216793 -DPYSL4 -0,267150239 -MCCC2 -0,26714725 -KBTBD4 -0,267031071 -DCTD -0,267005887 -C1orf21 -0,266982234 -C2orf43 -0,26679916 -SF3A3 -0,266732334 -PTPN3 -0,266674559 -FBXO21 -0,26664933 -CCT7 -0,266615147 -CLNS1A -0,266539743 -HAPLN1 -0,266160364 -SYT13 -0,26591944 -SENP5 -0,265695364 -HMGB2 -0,265556554 -CANT1 -0,265168032 -CGREF1 -0,265157579 -GRM1 -0,26510368 -ZFHX4 -0,265049797 -PVRL3 -0,264999073 -ADAR -0,264636454 -TRIM3 -0,264561355 -ANP32E -0,264413865 -PDLIM7 -0,264406742 -MLH1 -0,264377914 -PRKCA -0,264376056 -CYB5R3 -0,264120933 -PDE1A -0,263919942 -LOC100127998 -0,263915362 -WSB2 -0,263691169 -RPF1 -0,263404659 -CXCL12 -0,26333499 -TMEM66 -0,263285506 -EIF6 -0,263232223 -NFE2L1 -0,262789646 -KLHL20 -0,262772392 -PPM1H -0,262689193 -PIN4 -0,262483899 -TUBA4B -0,26241982 -ECT2 -0,262276809 -MGC5566 -0,261888759 -C9orf116 -0,261830489 -ASB1 -0,261751394 -ABCC8 -0,261735107 -ELOVL2 -0,261638578 -PHB2 -0,261466477 -ZNF580 -0,261379751 -DNAJC24 -0,261364702 -PSMB10 -0,261344946 -CSE1L -0,261292597 -ANKRD27 -0,261154598 -TUBG2 -0,261047779 -C6orf162 -0,261001828 -AL034399 -0,260886813 -GLT8D1 -0,26052144 -SRR -0,260520305 -MCC -0,260395686 -COX4I1 -0,260324715 -SEP15 -0,260222524 -RNF103 -0,260210477 -ZNF576 -0,260159221 -MGEA5 -0,260092677 -RSL24D1 -0,259958151 -USP13 -0,25969613 -MLLT3 -0,259631882 -SRI -0,259268888 -NCS1 -0,259133737 -MAPKAPK5 -0,259103348 -IQCG -0,25908825 -FN3KRP -0,258914892 -BCKDHB -0,258870249 -GOLGA5 -0,258736414 -RDBP -0,258483881 -SUPT7L -0,258355414 -METTL1 -0,258206012 -CREB3 -0,258159408 -TMEM111 -0,258136123 -NRSN2 -0,257397396 -CNTN1 -0,257314074 -COX10 -0,257277055 -SERPINB9 -0,257269621 -MTF2 -0,256976969 -EDNRB -0,25676028 -HSF2 -0,25652969 -POLR2L -0,256424652 -TRIM58 -0,256294322 -DACH1 -0,256241463 -UEVLD -0,256239024 -ATP1B3 -0,256215499 -SAP130 -0,256053262 -TRPC6 -0,255890704 -HERC6 -0,255794959 -NAV3 -0,255707496 -GOSR1 -0,25567987 -CNR1 -0,255506006 -PSME4 -0,25522233 -CAMKV -0,254605479 -ADSL -0,254512794 -BCS1L -0,254298738 -CCNB1 -0,253924801 -SNX2 -0,253887319 -ASAP2 -0,25387509 -WDR70 -0,253565737 -PTPRE -0,253309549 -SEPT5 -0,253058348 -SCML1 -0,253051964 -BCR -0,252946659 -MAGOH -0,252829021 -SEMA4F -0,25277628 -CLIP1 -0,252764211 -JMJD4 -0,252747043 -ZMYND11 -0,25273006 -CPSF6 -0,252574141 -PTPRA -0,252430519 -PLA2G12A -0,252393049 -MXRA5 -0,252290125 -RFX5 -0,252264534 -WARS -0,252174212 -HUS1 -0,252166663 -VCAM1 -0,251733145 -CEACAM21 -0,25171453 -RHOT1 -0,251514974 -EMD -0,251327933 -TSPYL2 -0,251307071 -THNSL1 -0,25130438 -NDUFB4 -0,251250318 -CHMP5 -0,251232028 -SKAP2 -0,251185084 -LRPAP1 -0,251070101 -COMMD3 -0,251069448 -ROGDI -0,250917557 -PPAP2B -0,25089017 -ADSS -0,250852878 -LGI2 -0,250809779 -CBX6 -0,250671998 -NELF -0,250584567 -DENND5B -0,250357567 -ATP2C1 -0,239139672 -SUMO2 -0,233193565 -KRAS -0,208565613 -PEX3 -0,200767265 -PRDX2 -0,195371323 -PDCD2 -0,194653063 -TM2D1 -0,189207426 -KHDRBS1 -0,16653347 -KLC1 -0,156510024 -ANK2 -0,155852142 -HBS1L -0,155006259 -NTRK3 -0,121314135 -PTPRO -0,110200451 -PLEKHA5 -0,10184855 -GCOM1 -0,091608137 -TIMM8A -0,084179504 -MKRN1 -0,074942655 -PLA2G4B -0,068760926 -RUFY3 -0,059042335 -RIMS2 -0,057507607 -C21orf2 -0,054091983 -METAP2 -0,053236401 -LRRC40 -0,040678287 -RPL10 -0,034862755 -RIOK3 -0,033313025 -SYNCRIP -0,027340658 -UNC45A -0,021866459 -MPZL1 -0,020796077 -RANBP1 -0,01610173 -ITGB1BP1 -0,011025016 -UBC -0,009666523 -RER1 -0,007044099 -PDS5B -0,005231512 -NCAM1 -0,004638056 -LIMCH1 0,003894784 -VPS13D 0,014841215 -WDFY3 0,017457694 -MRP63 0,023151675 -TSR1 0,064261585 -GRB10 0,066410415 -FAM128B 0,074972161 -PAK2 0,079518764 -PKP4 0,080237181 -TMEM144 0,083124821 -C3orf63 0,086752023 -DDAH2 0,250378216 -AF238870 0,250544885 -PTMS 0,250667518 -JAG1 0,250675664 -RPL32 0,25075902 -UXT 0,250812127 -HSP90B1 0,250888984 -SS18 0,250904748 -RND2 0,250918958 -CLEC4M 0,250931594 -AU147194 0,251115897 -IL1RAPL1 0,251119435 -EPB41L2 0,251131328 -TFDP3 0,251241244 -GAL3ST4 0,251281983 -EDN2 0,251371356 -SFTPC 0,251372616 -TRMT61A 0,251534845 -GPR4 0,251535902 -KEAP1 0,251692277 -RNF122 0,251718243 -NOTCH2 0,251745042 -WDR1 0,251871256 -NFX1 0,252023298 -DOHH 0,252100123 -NES 0,252167647 -SRSF10 0,252172984 -AQP3 0,252182392 -LOC728412 0,252404082 -RCN3 0,252455902 -CSNK1G1 0,252462493 -KCNS1 0,252601737 -CCDC71 0,252614101 -JUND 0,252645305 -LYST 0,252718314 -TPCN1 0,252770336 -MTA1 0,252823052 -RIN1 0,252841454 -ATHL1 0,252944239 -FTSJ3 0,253136044 -SERPINA1 0,253202139 -STARD7 0,2533744 -MRPL34 0,253425868 -PPID 0,25344089 -SH3PXD2A 0,253534644 -UBA7 0,253547625 -RUNX1 0,253686159 -ARNTL 0,253823553 -STAT6 0,253840779 -CASKIN2 0,25393147 -NFATC4 0,253965486 -LILRB2 0,254041373 -PPP1R13L 0,254173566 -RAP1A 0,254249533 -OTUD4 0,254380531 -ZNF516 0,254390037 -ZC3H14 0,254430628 -BTD 0,254441889 -ABHD4 0,254494909 -MT3 0,254554667 -PTCH1 0,254572046 -CDC42EP3 0,254591236 -LOC150776 0,254715807 -PTGES 0,254816225 -TPM2 0,254867646 -TAGLN 0,254960085 -AL050032 0,254984309 -HPN 0,25500915 -FLNC 0,255046574 -GJB3 0,255060346 -RAB40B 0,255071999 -CST1 0,255226531 -FGF21 0,255229382 -AW574933 0,255334628 -FGF5 0,255461872 -CLCN7 0,2555275 -BAHCC1 0,255618646 -FANCA 0,255627746 -CYBA 0,255682121 -TIE1 0,255683605 -ANKHD1-EIF4EBP3 0,255707685 -CDV3 0,255740411 -COL9A1 0,255878907 -TTC31 0,256049153 -ZIC1 0,256075896 -CCDC121 0,256090992 -FUT4 0,256155794 -UCP3 0,256197327 -AU146391 0,25625958 -MMP2 0,256269664 -STXBP2 0,256386629 -TMEM87A 0,2564575 -FXR1 0,256493521 -RDX 0,256507051 -HPS1 0,256516919 -TRAM2 0,256517872 -HYAL2 0,256778041 -TNFRSF14 0,256783849 -NEK7 0,256861333 -AGRN 0,256876471 -SMC4 0,256895131 -GAS7 0,256949822 -PDE4B 0,256950938 -CHD4 0,256970114 -SPP1 0,257084517 -HECA 0,257172806 -NXF2B 0,257181225 -LILRA5 0,257188463 -SCAP 0,257267679 -SNX1 0,257354288 -GIGYF2 0,257400552 -CELF1 0,257407908 -HSD17B14 0,257420303 -DUOX1 0,25770603 -MRM1 0,257826185 -NBR2 0,257852879 -FAM176B 0,257955278 -SYNPO 0,257997864 -GPRIN2 0,258040238 -IER3 0,25816919 -ZNF506 0,258198461 -NM_016414 0,25824817 -VPS53 0,258358594 -PGPEP1 0,258378109 -GNL1 0,25847832 -OGFR 0,258496938 -CXCR2 0,258632799 -C1orf38 0,258857462 -RPL22 0,258901214 -NM_018041 0,259005358 -MYOF 0,259133176 -NGB 0,259197495 -CLIC4 0,259260666 -TBC1D9B 0,259295717 -KCND1 0,259337213 -RNASET2 0,259420675 -EXT1 0,259568659 -AQR 0,259572114 -VWA1 0,259618684 -MUC3A 0,259647513 -CAV1 0,259682957 -IRF4 0,259719685 -OR7C1 0,259728956 -SETDB1 0,259737838 -E2F6 0,259867146 -TFEB 0,259924981 -CPSF3L 0,26005015 -MARCH8 0,260576922 -MFSD11 0,260945964 -ETAA1 0,260954881 -SMARCD2 0,260999203 -RGS12 0,261024661 -CCNG2 0,261112401 -RPS8 0,261183649 -IL17RA 0,261275371 -NUDC 0,261284708 -ZNF133 0,261329337 -ATP13A1 0,261543252 -PICK1 0,26166607 -C20orf117 0,261682534 -GIPR 0,261728602 -HIST2H4B 0,261730186 -S100A11P1 0,261732522 -MARCH3 0,26174629 -ZBED4 0,261794357 -KHK 0,261822851 -SCAMP2 0,26194666 -AF070579 0,261954742 -TECR 0,261998101 -AK024915 0,262016665 -CASP7 0,262240261 -PDK4 0,262293861 -MYO7A 0,262479993 -TUBBP5 0,262483574 -TMEM143 0,262491406 -NAP1L1 0,262524812 -PLEKHB1 0,262542861 -ING1 0,262679424 -SPSB3 0,262786186 -C9orf167 0,262955615 -NTM 0,262977412 -FIP1L1 0,263199662 -FYCO1 0,26321575 -GGT1 0,263227324 -ALG12 0,263240056 -IGL@ 0,263282588 -PPBP 0,263290228 -SNX13 0,263292989 -SRSF4 0,263309909 -CYTH1 0,263721364 -AL050035 0,263831657 -TRMU 0,263920451 -TIMP1 0,263959235 -RFNG 0,263965598 -HIP1R 0,264033626 -NR1H3 0,264039538 -NT5C2 0,264091319 -FNTB 0,264115077 -SAR1B 0,264175117 -GIT1 0,26420824 -RRAGD 0,264311012 -HAP1 0,26435511 -FLT3LG 0,264378926 -NM_018612 0,264421364 -SLC7A9 0,26447762 -GLTSCR2 0,264541217 -SUN1 0,264635751 -CEP152 0,264663399 -MBTD1 0,264688291 -SYT12 0,264690461 -ACTR5 0,264835312 -EIF4A1 0,264933012 -COX7A1 0,26511391 -CMTM6 0,265385079 -FAM102A 0,265449454 -AW970584 0,265532869 -FMO5 0,265619005 -N4BP2L1 0,26587536 -SPAG11A 0,265939376 -TGFBI 0,265987004 -RYK 0,266131346 -SERBP1 0,266135884 -AK021988 0,266152576 -NCAM2 0,266199101 -AK024995 0,266233606 -RAB9A 0,266259326 -SYNJ2 0,266313048 -PHLDB1 0,266315252 -PKN1 0,266439146 -MFAP3L 0,266558078 -PPFIBP2 0,266640652 -WBP5 0,266861878 -TMX1 0,266949292 -SLC6A12 0,267009029 -C3AR1 0,267017849 -CSRP2 0,267020264 -SP3 0,267034674 -ATN1 0,267069634 -GNB3 0,267107148 -TIAL1 0,267113358 -GPATCH8 0,267177985 -PMEPA1 0,267182372 -MAP2K3 0,267199274 -NM_018033 0,267304029 -WWTR1 0,267350058 -SEMA6A 0,267400431 -RBPJ 0,267426168 -AL049279 0,267438916 -IL1RN 0,267473934 -QKI 0,267577841 -SOX15 0,267588393 -DMTF1 0,267672579 -RPL19 0,267821304 -TRIM39R 0,267839755 -SLC26A6 0,267879749 -NM_025056 0,267969441 -BBS9 0,267969882 -M85256 0,26799656 -ADORA3 0,268097905 -TMEM176B 0,268515164 -SECTM1 0,268600799 -ST14 0,268612452 -ARHGEF18 0,268652414 -SIRT5 0,268726991 -MYBPC1 0,268763379 -RPL15P22 0,268793196 -SIGLEC15 0,268860828 -DNAJA1 0,26890035 -LMBR1L 0,269042598 -GIMAP4 0,269074847 -MFAP3 0,269075993 -ABCA6 0,269120338 -AW836210 0,26919833 -LOC100133772 0,269228182 -CHST4 0,269387102 -RNASEH2A 0,269387986 -RPL18 0,269450865 -RPLP2 0,269486597 -MEPE 0,269489799 -FAM106A 0,269545639 -GATAD1 0,269621956 -PPP2R3A 0,269725552 -MASP2 0,269836416 -MYO10 0,26992164 -PIGG 0,269941407 -SMG5 0,269952017 -IFI30 0,269956381 -AK025180 0,269971157 -AMD1 0,269982316 -LMOD1 0,270125966 -SNX15 0,270191178 -SCARB1 0,270338985 -SERTAD3 0,270373355 -MBD5 0,270430073 -SLC2A5 0,270454389 -ITCH 0,270468949 -ADA 0,270490353 -PWP2 0,270541137 -ARHGEF1 0,270572389 -C2CD2 0,270675538 -EIF1 0,27071329 -C1orf35 0,270772513 -IFI16 0,270855012 -LOC285830 0,270905428 -IL10 0,271025993 -MORC4 0,2712707 -CA11 0,271346355 -C5orf54 0,271348162 -C14orf93 0,271428228 -RPL17P7 0,271481741 -TMEM161A 0,271564557 -LRCH3 0,271627825 -DFFB 0,271779652 -BAZ1B 0,271859723 -DKFZp547G183 0,271894591 -RAB11FIP2 0,271895928 -PCK1 0,27194659 -TMPRSS5 0,27195628 -TIPARP 0,272078235 -UBE2L3 0,272125747 -ZNF672 0,272142507 -GALNT10 0,272151507 -EXD2 0,272173543 -KAT2B 0,272322281 -RPS11 0,27237174 -POLR2H 0,272422791 -IGLL3 0,272574443 -AA554430 0,272578205 -DOCK10 0,272578712 -DMC1 0,272606886 -CD40 0,272762332 -CDK11A 0,272811711 -UCKL1 0,272898303 -FAM125B 0,273084179 -UBXN7 0,273084433 -SMA4 0,273204796 -DYNLT1 0,273349219 -CTTNBP2NL 0,273380758 -HSPH1 0,273396703 -CYP39A1 0,273418193 -HOMER3 0,273432217 -RRBP1 0,273480926 -ATAD2B 0,27361049 -LGALS3 0,273847411 -LASS2 0,273913098 -ZNF451 0,273935073 -NXPH4 0,27404559 -C22orf46 0,274118605 -KDM4B 0,27422483 -GPNMB 0,274363725 -CYHR1 0,274415705 -CCDC9 0,274487483 -WWC2 0,274522318 -ZNF652 0,274533788 -ILK 0,274538403 -CTDP1 0,27455992 -LOC51152 0,274810051 -AL442084 0,274963062 -CPNE7 0,275259638 -CENPB 0,275294531 -TCIRG1 0,275300556 -PRPF40A 0,275423637 -ARHGAP17 0,27552534 -LOC100133811 0,275961848 -ADAM17 0,276019886 -CRISPLD2 0,276144309 -IFIH1 0,276175289 -LOC440434 0,276293985 -DCLK2 0,276369722 -MS4A6A 0,276482788 -VASH1 0,276499979 -SRSF7 0,276513035 -B3GAT3 0,276752575 -CALHM2 0,276762436 -MAP4 0,276867434 -DULLARD 0,27687625 -CTSS 0,276943812 -BAG3 0,277040195 -KRT8P12 0,277155277 -POLR2F 0,277193722 -CD14 0,277207134 -SF3B1 0,277255775 -EZH1 0,277320185 -MBD1 0,277342685 -MITF 0,277407356 -BAIAP2 0,277445862 -FCGR2B 0,277531437 -PAQR4 0,277547889 -NFATC2IP 0,277597337 -CAT 0,277600148 -TJP2 0,277610024 -CCNA2 0,277687494 -GEM 0,277887602 -C2orf54 0,277935237 -HIRIP3 0,278018588 -MCM3APAS 0,278082892 -CFB 0,278130274 -TAGLN2 0,278365668 -AK024851 0,278382784 -HGD 0,278585783 -NR2E1 0,278716062 -SEC61A1 0,278797194 -PDE4DIP 0,278806635 -FRMD4A 0,278822955 -RHOC 0,278842121 -UBTF 0,278963815 -NCOR2 0,279024257 -PPP6R3 0,279218049 -ALAS2 0,279327775 -SPSB1 0,279537438 -SGMS1 0,279545277 -TEAD4 0,279565374 -AK024897 0,27961031 -IRS2 0,279708094 -TRIM62 0,279977776 -AF308291 0,279984986 -AK022362 0,280079092 -KIAA0495 0,280115197 -CUL7 0,280170918 -PARD3 0,280192562 -NUP98 0,280376383 -DHRS4L2 0,280391865 -AK024093 0,280444114 -VEGFB 0,280560816 -PTEN 0,280592383 -NBPF10 0,280620974 -CASP1 0,280699269 -AK2 0,280734467 -MLX 0,280792537 -GNG11 0,280826824 -HNRNPM 0,280968313 -IL12RB2 0,28098376 -CDK18 0,28098866 -RARA 0,280998983 -GYPC 0,281028129 -PAK4 0,28104576 -SEMA3F 0,281239182 -BAT2L2 0,281335934 -BRD4 0,28139016 -PAOX 0,281415979 -SMAD3 0,281446531 -PIK3R2 0,281480063 -IFT122 0,281682471 -IRAK4 0,281825175 -RASSF2 0,281825652 -RPL13A 0,282085077 -ZNF22 0,282127023 -KDM4A 0,282136199 -CPM 0,282150511 -EIF2S2 0,282316006 -USP48 0,282335945 -CLCNKB 0,282422648 -C11orf61 0,282474246 -ANKRD11 0,282516441 -PTTG1IP 0,282619596 -SEC14L1 0,282620994 -DOCK6 0,282646645 -CARHSP1 0,28271852 -RRAS 0,282814195 -TRIM38 0,283129972 -PLA1A 0,283206252 -GAB1 0,283220235 -PDLIM1 0,283254227 -SSH3 0,283308195 -KLF9 0,283315657 -N4BP2L2 0,283629404 -TNS4 0,283667599 -C15orf28 0,28383226 -ANXA11 0,283988681 -TAF12 0,283993401 -SLC39A1 0,284190806 -SAP30 0,284320416 -RNASE4 0,284337811 -RPS28P6 0,28438483 -DDR2 0,284449824 -BMP4 0,284614799 -CEPT1 0,284615091 -ITPKB 0,284650775 -PLEKHF2 0,284678379 -AW974812 0,284683098 -PTCRA 0,284827371 -SETMAR 0,2848555 -SOCS3 0,284925858 -NM_014129 0,284930906 -MYO1D 0,285094554 -RBL1 0,28514691 -HN1L 0,285254673 -LASS4 0,285307965 -RPS21 0,285547221 -PPP2R1B 0,285765143 -NEO1 0,285937917 -SEC24C 0,286013109 -BCL3 0,286014454 -KCNMA1 0,286080656 -AL137590 0,286198689 -EDIL3 0,286207431 -ARHGEF16 0,286210956 -HCK 0,286227266 -GSTA1 0,286246055 -SLA 0,286356975 -UNG 0,286379363 -SP100 0,286388329 -PRSS53 0,28642638 -MYL6 0,286728542 -CDH5 0,286728949 -C10orf116 0,286730624 -GTF2IRD1 0,286882519 -POLH 0,286995879 -SFRS16 0,287066034 -TPM4 0,28709233 -ABCD4 0,287100216 -GLT25D2 0,287127854 -COL18A1 0,287131911 -NPIPL3 0,287424398 -C1orf69 0,287453135 -MTF1 0,287488427 -IGF2BP2 0,287555495 -PALLD 0,287872078 -RPS16 0,287887395 -CYP2C9 0,287955438 -SC65 0,288029122 -CRYBG3 0,288096904 -SHC2 0,288312879 -FLNA 0,288339801 -NM_014486 0,288348194 -ISYNA1 0,288383809 -PNO1 0,288506351 -GZMK 0,2886543 -ATG13 0,288748426 -NCOR1 0,288772721 -ZSWIM1 0,288892162 -GPM6B 0,28893274 -SNTA1 0,289049438 -RHOBTB1 0,289064808 -GGA1 0,289073087 -ATXN2L 0,289088819 -FAM46A 0,289172187 -ZNF532 0,289393934 -CD40LG 0,289400418 -ZCCHC11 0,289421485 -WDR5B 0,289498086 -EPN2 0,289629137 -WNK1 0,289684816 -ZNF408 0,289721753 -LHFPL2 0,290003635 -NARG2 0,290029081 -STYXL1 0,29008917 -YY1AP1 0,290249669 -CPOX 0,290281635 -IL11RA 0,290333682 -PAXIP1 0,290387596 -ZNF282 0,290414378 -C11orf95 0,290643441 -MERTK 0,290681835 -VPS13C 0,29069039 -RPS17 0,290756898 -NEIL1 0,290762184 -ZNF292 0,290850132 -NOSIP 0,290873511 -DNAJB2 0,290950763 -INPPL1 0,29102828 -ZFX 0,29106383 -SETX 0,291138151 -SLC25A37 0,291207794 -PCDHGA8 0,291472818 -TXNIP 0,291962928 -DDX27 0,291971417 -BG389073 0,29216848 -JTB 0,292275569 -RBM10 0,292352574 -RASGRF1 0,29242252 -SYNM 0,292474024 -EXPH5 0,292481151 -NPL 0,292494012 -CHKA 0,292519533 -MGA 0,292564204 -SOX10 0,292580481 -AK024185 0,292975066 -FAM120A 0,292996604 -PLXNB1 0,293000141 -BDH2 0,293071563 -JRK 0,293136106 -SLC11A1 0,293139917 -TM4SF1 0,293242649 -EDA 0,293286441 -CDK10 0,293299298 -HLA-E 0,293305618 -LOC642846 0,293349826 -GFPT2 0,293396887 -SENP3 0,293408144 -RPS3AP44 0,293415546 -C16orf88 0,293431615 -FAM60A 0,293472328 -RPL36A 0,293501288 -SERPINA5 0,293547044 -CNOT8 0,293568161 -KDM4C 0,293620372 -POU2F2 0,293815578 -C14orf139 0,293870806 -ZNF217 0,293937173 -NM_025042 0,294034268 -NNMT 0,294200775 -VEZT 0,294224684 -KIAA0754 0,294307773 -RBM28 0,294637248 -ITPR2 0,294711729 -PPPDE1 0,294796015 -KLHL28 0,294874305 -MGP 0,294956866 -LOC729602 0,295016892 -SRSF5 0,295036903 -ROCK1 0,295267164 -SS18L2 0,295271871 -LMNA 0,29532356 -ESRRA 0,295387708 -SNHG3-RCC1 0,295411716 -TAL1 0,295434654 -SQRDL 0,295470062 -TARDBP 0,295665655 -LMAN2L 0,295705138 -RIN3 0,295771443 -PSPH 0,29602696 -DGKD 0,296027908 -WHSC1 0,296067068 -SPRY4 0,296068122 -ADARB2 0,296162399 -ELF3 0,296200778 -TLE1 0,296292637 -ACAN 0,296375799 -AK022038 0,296556116 -IL1RL1 0,296721787 -OR2A9P 0,296898432 -NCRNA00260 0,296954725 -CAD 0,296976627 -PNRC2 0,297129071 -IQCK 0,297134521 -ACOX2 0,297377087 -APOC4 0,297497329 -DGKA 0,297541846 -ZBTB1 0,297547513 -PUS1 0,297622568 -C7orf64 0,297653213 -FBLN1 0,297723957 -SBF1 0,297752819 -TMF1 0,298582891 -IL1R1 0,298701666 -LILRB3 0,298823808 -FLAD1 0,298825369 -CD163 0,299040686 -TCL6 0,299056301 -FADS3 0,299096634 -LBR 0,299180453 -AL162044 0,299184427 -ZNF337 0,299271736 -AHNAK 0,299352615 -YY1 0,299417937 -HIPK2 0,299439852 -NAT15 0,299519834 -ANKZF1 0,299817611 -NECAP2 0,299838267 -MAP3K7 0,299838407 -SAMD4A 0,299863792 -WDR8 0,300094232 -ZNF24 0,300179611 -NR3C1 0,300200063 -FGF1 0,300357727 -NPC1 0,300564708 -LMO4 0,300573598 -TTLL5 0,300853453 -AL050053 0,300945526 -RSU1 0,300958049 -C15orf39 0,301123219 -SLC14A1 0,301147038 -ELAVL1 0,301190126 -SLC17A4 0,301215925 -FANCC 0,301274346 -LRCH4 0,301338927 -EGFL7 0,301340052 -C9orf3 0,301357727 -SRGN 0,301411135 -PLCL1 0,301576339 -MAN1A1 0,301613058 -S100A8 0,301917937 -W86781 0,301984854 -HIP1 0,302012828 -OR7A5 0,302027387 -PPP1CC 0,3020408 -CGGBP1 0,302058231 -CYP3A4 0,302333153 -GALNS 0,302376776 -NR0B1 0,302394827 -SMNDC1 0,302468654 -MGST2 0,302482901 -RPL12 0,302658969 -DMPK 0,302955014 -TNRC6B 0,30299615 -PPM1D 0,303104009 -EED 0,303134999 -STAG3L1 0,3031801 -TMCC1 0,303195736 -RPL13 0,303245467 -RBPMS 0,30326423 -ARHGAP10 0,303298204 -PLCB3 0,303300054 -XPO1 0,303410309 -MYO1F 0,30341788 -SRPK1 0,303531642 -ZCWPW1 0,303562617 -MTHFD2L 0,303678034 -FAM111A 0,303798707 -TTC38 0,304186409 -COL7A1 0,304295553 -C4orf19 0,304312458 -NGLY1 0,304332742 -HTATIP2 0,304339936 -IFNAR2 0,304414877 -CXorf1 0,304737703 -UNC5B 0,304789798 -YAP1 0,30479215 -PHC2 0,30485466 -FBL 0,304914384 -CDH2 0,304939032 -FXYD2 0,304942957 -ANKRD36 0,305000603 -KRT8 0,305028726 -DSCAM 0,30505625 -SMO 0,305151387 -FCGRT 0,305420183 -PAIP2B 0,305483478 -PABPC1 0,305528523 -PIGV 0,305604211 -BACH2 0,305697602 -PLGLA 0,305722503 -MORC3 0,305845022 -DIDO1 0,305996983 -PRPF38B 0,306041882 -TRMT1 0,306054262 -NFATC1 0,306233076 -AK021495 0,306242002 -GPR1 0,306335484 -STARD13 0,306369109 -CELSR2 0,306371185 -ZNF193 0,306396574 -ABHD6 0,306458055 -PLCXD1 0,306486283 -RPAP1 0,306695411 -AL050122 0,306737964 -DHRS3 0,306750918 -C1QA 0,306800137 -AF009267 0,30681596 -SETD2 0,307047565 -STX6 0,307184977 -TMEM204 0,307304516 -SMYD2 0,307490131 -BF942161 0,307560212 -SLC44A1 0,307685609 -ELF2 0,307698089 -AATF 0,307770923 -AV761453 0,307800442 -ACTN1 0,307927265 -AI523613 0,307943372 -SOLH 0,307971092 -ZNF410 0,308222237 -GOLGA4 0,308250269 -FLJ21369 0,308352331 -FCGR2A 0,308469725 -BRD7 0,308638563 -TLR2 0,308769609 -FTHL5 0,308790654 -SPOCK1 0,308861441 -LSM14A 0,308907157 -USF2 0,309161806 -TENC1 0,309220224 -EMP2 0,309252571 -BSDC1 0,309299474 -ZNF701 0,309462113 -PLIN3 0,309516744 -SORBS1 0,309562012 -FTL 0,309588981 -AGFG2 0,309634949 -UBR5 0,309647344 -MMP14 0,30965745 -SFRS8 0,309923113 -ITPR3 0,309975876 -PLK3 0,310097184 -NUP188 0,310124261 -CROCC 0,310245563 -CHSY1 0,310328559 -CTCF 0,310675097 -EDC4 0,310685915 -NFE2L2 0,31069885 -LILRA6 0,311008878 -SATB2 0,311055754 -GTPBP6 0,311254994 -TSPAN14 0,311316513 -C10orf18 0,31133762 -SECISBP2 0,311419174 -DHX34 0,311443077 -LSS 0,311450185 -CHI3L1 0,311532669 -PDGFC 0,311715929 -BMP7 0,311741682 -MBNL1 0,311755686 -DNA2 0,311841432 -COMT 0,312081286 -LOC100133005 0,312165679 -PTOV1 0,312192713 -LCAT 0,312407744 -LRRFIP2 0,312480817 -UCN 0,312589312 -AK024606 0,312655002 -MICAL3 0,312700621 -ROM1 0,31291043 -MED12 0,312925796 -CPNE1 0,313173908 -GBP2 0,313262095 -PELI2 0,313279559 -MLL 0,313398121 -HIF3A 0,313438743 -ST18 0,313449639 -AF131777 0,313643716 -CATSPER2P1 0,313785721 -ZNF302 0,314066212 -APBB2 0,314110219 -KIAA0907 0,31421022 -ZNF592 0,314679884 -HNRNPA1 0,314773035 -TSC2 0,314882123 -SFRS15 0,314884343 -ZNF835 0,314920694 -WDR6 0,314979423 -LOC729143 0,315037798 -PPARD 0,315048839 -U2AF2 0,315118843 -MGAT1 0,315269456 -ZNF44 0,315270856 -RPL36 0,315475789 -GRAMD3 0,315513449 -PTPN2 0,315554784 -AL080072 0,315635626 -C19orf2 0,315918303 -DNAH3 0,315930745 -ZNF146 0,316341954 -SMEK1 0,316538461 -MLXIP 0,31681421 -NMT2 0,316848231 -G3BP1 0,316864559 -DDX3Y 0,316997159 -STEAP1 0,317082981 -BC002629 0,317231764 -KDM2A 0,317406731 -TMEM39A 0,317430306 -C15orf29 0,317437851 -MACF1 0,317513626 -LOC391020 0,317572673 -SETD1A 0,317586539 -KTN1 0,317889697 -RUNX3 0,31809511 -NINJ1 0,318107478 -ARMC7 0,318150459 -BMP1 0,318194029 -DKFZP586I1420 0,318199121 -JARID2 0,318226296 -AW972351 0,318303541 -PAPSS2 0,31841091 -ELTD1 0,31845583 -ETS2 0,318667898 -CREB3L2 0,318705762 -DFNB31 0,31892768 -SERHL2 0,318966243 -C10orf26 0,319058163 -NM_030892 0,319421731 -WRAP53 0,319795295 -UBQLN4 0,319828198 -RALGDS 0,319938162 -PRKCH 0,320101043 -AU146983 0,320105843 -SLC5A3 0,32021553 -DUSP1 0,320239212 -NKX2-2 0,320312108 -C1orf183 0,320387827 -PCM1 0,320482282 -THRA 0,320531901 -NM_025028 0,320726138 -SIVA1 0,320736787 -TTR 0,320757249 -IKBKB 0,320778441 -ARID1A 0,321020715 -HDAC4 0,321059842 -ZFP36L2 0,321167918 -TMEM212 0,321179342 -AA443771 0,321214505 -AGAP5 0,32125931 -PIGA 0,3216713 -SFRS12 0,321704401 -LDLRAP1 0,321832456 -CCDC21 0,321857948 -SSFA2 0,321990716 -RAMP1 0,322050077 -FLJ10357 0,322160744 -LAD1 0,322322766 -RACGAP1 0,322340831 -NPIPL2 0,322616655 -CEP350 0,322648588 -CRLF1 0,322735059 -IGSF9B 0,322744338 -PLXND1 0,322801951 -MCL1 0,322913781 -ALMS1 0,32297709 -ZNF768 0,323059066 -RSL1D1 0,323228527 -C4orf34 0,323582139 -PNPLA6 0,323738553 -MAST4 0,323801655 -NME3 0,323835175 -SNHG3 0,32391938 -S100A12 0,324014586 -PPP4R1 0,32409634 -PLD1 0,324165096 -POLG 0,324186823 -NKTR 0,324203565 -ST3GAL4 0,324231325 -TMEM63A 0,324243134 -ST20 0,32438459 -RNF114 0,324406844 -HYI 0,324468621 -DUSP6 0,324699964 -NR1H2 0,324884332 -DVL2 0,324900869 -SRSF11 0,324979841 -CLK2 0,325170283 -MKLN1 0,325287178 -SCRIB 0,325320413 -KIAA0467 0,325541973 -DMWD 0,325745064 -KLHL23 0,32579572 -RPS6 0,325948088 -ZBTB17 0,326014408 -RAI14 0,326038467 -UBE2G2 0,326143089 -ZNF562 0,326186073 -EZR 0,326282578 -TRPS1 0,326283144 -HFE 0,326390644 -MED23 0,32658232 -DDX11 0,326766632 -SHMT2 0,326784725 -LRP5 0,326954416 -PTH1R 0,327100265 -LOC731602 0,327131294 -AA401963 0,327241371 -CDK5RAP2 0,327276136 -SERP1 0,327279991 -SLC1A5 0,327303416 -BGN 0,327370767 -HSD17B1 0,327475971 -AL390143 0,327497051 -DIAPH2 0,327617697 -PITPNC1 0,327719899 -SPRY2 0,327767132 -FZD7 0,327974293 -MAP4K4 0,328171238 -TNS1 0,328369107 -ZNF783 0,328517049 -M78162 0,328518574 -ADAMTS1 0,32853944 -FKBP5 0,328911405 -AGAP8 0,329115979 -PLEKHF1 0,329179433 -DNAJB1 0,329339376 -RBMS2 0,329438459 -HNRNPH1 0,329454824 -ULK2 0,329496298 -PAPD7 0,329501864 -SURF1 0,329547559 -W61005 0,329673439 -ZNF862 0,330131081 -GNA15 0,330266409 -CHD9 0,330273108 -DLC1 0,330294104 -TMEM2 0,330321664 -AK024879 0,330353812 -N4BP1 0,330435804 -SERF2 0,330633507 -SNRPA 0,330957742 -IRF8 0,33098543 -ABCA2 0,331251046 -NPFF 0,331328402 -CP 0,331565597 -AU144887 0,331713137 -AW851559 0,33185735 -TCF4 0,332062967 -ZNF354A 0,332076549 -TMEM92 0,332352956 -NFATC3 0,332386137 -SSRP1 0,332529738 -TCF7L2 0,332651908 -PIM1 0,332716071 -PIP4K2A 0,332914219 -EIF4EBP1 0,332959146 -LOC100132863 0,333054912 -MMRN2 0,333075923 -AU147295 0,333342973 -VIM 0,333356286 -C2orf67 0,333469715 -DNMT1 0,333550022 -CEP110 0,333679402 -BAZ2B 0,33371151 -KDELR2 0,333939841 -L3MBTL 0,334448273 -CDK19 0,334505985 -CYorf15B 0,334832089 -DDX17 0,334839203 -FKBP4 0,335166906 -STOM 0,335173644 -U82303 0,335241438 -LOC202181 0,335841121 -ATM 0,335893127 -STK3 0,335957389 -MID1 0,336166241 -IGFBP5 0,336454348 -PARP4 0,336459483 -EXOC7 0,336479503 -FANCG 0,336652927 -PHF2 0,336678654 -FBRS 0,33674511 -ANP32B 0,336836072 -NCK2 0,336876937 -CASP6 0,336920233 -ZBTB3 0,337122586 -DHFR 0,337448147 -APOLD1 0,337464001 -STAG1 0,337490482 -NM_024305 0,337551103 -SIGLEC8 0,337608204 -ERLIN1 0,337809212 -POLDIP3 0,337889824 -SPTLC2 0,33799094 -C7orf26 0,338204972 -UBE2D4 0,338265561 -MAP2K7 0,3384787 -MECOM 0,338508564 -DOCK1 0,339029429 -HS1BP3 0,339148762 -PRKY 0,339216015 -GOLGA1 0,33927478 -XPC 0,339433169 -PHF3 0,33953002 -HIC2 0,339768003 -C9orf7 0,340519877 -CTDSPL 0,340591645 -ZNF83 0,34077157 -PHGDH 0,340889735 -TMEM165 0,340978736 -CLN3 0,341078466 -AU147983 0,34113627 -PATZ1 0,341151411 -DIP2C 0,341390806 -RECK 0,341533646 -EWSR1 0,342003886 -SMAD7 0,342182186 -MTRF1L 0,34225773 -TJAP1 0,342452426 -PRKD2 0,342725824 -SPOP 0,343019265 -HLA-J 0,343028528 -PLXNB2 0,343103735 -FBXL14 0,343454364 -LAMA2 0,343637649 -RNF220 0,343845541 -CLK3 0,344164444 -STARD3 0,344187457 -OGT 0,345118989 -IFITM3 0,345141829 -HMOX1 0,345196784 -EIF2C2 0,34557825 -CCND3 0,345663426 -TGFBR3 0,345676022 -POLR2J3 0,345712548 -BCAR3 0,345713549 -C14orf147 0,34610842 -CLDN15 0,34616346 -TOP1 0,346179876 -RASL12 0,346286134 -MED13L 0,346369067 -SOS2 0,346799305 -SERPING1 0,347144597 -IER5 0,347279068 -TLE2 0,347426427 -LLGL2 0,347448236 -TMCC2 0,347500013 -PHF20 0,347602909 -SIRT4 0,347862165 -OSGIN1 0,348060574 -H2BFS 0,348076316 -NM_017756 0,348230007 -NCRNA00115 0,348422218 -MT1E 0,348733923 -NACC2 0,3488369 -NFIB 0,348943619 -AKR1C3 0,349206923 -ARPC1B 0,349407208 -NIPBL 0,349628117 -RPL11 0,349803207 -MSH6 0,350014407 -PTDSS2 0,350073646 -AL050145 0,350120404 -FAM107A 0,350271118 -CHN2 0,350358174 -DAPK2 0,350378033 -DLG5 0,350436992 -OPHN1 0,350596034 -C20orf11 0,351010126 -SLC35D1 0,35135795 -SELL 0,35142274 -FAM193B 0,351790995 -NM_024880 0,352020901 -RASGRP2 0,352114346 -CAPN3 0,352194849 -THOC1 0,352289646 -TAOK3 0,352396226 -FBXO42 0,352613215 -LARP6 0,352692849 -KLKB1 0,352702835 -METTL7A 0,352961228 -STIP1 0,352968743 -WIPF2 0,353085817 -FOXD1 0,353404764 -HSPB2 0,35378232 -ENGASE 0,353978221 -LAT2 0,354239264 -HIST1H2AH 0,354250391 -GSDMD 0,354483715 -TRA2A 0,354674037 -C19orf29 0,354762053 -BRPF1 0,355002213 -NUMA1 0,355146564 -SNW1 0,355320637 -SMARCC1 0,355374541 -ZNF175 0,35555253 -BATF3 0,355680727 -HIST1H2BC 0,35575565 -ERN2 0,356098991 -ZFR 0,356185362 -AW301806 0,356253591 -SMTN 0,356289422 -RPS6KA2 0,356774064 -MIIP 0,35685635 -ARGLU1 0,356919378 -CTNNAL1 0,357152141 -PCDH9 0,357228835 -LAS1L 0,357263917 -DOK1 0,358029668 -AFTPH 0,35852635 -ZNF143 0,358674337 -C11orf71 0,35888557 -MICALL2 0,359221642 -KDM6A 0,359260932 -CFH 0,359284568 -CEBPB 0,359516672 -MTUS1 0,359547348 -AW973791 0,359548173 -SERTAD2 0,359684853 -FGFR1 0,359721729 -KPTN 0,360479451 -NR2F2 0,361169645 -RGL2 0,361384531 -NM_014120 0,361482036 -TAF5 0,361611903 -ZC3HAV1 0,362177526 -BEST1 0,362248528 -TNFRSF1A 0,362724804 -CLIP2 0,363062238 -EHMT2 0,363078239 -IFITM1 0,363162265 -GCFC1 0,363190607 -PECAM1 0,363227012 -YES1 0,363556218 -ZFP36L1 0,363744573 -SBNO2 0,364095165 -RMND5A 0,364201024 -IL10RB 0,364481295 -CBS 0,364486163 -TBC1D2B 0,364503601 -C10orf10 0,36458821 -AU144530 0,365137826 -ZNF500 0,365202134 -ATP6V0E1 0,36527949 -SEPT8 0,365711052 -VCAN 0,365762437 -RPL36AP51 0,366073863 -RPL31 0,36613283 -TAOK1 0,36613666 -GCN1L1 0,366181489 -CALCOCO1 0,366300689 -GNA11 0,366387362 -SH2B2 0,366425408 -RREB1 0,367259867 -SLC35E1 0,3672965 -GPRC5B 0,367311931 -TCF7 0,367371063 -PDIA4 0,367810651 -ZNF34 0,367845233 -MBD3 0,36793004 -CXCR4 0,368041224 -C9orf114 0,368120984 -IFITM2 0,368313531 -ZNF665 0,368328536 -ZCCHC24 0,368368275 -LOC100133944 0,369022431 -CSDA 0,369150342 -AU148255 0,369666508 -CIZ1 0,369704457 -CRTC3 0,369792369 -CTNNA1 0,369962411 -RARRES2 0,37011032 -NM_025033 0,370246707 -VSIG4 0,370274949 -FAM48A 0,370421427 -ZDHHC11 0,370675656 -NPAS2 0,370715345 -ADH1B 0,370935809 -ACSL1 0,371025369 -C1orf63 0,371083889 -TYMP 0,371266716 -LEPREL1 0,371463494 -LAMB2 0,371472469 -MAFB 0,371542293 -AW971248 0,371589606 -BC003629 0,371603781 -FAM63A 0,371786321 -ABCA1 0,371992682 -IGF2R 0,37211512 -SOX13 0,372131188 -WAPAL 0,372391179 -ZFC3H1 0,372437982 -ZNF710 0,372493324 -HSPA6 0,37258644 -CCDC101 0,372823539 -BAZ1A 0,372824952 -AXL 0,372842922 -NPIPL1 0,372916072 -HDGF 0,372923023 -KHDRBS3 0,373093219 -MT1X 0,373144553 -MTMR15 0,373164421 -AF257099 0,373262757 -AEBP1 0,37342966 -KLHL25 0,373672957 -GJB4 0,37372121 -LUC7L3 0,374023648 -U79248 0,374142769 -LOC653562 0,374188384 -RBM4 0,374375075 -ABCC10 0,374890625 -CXorf21 0,374896996 -DAXX 0,374917403 -C1R 0,375063944 -TPST2 0,375279072 -KLHL24 0,375307199 -C7orf68 0,375539219 -ZCCHC8 0,375600764 -CASP4 0,375605037 -ETV1 0,37597402 -BIN1 0,376340315 -RGS19 0,376617752 -PKNOX1 0,377091746 -CTTN 0,377173864 -TRIP10 0,377452782 -ANGEL1 0,377498562 -PLIN2 0,377879768 -NM_025007 0,377942771 -PTMA 0,378229214 -S100A11 0,378255627 -AXIN1 0,378580893 -NPRL3 0,378633074 -PNN 0,378695864 -AV727934 0,378843386 -ANGPT2 0,37912784 -AK023918 0,379250766 -CNPY3 0,37927474 -AF130051 0,37947818 -TLE4 0,379880985 -PAPOLA 0,379974199 -ITGB5 0,380683545 -FAM38B 0,380693638 -PABPN1 0,380909515 -SLC6A8 0,38116858 -RYBP 0,38121367 -NASP 0,381229843 -FGR 0,381246748 -PER1 0,381695992 -CDR2L 0,381867955 -LRRFIP1 0,382075479 -HMHA1 0,382282948 -KIAA0485 0,382313718 -GUSB 0,38235255 -RPS17P5 0,38240934 -FXYD5 0,382563723 -RBL2 0,382697586 -RANBP10 0,382980904 -NEDD9 0,383084673 -MSL2 0,383144236 -FAM50A 0,383317183 -AL080232 0,383323554 -SPG21 0,383712061 -TPD52L1 0,384098652 -H2AFX 0,384141378 -SWAP70 0,384225003 -IVNS1ABP 0,384369268 -KDELC1 0,384542393 -MYL12A 0,384757468 -FOXO3 0,384856157 -MED13 0,385128516 -AL049252 0,38560217 -AF007147 0,385820993 -PAX6 0,385884587 -DNASE2 0,38591545 -SLC12A9 0,386200858 -SIRT1 0,38637719 -ARID5B 0,386492868 -MT2A 0,38656824 -SLC38A2 0,386710042 -GNG5 0,386756333 -SRRM2 0,386841072 -SERPINB6 0,386985458 -CC2D1A 0,387023088 -LRRC37A2 0,387067777 -CSF1 0,387071999 -RPL29P11 0,38708859 -SFRS14 0,387094074 -MYO9B 0,387103012 -AW972855 0,387241981 -TRIP4 0,387728627 -ZBTB40 0,387827711 -STARD8 0,387863703 -WBSCR16 0,387992811 -NXF1 0,388021286 -CTDSP1 0,38803541 -RSAD1 0,388042285 -SUV420H1 0,38833134 -CDKN1C 0,388508896 -NM_016415 0,388588403 -E2F4 0,388673603 -KANK2 0,388702219 -ZC3H7B 0,388980025 -ANGPTL4 0,389035415 -CRY1 0,389801967 -KIAA0556 0,389845114 -TBC1D16 0,390016803 -TCOF1 0,390109025 -ZFYVE26 0,390278079 -IFRD1 0,39034324 -EIF4B 0,390385914 -SMC1A 0,390525141 -SCIN 0,3907272 -MARS 0,391061966 -PTRF 0,391089965 -POLR2J 0,391514571 -APAF1 0,391530483 -ITPK1 0,3915415 -PNRC1 0,392133859 -CLIC2 0,392140808 -KIAA0913 0,392243895 -PRKAR2A 0,392619325 -PRKX 0,392750502 -SYDE1 0,392957216 -ACSL5 0,393140899 -LRP10 0,393162277 -LPP 0,393214983 -SNTB2 0,393383504 -NADK 0,393882671 -PCBP2 0,394206896 -N51370 0,394562467 -CLIC1 0,394663761 -CTBP2 0,394785714 -PHB 0,394929787 -BCL2 0,395102709 -TAF4 0,395492947 -LOC652607 0,395562084 -YBX1 0,396079328 -PRPF3 0,396609142 -SLC38A10 0,396741732 -ERBB2IP 0,396808535 -CFLAR 0,396840203 -TNFRSF10B 0,397091951 -PHC1B 0,397196351 -ARL17A 0,397406114 -ZBTB20 0,397424403 -REPIN1 0,397830532 -BE466926 0,397930108 -MT1P2 0,398055653 -ZNF778 0,398225613 -DICER1 0,398300689 -NM_018603 0,398329284 -RAF1 0,398631868 -MXD4 0,398685167 -FBXL7 0,398770393 -CALD1 0,399121196 -GSDMB 0,399246982 -ZCCHC2 0,399293751 -PODXL 0,399691684 -ACACB 0,400136922 -VEZF1 0,400413083 -PLEKHM1 0,401187317 -CSPG4 0,401646086 -ID3 0,40170175 -RBM41 0,401719975 -KDM6B 0,401885964 -PHF15 0,402522419 -LAMP2 0,402538077 -CDC14B 0,402583482 -HNRNPL 0,403044314 -SLC4A2 0,403448509 -DDX23 0,403953946 -TUBD1 0,40407115 -SLC16A3 0,404204458 -CAPN2 0,405022548 -CBFA2T2 0,40560438 -TCEB2 0,405769952 -HNRNPF 0,406126644 -MORC2 0,406182732 -FOXO1 0,406430281 -AI962978 0,406538883 -HP1BP3 0,406567553 -CBFB 0,406789498 -RBM14 0,406886421 -SFI1 0,407058786 -ZHX3 0,407089165 -KDM3A 0,407233406 -SIRT2 0,407341821 -ANKS1A 0,407373917 -TCF3 0,407442968 -NOTCH2NL 0,407672378 -EEF1D 0,407830724 -SOX12 0,408065349 -SLCO1A2 0,40820492 -HNRNPA3 0,408299868 -GTF2H3 0,408624789 -FZD9 0,408729069 -SAFB2 0,408755308 -APBA3 0,408834306 -ASCL1 0,409161488 -CG012 0,409559201 -WDR59 0,409606436 -LAMA5 0,409632505 -ZNF276 0,409730125 -ZNF395 0,410080702 -TIMM44 0,410223052 -BGLAP 0,410749324 -ZHX2 0,411039562 -CARS2 0,411302016 -SLCO3A1 0,411338796 -LOC442497 0,411765627 -FRYL 0,411842495 -CYP2J2 0,412070197 -ABL1 0,412522321 -INF2 0,412975218 -SGK1 0,413352645 -SFTPB 0,413789208 -TIGD1L 0,41383023 -RBCK1 0,414019825 -TRAPPC10 0,414285862 -DUSP7 0,414641136 -WSCD1 0,415016303 -DCP1A 0,415308358 -LPAR1 0,415365439 -RBBP6 0,415730871 -DONSON 0,416255506 -C16orf5 0,416258918 -NCOA1 0,416350707 -CFHR1 0,416440287 -AA126763 0,416566153 -LRRC32 0,416765832 -CP110 0,41732481 -LTBP3 0,417338221 -TDRD3 0,417356196 -HMG20B 0,417456909 -CDC42EP2 0,417645635 -TAF1C 0,417736819 -NM_013344 0,41778911 -VGLL4 0,417820331 -PHKA2 0,417904785 -KDSR 0,418009802 -RELA 0,418064238 -TBL1X 0,41814877 -SIAH2 0,418727849 -MYO1E 0,418747589 -HIST1H2BD 0,419127582 -AI744451 0,419208355 -PTMAP7 0,419537834 -ARID5A 0,419593497 -CYP27A1 0,420064872 -RAB13 0,420441013 -CPSF7 0,420526378 -CPT1B 0,420770156 -LRDD 0,420794327 -PILRB 0,421599366 -STAB1 0,421733406 -FCHO1 0,422126906 -ZNF32 0,422311821 -TBC1D3H 0,422328806 -C1orf66 0,42292679 -NM_025032 0,423323973 -AI732802 0,423584905 -PCID2 0,423787762 -POGK 0,423912669 -TMEM140 0,424587207 -TMC6 0,424604298 -AL080160 0,42490597 -AK021505 0,425024442 -SCD5 0,425610027 -RAD52 0,425956612 -AF116715 0,425960499 -DCI 0,425967692 -SFRS18 0,426091505 -HCG2P7 0,426136765 -ADORA2A 0,426366158 -NM_021651 0,426442506 -MID1IP1 0,426940092 -HNRNPC 0,427103695 -NM_025024 0,427155973 -AK024315 0,427460397 -AK021514 0,427966252 -SLC29A3 0,428138792 -NSUN5 0,428255135 -PHF10 0,428599049 -DAPP1 0,428626141 -TMEM109 0,428647746 -LOC91316 0,428742129 -ITGB4 0,42956266 -SLC30A1 0,429998682 -AW150065 0,430129937 -ZCCHC6 0,430267528 -ARHGEF2 0,430371137 -AK027193 0,43049002 -TRIM52 0,430535815 -MT1G 0,430767233 -NOTCH1 0,430849119 -ZRSR2 0,43114681 -RPS6KA1 0,43184981 -KANK1 0,432456197 -FURIN 0,432618855 -APOBEC3C 0,432749845 -ANKRD40 0,432772877 -TRIOBP 0,432900403 -ZNF384 0,433116555 -CDKN1A 0,43319672 -BTG1 0,433570541 -EPHX1 0,433658916 -CNOT6 0,434207544 -HSPA1L 0,434322364 -PKD1 0,434547199 -WAS 0,434717417 -RPL23AP32 0,434993767 -P4HA1 0,434997425 -MAX 0,435160002 -UIMC1 0,435278167 -NM_025120 0,435322168 -NCOA6 0,435700178 -TPD52L2 0,435768747 -BCL6 0,435938226 -AK024108 0,436355329 -C7orf23 0,436800978 -CDC42BPA 0,437074951 -CD59 0,437137855 -POLR1B 0,437227618 -TLR5 0,437498143 -HDAC1 0,437993569 -ARHGEF7 0,438071237 -AA045174 0,438161955 -TBC1D17 0,438488128 -PRELP 0,438518539 -GTF2H2B 0,438525643 -HIST1H2BK 0,43866778 -AU147851 0,438979485 -RBM39 0,439661925 -IQGAP1 0,439786742 -RPL18AP3 0,440613252 -LTBR 0,440721546 -RPL35A 0,441136859 -ARAP2 0,441441928 -ARAF 0,441560027 -MT1H 0,441587824 -LOC441258 0,442117007 -ZCCHC14 0,442132801 -IRF7 0,442147625 -NOL12 0,442203671 -PTPLB 0,442541309 -AI683552 0,442752948 -MYST1 0,442881562 -MXI1 0,443040642 -AW974910 0,443299524 -C1orf144 0,443500279 -KRCC1 0,444417306 -PIAS4 0,444438643 -SRSF1 0,444637015 -LRP2 0,444740953 -ZDHHC18 0,445392541 -SPN 0,445443935 -ST13 0,446667878 -PHF17 0,446746739 -NACA2 0,446876872 -SASH1 0,447285208 -CD22 0,44772036 -CSNK1E 0,447902552 -COL5A3 0,447933631 -MAT2A 0,448695587 -EFHD1 0,448820126 -MAP3K3 0,448963961 -BIN3 0,449317201 -LUC7L 0,449469644 -KIF1C 0,449622117 -RNF144A 0,450034368 -TULP3 0,450626451 -CDKN2C 0,450879897 -HSD17B7 0,451226227 -ACIN1 0,451331774 -PABPC3 0,451363083 -PHF21A 0,45139036 -HNRNPH3 0,451480034 -HIST2H2BE 0,452219911 -RRP1B 0,452597128 -SOX2 0,453132172 -ZNF444 0,453296716 -FAM13A 0,453547738 -JUP 0,453753674 -PODNL1 0,453854292 -MAML1 0,453885 -SNRNP70 0,45408945 -SDCCAG3 0,45464357 -PLGLB1 0,454722494 -CDH19 0,454754165 -HSPA1B 0,455063205 -ARHGEF10 0,455229121 -NFIL3 0,455469821 -NFKBIA 0,455577982 -XRCC2 0,455670024 -ACTN4 0,455764555 -PDS5A 0,456071133 -POU2F1 0,456120351 -VPS54 0,456318614 -BANF1 0,456451252 -PGCP 0,456765652 -RPL28 0,456867479 -ICAM2 0,457066169 -SNAP23 0,457069788 -SART1 0,457941993 -AK023891 0,458253977 -BANP 0,458588544 -MAP3K11 0,458968207 -EPOR 0,459463669 -FKSG49 0,459538011 -MT1F 0,459638951 -NM_014128 0,460468204 -AP1G2 0,460676306 -GAS2L1 0,461632768 -PHIP 0,462053958 -NOL8 0,462387404 -NM_017932 0,462395281 -RNF130 0,462894529 -ZMYND8 0,463309493 -AK024525 0,463401166 -TRIM28 0,463454342 -BCAT2 0,463509769 -TYRO3 0,463574548 -PHLPP1 0,463738295 -BST2 0,465024297 -PDGFRB 0,465034704 -AL049987 0,465336929 -AKAP8L 0,466278804 -TGM2 0,467555999 -CREBBP 0,467899354 -KIAA0894 0,468325808 -DDX39 0,468959477 -NCAPD2 0,468959537 -ALPK1 0,469621875 -TGIF1 0,469902489 -PPP1R14B 0,470121069 -PNMT 0,470291567 -NAA16 0,470467422 -ZNF611 0,470526774 -ZRSR1 0,470857426 -NPIP 0,472818474 -RBM38 0,473036567 -USP34 0,473278809 -TGFB3 0,474067001 -ITSN2 0,475328182 -CEBPD 0,475754278 -MCM3AP 0,476296498 -HAPLN2 0,476718109 -POGZ 0,477224004 -NR2F1 0,477556735 -GAS1 0,478628972 -SLTM 0,478903701 -ECE1 0,479007813 -CALCOCO2 0,47910558 -RXRA 0,479821295 -MEIS2 0,480178943 -CLEC2B 0,481843785 -AL049260 0,482481089 -CHST3 0,48259726 -COL16A1 0,483094975 -SLC25A16 0,483255606 -LHPP 0,48421483 -AF010144 0,484619234 -GTSE1 0,484629217 -MUM1 0,484956644 -TNXB 0,485246904 -PRINS 0,486032909 -ANKRD49 0,486282532 -PTPRK 0,486899575 -PPAP2C 0,487395433 -C22orf9 0,488987561 -KHNYN 0,489026627 -RAPGEF3 0,489474077 -AF078844 0,489716822 -MAN2A1 0,489875474 -IFT20 0,490824284 -USP21 0,490859618 -NOP2 0,491526918 -LOC440248 0,491905455 -LOC647070 0,493492979 -MAFF 0,494072026 -BG251521 0,495196452 -C6orf145 0,496322836 -MLL4 0,496324893 -ATF4 0,49676781 -RELN 0,497310216 -PELI1 0,497491599 -P2RX7 0,497499324 -CNOT2 0,498172475 -FAM38A 0,498599859 -DCLRE1C 0,498693515 -INSR 0,502304787 -MAPKAPK2 0,502573806 -NDE1 0,50267356 -MT1M 0,502716901 -CDK5RAP3 0,504041432 -SULT1A4 0,504805398 -NSUN5P2 0,505093708 -ANKRD10 0,505841449 -LOC339047 0,506042447 -LRRC1 0,506594446 -CUX1 0,507257715 -SRRT 0,508240438 -MAF 0,508625791 -EBLN2 0,509549245 -NM_017618 0,510705903 -RBM4B 0,51138423 -FBXW12 0,511744983 -ATP8B1 0,511969804 -NM_024978 0,512045897 -KCNMB4 0,512142959 -CLMN 0,512461537 -LOC100132540 0,512589899 -SERPINH1 0,513136463 -RHBDF2 0,513703735 -PCF11 0,514081494 -HAUS2 0,514694211 -TECPR2 0,514970535 -TNIP2 0,515014912 -AUP1 0,516155581 -KIAA0101 0,516801916 -N35922 0,51703624 -STK38 0,517483454 -AZGP1P1 0,518047589 -C13orf15 0,518310047 -PRR11 0,518691616 -PDCD6 0,51972326 -AFF1 0,520716014 -AF222691 0,521107674 -BE045142 0,521502008 -PACS2 0,521749261 -PSRC1 0,522634606 -ZNF358 0,523463012 -MAPKBP1 0,523696079 -S100A4 0,524041412 -MYO1C 0,524902669 -IRF3 0,52538788 -TOB2 0,526119659 -KLHL21 0,527145117 -PGF 0,527713686 -LOC399491 0,528407104 -ARAP1 0,528556373 -AZGP1 0,528659072 -SIRT7 0,528927974 -C16orf53 0,529668261 -KLHL2 0,533153888 -AK022213 0,533802801 -ANKRD28 0,534099367 -TF 0,536170201 -MAVS 0,53636005 -MSX1 0,536723495 -C12orf35 0,537890473 -AA554945 0,538449904 -SUN2 0,539191173 -RBM6 0,54218394 -AL080112 0,542349721 -SORT1 0,542569398 -AL049285 0,542660805 -FOXO4 0,542834527 -ABCA8 0,543725594 -RING1 0,54468938 -KCNE4 0,546337688 -TAZ 0,546506594 -DIP2A 0,546907877 -CLK4 0,548788669 -ZNF277 0,549312201 -MUS81 0,551193399 -DBT 0,556696292 -EMP3 0,557013195 -DDIT4 0,557077384 -RUFY1 0,557170712 -MYST3 0,559285285 -PRPF4B 0,559881298 -LOC100132247 0,562956585 -HSPB1 0,56508456 -CHD7 0,566776564 -CHORDC1 0,566831861 -COBL 0,569205746 -STAG2 0,569603186 -CTDSP2 0,570069613 -ZNF160 0,572703009 -PDE4C 0,574535337 -WWC3 0,575159977 -BMI1 0,576213767 -CRYAB 0,577245348 -AHCTF1 0,577515066 -ADIPOR2 0,5780263 -CASC3 0,57815663 -MUTYH 0,579456271 -AK023783 0,580340854 -HIGD1B 0,583663012 -PLOD1 0,587347495 -PRR14 0,587364521 -SH3BP4 0,58788373 -C19orf28 0,587956493 -NDRG1 0,588555643 -HIST1H1C 0,591446402 -TCF12 0,592176798 -MPST 0,593408757 -SEPP1 0,593935425 -DNAJB6 0,595685757 -SIRPA 0,596218961 -FLT1 0,597923318 -MYOT 0,598968138 -HIST1H2AC 0,600586387 -HBP1 0,600714263 -KAZ 0,601415288 -PTBP1 0,602313539 -NSUN5P1 0,603090503 -GUSBP3 0,604393039 -KCNJ2 0,616084197 -KAT2A 0,620256502 -MCM7 0,622618327 -FBXW4 0,627081137 -MKNK2 0,628440154 -IL17RB 0,631530593 -CLK1 0,632420317 -LRP4 0,632833859 -FAM53B 0,641895571 -JMJD6 0,64411039 -TYK2 0,644727629 -PLOD3 0,644893842 -CXXC1 0,650530485 -AK024136 0,659066605 -PAN2 0,66036619 -NPTX2 0,665210794 -SPEN 0,669461617 -SETD5 0,670191692 -STX10 0,674048462 -CDK2AP2 0,67411425 -PPM1B 0,68382966 -SLCO4A1 0,685048974 -GLT25D1 0,706365388 -ZC3H11A 0,716021559 -ZBTB16 0,720405109 -ZNF692 0,720940567 -NUPR1 0,724120307 -FLCN 0,747339708 -NFASC 0,755177517 +name value +GBE1 -0,943978048 +SLC18A2 -0,941309505 +KCNJ6 -0,894120983 +DLK1 -0,887122171 +PTDSS1 -0,851959645 +FGF13 -0,842876271 +PCDH8 -0,83524894 +ZNF226 -0,82900335 +SLC6A3 -0,824713365 +PIP5K1B -0,812285785 +DENR -0,81101551 +TPBG -0,806963209 +PRKAR2B -0,805288865 +OSBPL10 -0,80406299 +ALDH1A1 -0,795042129 +GGCX -0,795035797 +ACP2 -0,794853979 +SLITRK5 -0,793842132 +FAM70A -0,793715412 +HPRT1 -0,792370336 +CCNH -0,790971864 +MYRIP -0,78490295 +TUBB2A -0,783142444 +ACTR10 -0,782043082 +BASP1 -0,778702387 +CADPS2 -0,777552826 +PID1 -0,775106213 +SV2C -0,774895093 +RBM3 -0,77091551 +REEP1 -0,770000111 +RIMBP2 -0,766421185 +CNIH3 -0,765790316 +DMXL2 -0,765309344 +LOC10431 -0,762992699 +SV2B -0,759985564 +AGK -0,756506198 +RCAN2 -0,753762002 +LPPR4 -0,753018962 +RALYL -0,75270126 +L1CAM -0,751978689 +BCAS2 -0,751241508 +LOC100131795 -0,750350108 +TH -0,748260596 +AV756161 -0,747351587 +TRIM36 -0,746057792 +MPPED2 -0,743864716 +NELL2 -0,742513977 +MAGED1 -0,739190733 +LRRC49 -0,738776851 +SYNGR3 -0,734846774 +ERC2 -0,734619705 +VBP1 -0,73223558 +UQCC -0,729749962 +DCLK1 -0,725139215 +GSS -0,724321987 +OPA1 -0,723790592 +PPP2R2B -0,720892147 +COPS4 -0,720599852 +NSF -0,720580224 +DLD -0,72035948 +DYNC1I1 -0,719837984 +GABARAPL3 -0,717235008 +GPRASP1 -0,71302626 +NAP1L2 -0,712876929 +AMPH -0,711957162 +PNMAL1 -0,70952389 +RGS6 -0,706463 +LDB2 -0,704777497 +TTC19 -0,704232585 +SCN3B -0,703738866 +ATPIF1 -0,702603531 +BEX1 -0,700382911 +LMO3 -0,699029823 +TBC1D9 -0,698189481 +NDUFS1 -0,697230219 +INSM1 -0,696524737 +PARL -0,696362568 +MRPL15 -0,688780959 +C3orf14 -0,687875821 +C19orf62 -0,687403479 +PCYOX1L -0,686812669 +VRK1 -0,685016241 +MDH2 -0,684889561 +SMYD3 -0,684642724 +ASAH1 -0,68459801 +GSTA4 -0,684021936 +NDUFA9 -0,683116722 +ATP5C1 -0,682289667 +DDX25 -0,681511867 +GNG3 -0,681122999 +MUDENG -0,67996077 +SCG2 -0,679728044 +MOAP1 -0,679575281 +SYT1 -0,678979261 +ATP6V1H -0,6786546 +SHOC2 -0,677754756 +PCSK1 -0,677441918 +LBH -0,67710638 +HK1 -0,676818391 +KIAA0319 -0,676346138 +SMAP1 -0,67618103 +EHBP1 -0,675429621 +RAP1GAP2 -0,673705297 +FABP7 -0,673485271 +LRRN3 -0,6731503 +AHNAK2 -0,672875949 +DHDDS -0,671959403 +SNAPC5 -0,670824633 +C17orf108 -0,670563093 +AL390170 -0,67026906 +PTS -0,669577055 +NUDT11 -0,668061506 +HMP19 -0,66794356 +IMMT -0,667541939 +RGS4 -0,667109174 +RET -0,667088994 +PBLD -0,666164981 +AP3M2 -0,666056972 +WDR7 -0,665751643 +ATP6V0D1 -0,665487037 +RTF1 -0,664652469 +TUBB3 -0,664644351 +CHCHD2 -0,664529051 +DYNLT3 -0,663584428 +RAB6B -0,662755469 +CHGB -0,661865706 +NGFRAP1 -0,659441958 +AZIN1 -0,659394366 +EN1 -0,659313013 +SNX10 -0,659251628 +MIA3 -0,65882244 +ANK1 -0,657621479 +NR4A2 -0,65598531 +ANAPC13 -0,655864214 +RGS7 -0,654445938 +NME5 -0,652754395 +TXNDC9 -0,652019899 +PPIP5K2 -0,651763237 +RFK -0,651442652 +BE674466 -0,651048329 +PEG10 -0,650932122 +PIAS2 -0,650823358 +CUX2 -0,649970555 +SEPT6 -0,649422911 +FKBP1B -0,649416387 +C12orf10 -0,648407487 +HMGCS1 -0,648164918 +WDR61 -0,648133373 +GFPT1 -0,647751981 +MLLT11 -0,647471245 +AGTR1 -0,645674318 +CSNK1D -0,645408463 +WDR47 -0,64495088 +PSMD14 -0,644669314 +CISD1 -0,643780748 +PSMD11 -0,642982055 +KCNS3 -0,642919136 +TIMM8B -0,642730563 +RUNDC3B -0,641744336 +ANKRD6 -0,640032629 +MDH1 -0,639623665 +STMN2 -0,639070421 +BAI3 -0,638894116 +STX12 -0,638382169 +NECAP1 -0,638376593 +NIT2 -0,638223243 +CIRBP -0,637859912 +XK -0,636787355 +KIAA1797 -0,636384728 +ICMT -0,636379567 +GALT -0,636138691 +SPINT2 -0,635454321 +PAIP1 -0,634724103 +TAGLN3 -0,63459569 +CADPS -0,634245008 +GALNT11 -0,634168707 +SLC9A6 -0,632805526 +ANKRD34C -0,63217094 +COPG2IT1 -0,63213856 +VPS4B -0,63135628 +ATP6V0E2 -0,631164455 +SC5DL -0,631137699 +CNPY2 -0,630875303 +GCC2 -0,630691438 +CRYZL1 -0,63015348 +MOBKL3 -0,630076244 +SNCA -0,629316875 +STAM -0,628134338 +TUBA4A -0,627764216 +MAK16 -0,627148096 +FRY -0,626684765 +UBE2V2 -0,626378865 +RWDD2B -0,626170788 +FBXO9 -0,62572532 +FLJ41278 -0,6251633 +SLC30A9 -0,624759053 +LOC100132015 -0,623179237 +EXOG -0,622056922 +RAP1GAP -0,618803848 +DYNC1LI1 -0,618641756 +HARS -0,618639749 +NDUFA5 -0,618245275 +SPCS1 -0,618130333 +PSMB7 -0,618122572 +NETO2 -0,618103081 +ATP5G3 -0,617855025 +UCHL1 -0,617452524 +FAM127A -0,616124191 +TSSC1 -0,615619431 +CBLN1 -0,615519237 +CYB5R1 -0,615294192 +PSMG1 -0,61487171 +AKAP12 -0,614821543 +CYB561 -0,614281499 +KCND3 -0,613554227 +GABRB1 -0,613364723 +SLIT1 -0,613251897 +HN1 -0,612796898 +F8 -0,612749576 +VSNL1 -0,611517123 +ATP5A1 -0,611141848 +ARMCX5 -0,610703909 +AI097640 -0,610659067 +CERK -0,610508368 +TMX4 -0,610174408 +TSPAN13 -0,609932725 +CAMLG -0,609409157 +NDUFA7 -0,609351405 +STRAP -0,609237631 +RTCD1 -0,607502869 +ORC5L -0,606910471 +SCG5 -0,606870723 +HSPA12A -0,606863939 +VAV3 -0,606070683 +TUBB2C -0,60582666 +DCTN2 -0,605238426 +OCRL -0,604661192 +HPCAL4 -0,604023171 +ARL1 -0,604008234 +CDK14 -0,603712397 +TLK1 -0,603591955 +BLVRA -0,603201697 +NEFL -0,602887281 +SLC25A32 -0,602708801 +ATXN10 -0,602624835 +UQCRC2 -0,601726567 +SLC25A3 -0,601470752 +MYL12B -0,601373186 +CDS2 -0,601292766 +DDC -0,601079077 +BSCL2 -0,6009448 +CACNB3 -0,598982611 +RIMS3 -0,598771066 +LASS6 -0,598387226 +FIBP -0,598382328 +LRPPRC -0,598144321 +PYROXD1 -0,598012671 +MAP3K9 -0,597438703 +CHL1 -0,5969101 +FJX1 -0,596748319 +PFN2 -0,596551333 +ATMIN -0,59649395 +LIN7B -0,596058244 +AV704232 -0,595274626 +PPP2R5C -0,594797769 +SNAP91 -0,59414072 +AKT3 -0,593859242 +NDUFAB1 -0,593111219 +CCDC28A -0,59307395 +GLOD4 -0,592429097 +STXBP1 -0,591440124 +HLTF -0,591296161 +CRMP1 -0,590916915 +KIAA0513 -0,590696005 +GHITM -0,590624599 +ATP6V1B2 -0,590367192 +USP14 -0,589739205 +RNFT2 -0,589705749 +SCG3 -0,589375952 +ATP5B -0,588999541 +FAM136A -0,588982627 +UBE2N -0,588308222 +ANXA6 -0,588071667 +MRTO4 -0,58799806 +SNRK -0,587183425 +CACNA2D2 -0,587134808 +IFT57 -0,586933566 +PPP3CB -0,586906049 +RICH2 -0,586554767 +ME3 -0,586514247 +THOC7 -0,585617181 +FAM188A -0,584083221 +EIF2B3 -0,582997986 +CNTNAP1 -0,582856877 +SCRN1 -0,582791752 +ACAT1 -0,582760841 +IDI1 -0,582694626 +PBX1 -0,582658829 +CDC42 -0,582658446 +NBEA -0,582614884 +PPP1R2 -0,581839918 +ACTR6 -0,581817384 +TAF9 -0,581794162 +NIPSNAP1 -0,581711722 +SEC61A2 -0,58139821 +WDR37 -0,581272248 +VWA5A -0,581248993 +CDC27 -0,580500838 +MYT1L -0,580491453 +PSMC1 -0,580473356 +KATNB1 -0,578133005 +ZWINT -0,577661475 +C12orf24 -0,577181135 +SLC25A46 -0,577144749 +DOLK -0,576794187 +APOO -0,576716633 +GCH1 -0,576494714 +TBC1D30 -0,575582077 +DCTN3 -0,575526778 +FBXL2 -0,575141782 +KIFAP3 -0,574923419 +CMAS -0,574834972 +C18orf10 -0,574780811 +PNMA2 -0,574504978 +PDHX -0,574434123 +SAMM50 -0,574204311 +NDUFA2 -0,574087728 +NPTN -0,573534504 +HIGD1A -0,573110642 +CYC1 -0,573010558 +HMGCR -0,572959475 +TRAPPC2L -0,572517332 +IMPA1 -0,572397104 +IMPACT -0,572070372 +KIAA0802 -0,572067617 +DSTN -0,571964512 +C5orf44 -0,571958339 +CCK -0,571148184 +OGDHL -0,571078621 +TCP11L1 -0,570951095 +RNF14 -0,569913578 +IARS -0,569079443 +CDH8 -0,569072707 +RNF41 -0,568830451 +SCN3A -0,568276898 +PSMD12 -0,567936617 +TNFRSF21 -0,567631199 +FIG4 -0,566751868 +DDX24 -0,566446037 +MARK1 -0,566206858 +ATP8A2 -0,565754513 +ACLY -0,565055263 +DDX42 -0,564984354 +KIF3C -0,564949485 +PIN1 -0,564290859 +PSEN2 -0,564206755 +TERF2IP -0,564084181 +VDAC3 -0,563895581 +B3GNT1 -0,563686309 +CHN1 -0,563660153 +GLO1 -0,561564055 +RAB11A -0,561549092 +PRPS1 -0,561391557 +MAP2 -0,561080301 +NHP2 -0,56096586 +DNAJA2 -0,560780556 +NDRG4 -0,560771764 +HNRNPA0 -0,560406816 +NDUFV2 -0,559975953 +ADH5 -0,559909821 +FAM3C -0,559672666 +COPS7A -0,559265307 +SULT4A1 -0,558733244 +MATN3 -0,558346148 +TMEM14A -0,557817575 +HRASLS -0,557799459 +TMEM14B -0,557593404 +TTC1 -0,557573183 +R3HDM1 -0,557428266 +AUH -0,55725646 +C5orf22 -0,55714645 +TUBB -0,557095971 +C5orf13 -0,55663948 +COX7A2L -0,556219721 +POMP -0,556110434 +ATP5J2 -0,555267292 +ZNF204P -0,555121445 +INA -0,554984251 +NUP93 -0,55488654 +STAU2 -0,55454534 +VAT1 -0,554180752 +DDB1 -0,554146967 +THY1 -0,554057809 +SRPRB -0,553818923 +IMP4 -0,553554219 +SRP19 -0,552319097 +FUCA1 -0,551919323 +PRKCZ -0,551777138 +CD2BP2 -0,55167071 +C12orf43 -0,551436389 +SUSD4 -0,55137396 +W88821 -0,551080268 +LSM4 -0,550328209 +SNAP25 -0,550276399 +ACSL6 -0,549806401 +MYH10 -0,549550685 +DDHD2 -0,548942799 +PRKACA -0,548422775 +CHRNB3 -0,547701041 +NEFM -0,547618123 +PLD3 -0,547495065 +GSPT2 -0,547329995 +ATP6V1E1 -0,546911033 +GABBR2 -0,546899558 +IPW -0,546596796 +SCAMP5 -0,546380917 +RFPL1S -0,545994554 +BSN -0,545979557 +MAGI1 -0,54490486 +DRG1 -0,544733954 +PITPNB -0,544704547 +LETMD1 -0,544636809 +AI263044 -0,544470885 +STOML1 -0,544383238 +GBAS -0,544103215 +RAB3GAP1 -0,543092086 +ACTG1 -0,54300405 +PPME1 -0,542943175 +AFG3L2 -0,542490245 +DNAJC6 -0,541912283 +TUBA1B -0,541625287 +ABCE1 -0,541581351 +ARF3 -0,541401116 +SRSF3 -0,54134715 +NEFH -0,540578844 +ADK -0,540377244 +TIMM17A -0,540158649 +ELOVL6 -0,540054201 +FAM189A1 -0,539987546 +ATP6V1A -0,539816156 +OAT -0,53960074 +KIAA0284 -0,539436564 +SLC25A12 -0,538986194 +AP3D1 -0,538816413 +ISCU -0,53848727 +CDH10 -0,538458105 +APEH -0,538385859 +TMEM35 -0,537944022 +NDFIP1 -0,537769873 +U79277 -0,537586945 +SYNGR1 -0,53757151 +MEAF6 -0,537175986 +DNM1 -0,536361784 +DEF8 -0,536162488 +PDXK -0,536128962 +RIT2 -0,536060129 +AACS -0,535868362 +RAB3A -0,535840143 +LXN -0,535676847 +CCBL2 -0,53559953 +ATXN7L3B -0,535570224 +RCN2 -0,535264733 +SDC2 -0,535187449 +NRXN3 -0,534911729 +SDC1 -0,534748047 +PSMD1 -0,534162775 +UBA5 -0,534098166 +PEX11B -0,533915774 +RAP1GDS1 -0,533764019 +NUPL1 -0,533680375 +ARMCX1 -0,533607326 +SDHAP1 -0,533209621 +PJA2 -0,532853246 +ACOT7 -0,532662038 +SEZ6L -0,532618647 +CELF2 -0,532603645 +CXorf40A -0,532513065 +NDUFB5 -0,532279155 +GARS -0,532224902 +NRG1 -0,532009485 +SEC31B -0,53180843 +ME1 -0,531466374 +PSMD8 -0,531445018 +MSL1 -0,531268404 +PCLO -0,531166247 +RAB14 -0,531006634 +MAGED2 -0,530858407 +EIF3K -0,530846086 +MMD -0,530845303 +MYO5A -0,530805656 +NCRNA00094 -0,530597959 +KIAA1107 -0,53057188 +KIAA0564 -0,530294183 +PSMB2 -0,530140819 +C1orf114 -0,530111522 +GCLM -0,529867963 +NDN -0,529086871 +SRD5A1 -0,528786683 +DNAJB9 -0,528374918 +SLC7A8 -0,528181836 +CLIP3 -0,527794519 +NDUFB1 -0,527724864 +CLSTN2 -0,52726691 +C14orf156 -0,527148764 +CIAPIN1 -0,527136633 +ATP5F1 -0,527047789 +PSMB5 -0,526841307 +FAM32A -0,526499611 +KIAA1644 -0,526147045 +RTN1 -0,526062751 +EXOSC9 -0,525622526 +PFKM -0,525053758 +TCF25 -0,524910517 +ATP5O -0,524889972 +PTPRN2 -0,524794642 +SNX4 -0,524373257 +ATP6V1G2 -0,524016622 +SLC35E3 -0,523930118 +SLC2A6 -0,52364368 +SUCLA2 -0,523588063 +PLCB1 -0,523263994 +TMEM30A -0,521872901 +PDE4D -0,521870014 +RAB5A -0,521632556 +MAPK9 -0,521572661 +CAP2 -0,521120749 +RPS6KA3 -0,520660932 +GNAO1 -0,520506337 +PSMD6 -0,520132666 +TBCE -0,519679173 +C9orf125 -0,519623009 +MN1 -0,51937171 +MFSD1 -0,51842841 +KIF3A -0,518357676 +SHFM1 -0,517546292 +NRIP3 -0,516545986 +ANKMY2 -0,516365077 +CDK5 -0,516196782 +REEP5 -0,516165841 +SLC1A1 -0,516141732 +UBE2K -0,516036367 +SMEK2 -0,515537555 +PI4K2A -0,515462049 +TTC39A -0,514924765 +GUCY1B3 -0,514788287 +QPCT -0,514170797 +ST6GALNAC5 -0,514077764 +ATP6V1F -0,513941613 +HSD17B12 -0,513489073 +PPFIA2 -0,51321383 +PLCH1 -0,512855521 +CNTN6 -0,512564243 +ENTPD6 -0,512350634 +ALAS1 -0,512141897 +RUNDC3A -0,511994377 +PCMT1 -0,511547085 +IDS -0,511290223 +PLEKHB2 -0,510964275 +CDO1 -0,510668427 +NDUFB6 -0,510219117 +COX6C -0,509869079 +OPTN -0,509603205 +PSMA1 -0,509510596 +STS -0,509361214 +TIMM10 -0,509318807 +C1D -0,509252454 +GAP43 -0,509215292 +CCDC6 -0,509150548 +TRIM37 -0,509012308 +ATP2B2 -0,508803511 +PGAM1 -0,50863259 +GGNBP2 -0,508616013 +SRP72 -0,508482078 +TCEAL2 -0,508464868 +SV2A -0,508330914 +CDK5R2 -0,508227652 +FHOD3 -0,508155146 +FECH -0,508046235 +ATP2A3 -0,507932978 +SUB1 -0,507787459 +ACO2 -0,507726776 +C20orf3 -0,507526055 +SEC22B -0,507453281 +VPS35 -0,507278509 +MRPS33 -0,507141908 +TXNL4A -0,50704416 +ARHGEF9 -0,506224253 +RBM9 -0,506096633 +TMEM135 -0,506088817 +UHRF1BP1L -0,505757524 +ME2 -0,505446593 +BZRAP1 -0,505378895 +MCAT -0,50534007 +AKAP6 -0,505213579 +COPS3 -0,505110121 +MRPS35 -0,505107922 +YWHAB -0,505015581 +PEX7 -0,504955276 +COPS8 -0,504746043 +OXCT1 -0,504643125 +MAD2L1 -0,504589351 +MCTS1 -0,504510155 +LGALS8 -0,50448664 +ACP1 -0,504339709 +MX1 -0,50393674 +NCALD -0,50389725 +TASP1 -0,503797818 +AGTPBP1 -0,503605082 +RNF128 -0,503554068 +PSMD13 -0,503503704 +TXN -0,50336484 +NHLH2 -0,50325399 +USP12 -0,503149229 +PFDN4 -0,502988386 +NAP1L3 -0,502893901 +MRPL20 -0,502624211 +ACSL3 -0,502355771 +MTPAP -0,502307088 +PMPCB -0,502239978 +SH3GL3 -0,502227406 +API5 -0,502196949 +CAPNS1 -0,5020898 +YWHAZ -0,501747483 +TOMM70A -0,501591565 +STX18 -0,501503813 +HNRNPK -0,501464694 +LRP1B -0,501433491 +CDC123 -0,500993468 +DCTN6 -0,500740808 +VAPB -0,500599356 +CCDC56 -0,499906136 +GOT2 -0,499477446 +RHEB -0,499343134 +PSMD2 -0,499333749 +YPEL5 -0,49910251 +ATP5G1 -0,499077107 +TUBA1A -0,498949544 +GSTM3 -0,498766376 +EPB41L1 -0,498605796 +EPS15 -0,498447403 +ENO2 -0,498261848 +ASMTL -0,498100631 +FH -0,498098378 +CLTC -0,497596743 +PSMA3 -0,497405846 +UROS -0,497291028 +OLFM1 -0,496832922 +ATP6V1G1 -0,496818916 +B3GALNT1 -0,496135395 +PHLPP2 -0,496077027 +TSPYL1 -0,495383913 +SERINC1 -0,49538338 +RPL15 -0,495355843 +ITFG1 -0,495195881 +PDHB -0,494999933 +RABL3 -0,494855325 +TMEM22 -0,49462563 +MCFD2 -0,494506103 +GABARAPL1 -0,494373853 +MAGEL2 -0,493987847 +VPS33B -0,493750355 +CDIPT -0,493440531 +ATP6V0B -0,493438352 +CLGN -0,493358721 +SEC23A -0,493255831 +C7orf43 -0,49286586 +ARL3 -0,492481932 +SLC12A5 -0,492392187 +LAPTM4B -0,492348426 +LOC285359 -0,492290998 +LARP1 -0,49192011 +YME1L1 -0,491725992 +RAB2A -0,491586306 +SPATA20 -0,490991626 +ASH2L -0,490785052 +PTBP2 -0,490747846 +WTAP -0,490599757 +NANS -0,490410248 +SCFD1 -0,490269997 +EPB49 -0,489916122 +TUFT1 -0,489843226 +POP4 -0,489594415 +CACNA1G -0,489236615 +PRPF19 -0,48917604 +NCOA4 -0,488872014 +C1orf216 -0,488856307 +TXNL1 -0,488777426 +AMPD2 -0,48875487 +ASL -0,488300478 +PFDN1 -0,48807629 +EXTL2 -0,488020888 +RPA3 -0,48773487 +ACVR1B -0,487609726 +ANKRD46 -0,487476076 +GRIA1 -0,48726366 +PSMB6 -0,487099126 +CAPRIN2 -0,486969775 +SRGAP3 -0,48684289 +ARPC5L -0,486786621 +PSME3 -0,486309204 +NME2 -0,486066455 +ISCA1 -0,485683262 +ZNF365 -0,485504618 +PINK1 -0,485341061 +RWDD2A -0,48504437 +EXOC1 -0,484927354 +ECE2 -0,484617735 +WDR77 -0,484600271 +AI890972 -0,484490353 +ERBB4 -0,484253264 +PSMD4 -0,483962197 +RAB6C -0,483864006 +CSTF3 -0,483798153 +NIPA2 -0,483638091 +AK5 -0,483482302 +C17orf91 -0,483141592 +INPP4B -0,482534933 +PJA1 -0,482372063 +BE551361 -0,482367089 +B4GALT5 -0,48224903 +MTX2 -0,481915827 +MGST3 -0,481667788 +TRMT11 -0,481613419 +PTPRN -0,481522612 +DNAJC12 -0,48150495 +FTSJ2 -0,481162212 +CCT8 -0,48112028 +PGAP1 -0,481030935 +SLC25A44 -0,480898127 +AMIGO2 -0,480319409 +SCAMP1 -0,480275681 +RBKS -0,480222 +SYN1 -0,48014199 +APEX1 -0,479680328 +AL157484 -0,4790893 +PAK3 -0,479026618 +SLC25A13 -0,478484409 +EIF1B -0,478403329 +DLAT -0,478235597 +AI375694 -0,47804406 +PMS2L1 -0,477748782 +DYNC2LI1 -0,477528415 +RANBP9 -0,477445784 +PTPN20A -0,476653786 +ZMYM4 -0,476508652 +UQCRQ -0,476353248 +EXOSC7 -0,476299374 +NDUFB3 -0,476207507 +LCMT1 -0,476121484 +ZNF547 -0,47597802 +TBCA -0,475802982 +MAPK8IP3 -0,475554385 +N80935 -0,475378775 +SLC4A3 -0,475327531 +AASDHPPT -0,475086681 +CAND2 -0,475049952 +CXorf40B -0,474988185 +FXYD6 -0,47456179 +RNF10 -0,474499733 +ELOVL4 -0,474412575 +AAK1 -0,474378982 +SEH1L -0,474159291 +PTPRU -0,473978747 +LPGAT1 -0,473432618 +VPS24 -0,473360696 +MCF2 -0,473341916 +FAR2 -0,473007144 +CKMT1A -0,472884518 +TMED3 -0,472883274 +RNASEH1 -0,47283341 +NDUFA3 -0,472657747 +GLS -0,472644869 +FAM168A -0,472617309 +KLHDC10 -0,472577269 +GLRX5 -0,472478522 +SYT17 -0,472292582 +PAM -0,472018566 +CLTB -0,471770785 +COPS2 -0,470912718 +DDA1 -0,470419616 +PCSK2 -0,470372976 +SLC25A6 -0,470332168 +TPI1 -0,470300584 +MECR -0,47026417 +ORC4L -0,47025895 +ITPR1 -0,470228063 +HMG20A -0,470060529 +GNB5 -0,470039178 +TMEM208 -0,469963608 +NCAPG -0,469752447 +GLRB -0,469638821 +ATP6V1D -0,469577982 +AKAP11 -0,469501191 +SH3GL2 -0,46948768 +NISCH -0,469445416 +SIPA1L1 -0,469275377 +PFKP -0,469125064 +LYRM4 -0,469088537 +SLC4A1AP -0,46898494 +AP2A2 -0,468669242 +CX3CL1 -0,46850557 +WBP11 -0,468444743 +LASP1 -0,468444317 +GOT1 -0,468375399 +C6orf120 -0,468133996 +SPAG7 -0,468070563 +SERGEF -0,467688975 +TFB2M -0,4675501 +AP3B2 -0,467537408 +PAFAH1B1 -0,467362101 +BPGM -0,467130793 +CRAT -0,466839519 +DDX1 -0,466770911 +ADAM23 -0,46652833 +ASB6 -0,466473575 +PCDHA1 -0,466456945 +TUSC3 -0,465574044 +TCEA2 -0,465512943 +SMARCA4 -0,4653413 +DAPK1 -0,465142929 +DBNDD1 -0,464965333 +NDUFC2 -0,464959656 +IDH3B -0,464778307 +CDC37L1 -0,464692992 +WDR11 -0,464429092 +CD200 -0,464378251 +TUSC2 -0,464289641 +IRGQ -0,464009317 +CALY -0,463919598 +NNT -0,463872117 +MSH2 -0,463745236 +GYG1 -0,463657489 +FAM134C -0,463380379 +RTN2 -0,463379977 +RBM12 -0,463289569 +SYNJ1 -0,463207762 +ABCA5 -0,462881594 +ENTPD4 -0,462777994 +MAP2K4 -0,462732144 +AIMP2 -0,46256199 +PITPNA -0,462484131 +BNIP3 -0,461982272 +COPS5 -0,461956463 +BRE -0,461910476 +MIR21 -0,461667267 +ATP5S -0,46152488 +SIN3B -0,461515059 +NAT10 -0,461457105 +MTCH2 -0,461117099 +ACHE -0,461032229 +PSD3 -0,46079613 +UCHL3 -0,460466303 +SMPX -0,459975528 +USP11 -0,459753441 +RNF187 -0,459566796 +AAGAB -0,458932639 +ENY2 -0,458770966 +NDEL1 -0,458614173 +FAM184A -0,458384449 +TOX4 -0,458204483 +SLC25A15 -0,458110832 +SACM1L -0,458050139 +ADARB1 -0,458034616 +SPHK2 -0,457781426 +CES2 -0,457687554 +CYFIP2 -0,457201169 +KPNA2 -0,457034156 +ACTR1A -0,456856222 +SLC25A22 -0,456321526 +DPYSL3 -0,456025294 +PRKAR1A -0,455984698 +SIDT1 -0,455560984 +TIPRL -0,455474112 +EIF5 -0,455347544 +C16orf58 -0,455176502 +RAB7A -0,454946879 +MFSD6 -0,454914435 +NDUFS2 -0,454605666 +APOOL -0,454580027 +GNB1 -0,454284789 +SARS -0,454282127 +PIK3R3 -0,454240907 +SERINC3 -0,454097365 +ST3GAL5 -0,45407104 +DHRS11 -0,453695947 +NEDD8 -0,45367218 +RAB15 -0,453664346 +HSPA13 -0,453577406 +OLA1 -0,453153228 +C3orf18 -0,45312023 +AF131844 -0,453027105 +C12orf52 -0,452914604 +ACBD3 -0,452894377 +PCIF1 -0,452240197 +BMP2K -0,451224584 +TSPYL5 -0,450674174 +SEC63 -0,450642641 +C7orf44 -0,450408444 +PWP1 -0,450360796 +SLC25A14 -0,45012674 +SYP -0,449768016 +PRKCB -0,449564151 +KIF2A -0,449276369 +PEX26 -0,449100108 +SDHA -0,448617251 +PITRM1 -0,448602767 +PPA2 -0,448269554 +MAN2A2 -0,448177121 +FAM49A -0,448170721 +KCTD9 -0,448062861 +REEP2 -0,44801948 +NDUFS3 -0,447803075 +CHGA -0,447356315 +UBE2E3 -0,447311178 +LOC595101 -0,447006376 +RNF170 -0,446698112 +TMCO1 -0,446651514 +PCCB -0,446640741 +RAB1A -0,44645249 +ATP1A1 -0,446309137 +KIAA1045 -0,446174802 +CASD1 -0,445992918 +C3orf37 -0,445975885 +RAD17 -0,445659766 +BBS4 -0,445631347 +TBC1D19 -0,445509157 +TSG101 -0,445289202 +DKK3 -0,445181251 +KCNQ2 -0,444911548 +EIF4E -0,44477948 +LOC100134209 -0,444742688 +OSTF1 -0,444651424 +PPCS -0,444330494 +ATP13A2 -0,443924538 +DHRS7B -0,443866868 +TSN -0,443785273 +AI201594 -0,443780197 +UBE2J1 -0,443536878 +C12orf51 -0,443320039 +INPP5F -0,44324612 +KIAA0391 -0,443138749 +NDUFB8 -0,442168118 +COX8A -0,442151263 +PLCB4 -0,442128902 +UQCRC1 -0,442055114 +RNMT -0,442010619 +PSMB4 -0,441631296 +ATP9A -0,441570839 +COMMD8 -0,441419712 +STX7 -0,441415012 +UQCRFS1 -0,441387219 +ARMC8 -0,441335025 +USP33 -0,441131902 +SC4MOL -0,441051846 +AVL9 -0,440604375 +CORO1C -0,440555184 +ATP6V0A1 -0,440500219 +AKTIP -0,440321706 +C11orf49 -0,440065839 +ACCN1 -0,439959618 +DYNC1H1 -0,439954428 +RTN4 -0,439926435 +IFT52 -0,439664934 +ARIH1 -0,439616652 +SLC23A2 -0,439279622 +FDPS -0,439263979 +ZW10 -0,439088192 +C6orf211 -0,438493952 +CAPZA2 -0,438442617 +TRIM9 -0,43841496 +PANK2 -0,438226487 +SLC25A36 -0,437878589 +TM7SF2 -0,437751686 +GPD1L -0,437274057 +TM2D3 -0,437156245 +TBC1D22A -0,436837159 +AFF2 -0,436678505 +PSMA4 -0,43652406 +SCAPER -0,436328183 +KPNB1 -0,43624217 +C8orf33 -0,436164892 +RRAS2 -0,435924543 +PNMA1 -0,435862986 +DRD2 -0,435854058 +CCDC92 -0,435740221 +CYB5B -0,435703661 +DNM1L -0,435497666 +FAM98A -0,435109538 +CYCS -0,43500707 +UBE2B -0,434857087 +DCTPP1 -0,434751269 +ENC1 -0,434576571 +SAP18 -0,434463135 +MED7 -0,43446171 +UBXN6 -0,433506891 +MAEA -0,433493136 +C20orf27 -0,433220759 +ARFGEF2 -0,4331108 +FKBP9 -0,433030189 +COQ10B -0,432955202 +SNRNP25 -0,432902395 +PHKB -0,432809153 +CETN2 -0,432732838 +PIK3R4 -0,432641256 +EFR3A -0,432263211 +FAM162A -0,432255742 +LOC732160 -0,432226821 +SRPK2 -0,432044566 +USP9X -0,431489845 +DENND2A -0,431031563 +PPP2CA -0,430950806 +CHST1 -0,430892555 +OSBPL9 -0,430720865 +TPM3 -0,430527364 +UGP2 -0,430314768 +AL049387 -0,430134526 +ARHGDIG -0,429952838 +GPR161 -0,429932801 +HGSNAT -0,429440496 +TCEAL4 -0,429402449 +KHDC1 -0,429285977 +SPATA7 -0,428924113 +NIPSNAP3B -0,428922472 +NHP2L1 -0,42870798 +BZW2 -0,428685674 +BZW1 -0,428658261 +ABCF3 -0,428526247 +PEX19 -0,428349422 +POLR2K -0,42820853 +FAM134B -0,428156057 +TUBGCP4 -0,428150919 +CSNK2A1 -0,427824997 +PPP2R5D -0,427719013 +CEND1 -0,427667723 +RNF11 -0,427514623 +EBNA1BP2 -0,427275229 +SDHC -0,42690156 +ATP6AP2 -0,426823582 +MAPK1 -0,426681157 +YTHDC2 -0,425950246 +ACTR3B -0,425721173 +LRRC47 -0,424928312 +ANO10 -0,424906321 +MORF4L2 -0,424702281 +NAE1 -0,424669605 +GRSF1 -0,424576498 +UBE3C -0,42455123 +RRM1 -0,424268285 +IARS2 -0,424201991 +HINT1 -0,423973896 +B4GALT7 -0,423964657 +OBSL1 -0,423852756 +RPH3A -0,423713255 +PTPRM -0,423526608 +TRAP1 -0,423405292 +GSTO1 -0,423136683 +PGK1 -0,423107749 +KCTD2 -0,423033005 +AKAP9 -0,423014145 +KIAA0090 -0,422971022 +NIF3L1 -0,422805913 +SAE1 -0,422487927 +TRAPPC4 -0,422454822 +UBE3B -0,422322842 +MRPL13 -0,422291395 +ARF1 -0,422218883 +NCKAP1 -0,421739152 +COX11 -0,421717769 +XPA -0,421552598 +FKBP11 -0,421544606 +ZFAND1 -0,42136139 +RUSC1 -0,421250909 +PSMC2 -0,42099626 +MCM4 -0,420976269 +HEXA -0,420954607 +PDE4A -0,420795908 +VPS45 -0,420785909 +OGFOD1 -0,420640442 +ADPGK -0,420505817 +AP2M1 -0,420467875 +PSMD5 -0,420139323 +PGRMC1 -0,420109613 +CLASP2 -0,419942702 +CAMTA1 -0,419843296 +COX5A -0,419753275 +BCAP29 -0,419678508 +C21orf59 -0,419586484 +INSIG1 -0,419347593 +NDUFAF1 -0,419256514 +SNCG -0,419205938 +NCAN -0,418993508 +SLC24A3 -0,418714364 +MAP2K1 -0,418679322 +BRCC3 -0,418660516 +MYCBP2 -0,418420128 +PREPL -0,41818051 +TUFM -0,418149804 +LYRM2 -0,41810337 +ORC3L -0,417994092 +TSR2 -0,417894679 +SLC41A3 -0,41774061 +DZIP3 -0,417712026 +MRPS11 -0,417644175 +B4GALT6 -0,41761846 +CHD5 -0,417472 +TUBA1C -0,417351982 +OTUB1 -0,41729395 +DCAF6 -0,417154254 +UQCR10 -0,417021115 +BEX4 -0,416948363 +RTN3 -0,416868526 +GOLT1B -0,416408995 +MRPL3 -0,416396676 +DDX19A -0,416375948 +C4orf41 -0,416356919 +SEMA3G -0,416349944 +TUBA3D -0,416216957 +B4GALNT1 -0,415958605 +TOR1A -0,415819164 +SUPT16H -0,415597727 +ACTR3 -0,415469056 +ABCB9 -0,415410201 +SERF1B -0,415262572 +PSMC6 -0,415072747 +GALNT2 -0,414525722 +ARF5 -0,414370994 +TCEB1 -0,414262524 +FEN1 -0,414164817 +HS2ST1 -0,413801139 +FBXL15 -0,413238338 +ANAPC10 -0,413161353 +MAPK10 -0,413048251 +FGF12 -0,412576909 +GTF2B -0,412561968 +CALM3 -0,412474461 +C12orf5 -0,412385409 +BTRC -0,412323302 +UBXN8 -0,411884422 +G6PC3 -0,411853401 +MARK4 -0,411850043 +SDHB -0,411814414 +FXC1 -0,411804756 +KIAA1467 -0,411406746 +COL4A3BP -0,411372338 +MADD -0,411317373 +SLC25A11 -0,411257994 +APBB3 -0,411242683 +LDHB -0,411172229 +ENTPD3 -0,410988615 +CAMK2B -0,410817586 +C15orf24 -0,410807275 +RAB11FIP5 -0,410722406 +C18orf1 -0,410410534 +IL13RA2 -0,410393436 +TMEFF1 -0,40994415 +TAX1BP1 -0,409905258 +ABHD11 -0,409662969 +SETD4 -0,409479623 +NARS -0,409352949 +LOC441259 -0,409193342 +SMAD2 -0,408937637 +MAGEH1 -0,408820062 +LPIN2 -0,408744346 +WRB -0,408371938 +HSPB11 -0,408269901 +COMMD9 -0,407620354 +RMND1 -0,407542555 +RBP1 -0,407484296 +TSPAN7 -0,407465467 +YKT6 -0,407243851 +ATP5L -0,407238078 +STAT1 -0,407123963 +SPTAN1 -0,407085674 +SLBP -0,407034029 +FAM115A -0,407018502 +ATP1B1 -0,407007242 +GIN1 -0,406994648 +SLC25A4 -0,406703055 +RPAP3 -0,40653888 +ELAVL4 -0,406510215 +LDHA -0,406394191 +GABRG2 -0,406143723 +ACOT1 -0,406088493 +LZTFL1 -0,406077259 +LARP4 -0,406073312 +PTPRG -0,405852123 +DIRAS2 -0,405793372 +SNCB -0,405789504 +CDS1 -0,405765281 +ARL2BP -0,405758176 +BCL2L13 -0,405729545 +STAT4 -0,405634359 +C17orf75 -0,405632179 +ELAVL2 -0,405590653 +DNM3 -0,405342092 +SNX16 -0,404866663 +TACO1 -0,40485549 +HPGD -0,404805074 +CHMP2B -0,404775945 +DPP8 -0,404495701 +SYBU -0,403649563 +CHP -0,403478973 +GTF2H5 -0,403475179 +PPP2R5B -0,403191055 +TRAK1 -0,402996995 +ACSL4 -0,402921692 +RABGAP1L -0,402883713 +PSMB3 -0,402864552 +ASTN1 -0,402784524 +TIMM23B -0,402679864 +NDUFC1 -0,402669713 +GPM6A -0,402645229 +NCDN -0,402391637 +TMEM183A -0,402206694 +LACTB2 -0,402125728 +SFPQ -0,401934429 +SLC1A4 -0,401903736 +LOC731884 -0,401617561 +TTC3 -0,401599425 +APBA1 -0,401587582 +FAM20B -0,401527926 +ISOC1 -0,401479145 +TMEM70 -0,401425176 +GLUD1 -0,401204073 +NDUFA4 -0,401152135 +SHANK2 -0,401076931 +NDUFA6 -0,400922451 +FAM128A -0,400907344 +TSNAX -0,400758374 +BLCAP -0,400561763 +WASF3 -0,400514139 +MTMR6 -0,400412018 +CBARA1 -0,399961135 +SMCR7L -0,399645568 +REXO2 -0,399637796 +ASTN2 -0,399013865 +FBXO31 -0,398919379 +MRPS10 -0,398754479 +GNAL -0,398117434 +RDH11 -0,398104472 +ANKH -0,398086916 +EPHA5 -0,397910595 +DPY19L2P2 -0,397861593 +NRXN1 -0,39777997 +FOXA1 -0,397622781 +AGGF1 -0,397583973 +CLCN6 -0,397581706 +PRKAG1 -0,397496639 +GRM5 -0,397456403 +BCAT1 -0,397331444 +MAP1LC3B -0,397317027 +HMGCL -0,397130437 +IFIT5 -0,397045055 +FAM82B -0,397007464 +TMEM189-UBE2V1 -0,39671729 +TMEM160 -0,396535704 +PIGZ -0,396390486 +VDAC2 -0,3962914 +BCAP31 -0,396227306 +CUL2 -0,395939867 +C5orf30 -0,395902062 +VAMP4 -0,395520757 +CLTA -0,395495699 +NOS1AP -0,395452681 +YWHAH -0,395414553 +AGL -0,39537715 +PPIA -0,395286888 +POLR2E -0,395239973 +FAM190B -0,395231307 +CAND1 -0,395218949 +DIABLO -0,395167608 +FAM155A -0,395099838 +FAM174B -0,394929763 +ABCA11P -0,394841999 +LMF1 -0,394801997 +EIF3I -0,394774336 +RRAGA -0,39363313 +SLC25A5 -0,39336993 +BTBD3 -0,393323586 +SLC38A6 -0,393193457 +TSPYL4 -0,39289974 +NDUFA8 -0,392898828 +ERI3 -0,392853573 +CDH11 -0,392815946 +VPS11 -0,392712183 +RPP40 -0,39270293 +SMS -0,392616216 +USP4 -0,39251437 +RAN -0,392486577 +SYT11 -0,392234251 +SEC23IP -0,392233152 +SUPV3L1 -0,392124663 +TOX3 -0,392048323 +OSBPL3 -0,391742979 +ATP5J -0,391738382 +APC -0,391687772 +EIF2AK2 -0,391678642 +MPPE1 -0,391534871 +CHD3 -0,391021702 +BE858194 -0,390954653 +GPN2 -0,390821549 +TMEM97 -0,39059622 +BRF2 -0,390477924 +NSDHL -0,390017568 +LOC654342 -0,389476483 +SATB1 -0,389035394 +RPP14 -0,388984247 +C16orf68 -0,388858051 +PHF14 -0,388842446 +CKAP5 -0,388699527 +MMADHC -0,388406258 +MEST -0,388313548 +UQCRH -0,387974488 +GBAP1 -0,387823169 +PMPCA -0,387778282 +TMEM41B -0,387668262 +SCLY -0,387620138 +OXA1L -0,387520115 +CLPX -0,387517816 +EML1 -0,387443167 +DPP6 -0,387318033 +FBXO3 -0,387294212 +GAPDH -0,386769027 +ATP6V1C1 -0,386766958 +PRAF2 -0,386484628 +NAA35 -0,386425969 +EIF4H -0,386302469 +SGSH -0,386196526 +CLCN3 -0,386084887 +SMARCA1 -0,385880429 +FAM158A -0,385760557 +AP3S2 -0,385712457 +EIF1AX -0,385367803 +RNF115 -0,385287305 +GPI -0,385266179 +SEC62 -0,385020013 +G3BP2 -0,384968143 +NDUFV1 -0,38487232 +C19orf42 -0,384758261 +BEND5 -0,384699839 +KCNAB2 -0,384620267 +EVL -0,384619104 +MTMR9 -0,384460721 +SIRT3 -0,384239932 +CNIH -0,383916854 +TOLLIP -0,383913386 +C11orf2 -0,383735535 +NUDCD3 -0,383703548 +MED4 -0,383545823 +RABGEF1 -0,38353381 +PTN -0,383407974 +GBF1 -0,383365739 +C1orf163 -0,383317238 +LOC100129361 -0,383315417 +CUL4B -0,383032231 +OXR1 -0,382758654 +TRIM33 -0,382726006 +GPC5 -0,382713696 +C11orf51 -0,382673891 +MAN1C1 -0,382595078 +FGF9 -0,382294616 +SPOCK2 -0,382267861 +GLMN -0,382038722 +MPP1 -0,381567886 +KIF21B -0,381555674 +RND1 -0,381481938 +PEX1 -0,381462705 +C2orf34 -0,381417191 +OTUD3 -0,381344145 +MSRB2 -0,381206334 +CCDC85B -0,38118283 +RGS3 -0,380621769 +SERPINI1 -0,380596066 +C14orf2 -0,380470075 +IDH3G -0,380458518 +POLR2C -0,380378788 +CTNNA2 -0,380377628 +XRCC6 -0,380295972 +EIF3A -0,380281294 +CRBN -0,380214781 +RPS6KC1 -0,3801397 +NUDT2 -0,380057201 +GOLPH3L -0,379823471 +CSNK1A1 -0,379812095 +NDUFB2 -0,379757693 +FTO -0,37940886 +SLC6A15 -0,379271656 +PCP4 -0,379256762 +NIT1 -0,37912136 +CCNC -0,378699092 +DGKB -0,378485235 +RANBP6 -0,377965444 +DNAJC8 -0,377764456 +MAPRE2 -0,377675379 +ARFGAP2 -0,377574006 +BDNF -0,377511436 +HSD17B10 -0,376728332 +AKAP7 -0,376531212 +EHD1 -0,376479944 +PSMD10 -0,376243528 +FABP5L2 -0,376090187 +VAMP7 -0,376017526 +WBP4 -0,375749974 +MAP1B -0,375485017 +SMPDL3A -0,375390185 +GPR89C -0,375362209 +SEPT2 -0,37512019 +GPX3 -0,374915078 +AARSD1 -0,374664572 +HSPA9 -0,37466397 +MAP1A -0,374598439 +C16orf62 -0,374459363 +CARKD -0,374388504 +ASS1 -0,374197776 +WDR12 -0,374046313 +ABHD14A -0,37397421 +SPIN2B -0,373568971 +RAB6A -0,373528481 +PTPRF -0,373483075 +RRAGB -0,373427062 +STK39 -0,373365187 +COX7B -0,373307822 +PDCL -0,373110957 +ATP2A2 -0,373066228 +PPM1E -0,37285382 +TRMT61B -0,372798595 +C21orf33 -0,372766056 +MGMT -0,372730061 +LPHN3 -0,372647138 +WBP2 -0,372385809 +ACSBG1 -0,372296169 +PGRMC2 -0,372287654 +LRRC20 -0,372239514 +AGA -0,372171162 +NRCAM -0,372117405 +FUT9 -0,372053568 +C22orf28 -0,371916518 +MRPS15 -0,371914782 +UFM1 -0,371876489 +CAMK2G -0,371790847 +AVPI1 -0,371692415 +MAST2 -0,371637676 +PPP1R7 -0,371553142 +EEF1A2 -0,371514176 +ATP5D -0,371416456 +EEF1E1 -0,37139203 +NLRP1 -0,371368381 +PMS2CL -0,371209965 +CDK5R1 -0,371120209 +C2orf72 -0,371108998 +OAZ2 -0,3710748 +AL109698 -0,37073584 +INPP4A -0,370700597 +ERH -0,370513944 +CAMK1G -0,370474818 +MED24 -0,370430566 +DMXL1 -0,370287216 +COMMD4 -0,370258812 +NOMO3 -0,370043447 +MORF4 -0,369691968 +ZNHIT3 -0,369651044 +GDPD5 -0,369635923 +CUL5 -0,369519961 +AP1B1 -0,369511443 +YARS -0,369387873 +ABHD10 -0,36913324 +KCNB1 -0,369083149 +SKP1 -0,369015624 +FBXO28 -0,368924883 +ATR -0,368436696 +TMED2 -0,368132686 +ARPC1A -0,367983188 +PHYH -0,367958422 +MRPL22 -0,367879083 +SRRD -0,367868238 +WDYHV1 -0,367821841 +EIF3CL -0,367732775 +HMGB3 -0,367450086 +DENND1B -0,36732795 +ALDH5A1 -0,367318431 +CCNA1 -0,367103911 +FAM134A -0,367014983 +DZIP1 -0,366778091 +WASF1 -0,366602553 +ATXN3 -0,366426778 +CCDC25 -0,3658102 +ERP29 -0,365799413 +IVD -0,365499555 +SNX24 -0,365222253 +CDK20 -0,365176415 +TTC9 -0,365148586 +RBM8A -0,36488846 +AMACR -0,364562114 +TBPL1 -0,364450426 +PTPMT1 -0,364434415 +CANX -0,364232908 +ELAC2 -0,364131757 +EIF2S1 -0,364109368 +AKR1B1 -0,363915593 +ACADM -0,363858719 +RGS16 -0,363795844 +SLC20A1 -0,363602798 +MTUS2 -0,363384151 +ZMIZ2 -0,363364816 +NDUFS4 -0,363146027 +AW242701 -0,363104323 +SNAPC3 -0,363053639 +ENOPH1 -0,362868334 +LYRM1 -0,362706602 +TRMT12 -0,362561085 +BAALC -0,362539013 +CHMP1B -0,362404908 +ATP1A3 -0,362300724 +TOMM20 -0,362192747 +PEX14 -0,362047536 +EIF2AK1 -0,361934247 +CNNM2 -0,361790716 +PPOX -0,361753445 +TAC1 -0,361655557 +GLRX3 -0,361266708 +OBFC1 -0,360197329 +MFN2 -0,360036589 +DGCR14 -0,359808857 +FAM175B -0,359691136 +PARP2 -0,359639462 +GPR107 -0,359495249 +TUBGCP5 -0,35920098 +ENSA -0,359186957 +UMPS -0,358973056 +SSBP1 -0,358916914 +PFDN2 -0,358707301 +IFFO1 -0,35859667 +CCT2 -0,358497035 +PSMA5 -0,358414139 +ZC3H15 -0,358397302 +EPHX2 -0,358269729 +CALB1 -0,358259257 +POP7 -0,358253841 +MRPL12 -0,357874032 +DFNA5 -0,357815106 +PIAS1 -0,357740062 +ARL4C -0,35770713 +HRAS -0,357592893 +CEP68 -0,35754909 +SNRPA1 -0,357535253 +SCP2 -0,357518758 +C4orf27 -0,356816465 +TMEM185B -0,35662055 +SPAG16 -0,356585241 +ESYT1 -0,356493695 +PTP4A1 -0,356347412 +PDLIM2 -0,356333479 +MSRA -0,355999453 +UAP1 -0,355870622 +CDK16 -0,355785531 +MBOAT7 -0,355761708 +FARSA -0,355610517 +MRPS7 -0,355424517 +EPHB2 -0,355389176 +LOC729991-MEF2B -0,355378273 +PDHA1 -0,355252318 +ACTL6B -0,355166654 +SAR1A -0,355144478 +KDM1A -0,355067715 +PRDX3 -0,354963773 +ETF1 -0,354759299 +ARMCX2 -0,354758912 +IQSEC1 -0,35395949 +TIMM13 -0,353925241 +AP2B1 -0,353904118 +STYK1 -0,353863363 +CDK7 -0,353806664 +DLG3 -0,353783905 +SEPHS2 -0,353722454 +MTOR -0,353463273 +PPIH -0,353351383 +GRPEL1 -0,353254529 +C9orf91 -0,353075824 +RGS17 -0,353023569 +NTSR1 -0,352789658 +HNRNPH2 -0,352751195 +HCCS -0,3526918 +C2orf3 -0,352661516 +TFDP2 -0,352647453 +GOSR2 -0,352396188 +PSMB1 -0,352279045 +MPI -0,35224609 +DUSP26 -0,351953212 +HERC1 -0,351631367 +SORD -0,351295095 +TUBB2B -0,351140866 +LPCAT4 -0,351128323 +CFL1 -0,351124653 +ARPP19 -0,350935095 +MTMR4 -0,350923479 +COX7A2 -0,350878835 +PGM1 -0,350865278 +RHOQ -0,350802567 +CCDC53 -0,350756677 +UQCRB -0,350742301 +NAPA -0,350657124 +CSDC2 -0,35061274 +BECN1 -0,350596093 +GYG2 -0,350535323 +GPKOW -0,35045328 +FXYD7 -0,350387292 +CYLD -0,349973469 +CSPG5 -0,349825086 +TTC15 -0,349816074 +ILF2 -0,349761198 +STOML2 -0,349586681 +CACNB2 -0,349516102 +VARS -0,349372141 +ZSCAN18 -0,349241937 +PTRH2 -0,349224021 +P2RX5 -0,349175679 +RALB -0,349042784 +NUBPL -0,348899542 +NCBP2 -0,348786336 +DKFZp434H1419 -0,348772873 +UFSP2 -0,348370783 +ARHGEF17 -0,348050229 +FXR2 -0,34801331 +INSIG2 -0,347755165 +XRCC5 -0,347746659 +CLTCL1 -0,34759935 +TMEM177 -0,347585446 +VAMP2 -0,347189398 +EML2 -0,347084746 +SNUPN -0,346850632 +GPX4 -0,346688538 +RASA1 -0,346685342 +USP46 -0,346590476 +LSM5 -0,346546029 +SEC31A -0,34652486 +PALM2-AKAP2 -0,346447335 +CKAP2 -0,346385113 +ELOVL5 -0,346375127 +PMS2L3 -0,346133275 +PAQR3 -0,346117871 +ST8SIA3 -0,34604187 +FDX1 -0,34603415 +C12orf4 -0,345989709 +COQ7 -0,345988262 +UROD -0,345987158 +RPE65 -0,345902642 +DCK -0,345889475 +RARS -0,345819092 +CAPZA1 -0,345775372 +NRN1 -0,345693574 +RNF7 -0,345545425 +ABAT -0,345474072 +CRY2 -0,345467057 +HR -0,345290796 +CACNA2D3 -0,345213407 +TWIST1 -0,345148814 +P4HTM -0,345112277 +GDI1 -0,344731063 +GRIA3 -0,344721718 +D4S234E -0,344715573 +TMEM151B -0,344385728 +MPHOSPH6 -0,344298044 +PYGB -0,344201683 +MARCH6 -0,344086188 +AL050136 -0,343680587 +NDUFS6 -0,343667551 +TRAPPC9 -0,343555476 +PYGL -0,343533875 +EFNB3 -0,343417492 +SCD -0,343398039 +TFG -0,342863204 +PPFIA3 -0,342761025 +SENP6 -0,342750174 +KCMF1 -0,342689973 +GNAS -0,342684217 +MAPK6 -0,342588157 +PRMT5 -0,34246621 +SEPT11 -0,342460355 +MEIS3P1 -0,342265108 +FABP3 -0,3421554 +YIPF6 -0,3420929 +FABP6 -0,342074193 +SRSF9 -0,341825092 +AP1AR -0,341737984 +PKNOX2 -0,341609179 +PAK6 -0,341535575 +PRKAA1 -0,341378959 +UBA3 -0,34130955 +OAZ1 -0,341251276 +EID1 -0,340941987 +MRPS28 -0,340842312 +AA890010 -0,340724739 +OSBP -0,340497775 +ATP6V0C -0,34047911 +ARHGAP24 -0,340414643 +PNKP -0,340118439 +PSMD7 -0,340085658 +IPO9 -0,340071575 +ARF4 -0,339993296 +TERF2 -0,339818219 +SRSF2 -0,339525933 +PSMC5 -0,33950993 +TM9SF1 -0,339389717 +ACAT2 -0,339093022 +CDK8 -0,33909169 +KIAA0196 -0,338987444 +TFPT -0,338941882 +TRPC4AP -0,338718194 +TUBG1 -0,338211067 +SCN2B -0,338080627 +MTHFD1 -0,338071854 +ATPAF2 -0,338050158 +IGSF1 -0,337997383 +RGPD6 -0,337877048 +C16orf45 -0,33773508 +C10orf76 -0,337659307 +UBE2A -0,33762595 +PQLC1 -0,337612976 +SOD1 -0,337454918 +ARPC2 -0,337418781 +MEMO1 -0,33728488 +CSDE1 -0,337036578 +PHYHIP -0,336992273 +LYPLA1 -0,33698776 +NDUFA1 -0,336883322 +MARCKSL1 -0,336747008 +DCTN1 -0,336745427 +COX6A1 -0,336728807 +DPM1 -0,336614034 +ELP3 -0,336602956 +LOC653566 -0,336555692 +COX7BP1 -0,336528019 +CAPZB -0,336348777 +DCUN1D4 -0,335942405 +UCHL5 -0,335933871 +PSIP1 -0,335684272 +MRS2 -0,335589123 +RABGAP1 -0,335570544 +KCNA6 -0,335454989 +RAC1 -0,335429141 +ZMYM2 -0,33542626 +MRPL17 -0,335371398 +MLF1 -0,335274724 +RFC3 -0,33507418 +ARMCX3 -0,335005795 +GMDS -0,334931775 +KIAA0317 -0,334922749 +CAMSAP1 -0,334678333 +LSG1 -0,334628714 +PNPO -0,334625052 +THOC5 -0,334532053 +C11orf58 -0,334154436 +MTCH1 -0,334038037 +KAL1 -0,333848755 +OMG -0,333590731 +KLHL7 -0,333537148 +TTPAL -0,333489991 +GLA -0,333336937 +SEZ6L2 -0,333262252 +SNURF -0,333035272 +ARL6IP1 -0,332988884 +BFSP1 -0,332976059 +MAPKSP1 -0,332894473 +HABP4 -0,332672498 +SLC8A2 -0,332645114 +CKAP4 -0,332543738 +NPM1 -0,332250102 +CLSTN3 -0,332157745 +RUSC2 -0,33210981 +RCHY1 -0,331805148 +CACNA1D -0,331681156 +ZFAND5 -0,331302172 +TACC2 -0,331046487 +CHCHD3 -0,331008486 +RGS2 -0,330792786 +LDOC1 -0,330775706 +BTN2A1 -0,33075204 +WDR45 -0,330593865 +W87688 -0,330499179 +YWHAQ -0,330473094 +RAB3GAP2 -0,33029144 +HTRA2 -0,330240669 +SNRPD1 -0,330240562 +ANXA7 -0,330030639 +KIAA1024 -0,329770804 +RAD51C -0,329735785 +PRPF18 -0,329474331 +CCT6B -0,329361737 +ABCD3 -0,329205796 +PARN -0,329139621 +APOL2 -0,328983174 +MRPS18A -0,32863432 +RASL10A -0,328581006 +COG8 -0,328398026 +ZNF512B -0,327877848 +ATP5H -0,327758416 +PRDM4 -0,327710757 +TSPAN3 -0,327644045 +EPB41L3 -0,327416874 +APLNR -0,327394979 +TFR2 -0,327337619 +GADD45A -0,327012981 +POLR3F -0,326871651 +FASTKD3 -0,326789822 +TCERG1 -0,326746174 +VPS41 -0,326459968 +C17orf101 -0,325979143 +EXOC3 -0,325763291 +SLC25A17 -0,325666279 +GDAP1L1 -0,325526797 +HCFC1R1 -0,325022815 +SF3B5 -0,324878766 +TEX10 -0,324812522 +PSMA7 -0,324673715 +TCTN3 -0,324389244 +NOVA1 -0,32437578 +RABEPK -0,324366299 +ALG5 -0,324335095 +ENOSF1 -0,32427768 +SH3BGRL3 -0,32409913 +CTNND2 -0,324002004 +NKRF -0,323983769 +SLC6A1 -0,323833407 +MAPK1IP1L -0,323722226 +RAB22A -0,323713658 +GRP -0,323354345 +SDS -0,323335387 +IBTK -0,323304602 +CARS -0,322679359 +WWP1 -0,322463311 +ARL8B -0,322442301 +SLC19A2 -0,322361872 +F8A3 -0,322202521 +LPHN1 -0,322183082 +SMARCD3 -0,322148361 +GPN1 -0,322024809 +FAF2 -0,322014431 +SLC35B1 -0,321878066 +MPV17 -0,321698226 +TOM1 -0,321634922 +NEDD4L -0,321518057 +MRFAP1L1 -0,321393672 +C6orf62 -0,321303598 +POLR3B -0,321247444 +HTR2A -0,321189596 +CUL3 -0,321141566 +PSMD9 -0,321108014 +LRP3 -0,32099653 +TMEM62 -0,320873847 +PLS3 -0,320803014 +SUMO1 -0,32076762 +DLG4 -0,320617015 +ANKRD17 -0,320557554 +ARFIP2 -0,320500236 +HMGN4 -0,320196335 +PRKAG2 -0,319945607 +STAR -0,319749743 +NF1 -0,319726773 +ATOX1 -0,31967306 +UBE2M -0,319629201 +NDRG3 -0,319446308 +SNPH -0,319396594 +TPD52 -0,319178712 +PLK2 -0,319120325 +C1QBP -0,318975829 +SRSF8 -0,318843616 +USP22 -0,318806098 +GPD1 -0,318728943 +MAPK8IP2 -0,318691894 +USP20 -0,318610382 +RPA2 -0,31845096 +CCPG1 -0,318358561 +NQO2 -0,318256129 +POLR3C -0,318231923 +HBXIP -0,318079181 +MRPS31 -0,318018334 +SNRPB2 -0,31801084 +CACNG3 -0,317104885 +CCNE1 -0,316783937 +NDUFAF4 -0,316755785 +GRK6 -0,316405946 +ZER1 -0,316363024 +CHCHD7 -0,316179658 +C20orf29 -0,315860291 +AI693193 -0,315746456 +TPMT -0,315745725 +TPPP3 -0,315557058 +CTH -0,315210231 +HSDL2 -0,31516145 +MAPRE3 -0,314964867 +NLE1 -0,314918022 +ARHGEF4 -0,314777145 +STK19 -0,314737564 +AW503390 -0,314280211 +KIAA1279 -0,314104435 +CA14 -0,313849822 +CYP2E1 -0,313441486 +FHL1 -0,313417456 +MYL6B -0,313075964 +PACRG -0,3129322 +SCN2A -0,312912414 +POLR3G -0,312898745 +MED6 -0,312862133 +PCSK1N -0,312861133 +FLJ10038 -0,312756044 +PHTF1 -0,312716368 +PRPF4 -0,312654478 +RPRD1A -0,312642779 +HLF -0,312545473 +MTMR1 -0,312535102 +MFN1 -0,312461722 +C1orf50 -0,312398425 +QPRT -0,312349796 +ZDHHC6 -0,31229266 +ITGAE -0,311863717 +SLC18A1 -0,311739998 +CD83 -0,311711539 +GGCT -0,311631664 +KIAA0100 -0,311503156 +OPN3 -0,311374884 +SSX2IP -0,311111099 +NUCB2 -0,31105706 +UTP11L -0,311015852 +GOLGA8B -0,310924837 +UST -0,310734373 +PRKCI -0,310493775 +AP2S1 -0,310480065 +WBSCR22 -0,310476192 +PPP3CA -0,310434457 +PDSS2 -0,310396648 +PEG3 -0,310335546 +ATP5E -0,310319916 +GABRA5 -0,310200087 +AGPAT4 -0,310173061 +PDCD10 -0,310157516 +DDOST -0,310094837 +RPL23 -0,309992315 +HOMER1 -0,309485866 +C1orf123 -0,309187816 +POLE3 -0,309012195 +DDX41 -0,308923345 +HSD17B8 -0,308824584 +GMPR2 -0,308792858 +SCARB2 -0,308695909 +DGUOK -0,308606021 +MAGEF1 -0,308535371 +FOXA2 -0,308348483 +GLS2 -0,308287643 +TBCC -0,308286536 +FBXO41 -0,308255485 +SLC12A1 -0,308214984 +PELO -0,308137793 +KCNE1L -0,30811412 +RBBP4 -0,308007454 +UBL5 -0,307720013 +KLHL12 -0,307571676 +FTSJ1 -0,307464516 +ZFYVE16 -0,307366442 +PPT1 -0,3073579 +ZC3H13 -0,307293327 +DYRK1A -0,307183877 +PHACTR2 -0,306935621 +SLITRK3 -0,306872073 +PI4KA -0,306770561 +RNPS1 -0,306364972 +RALGAPB -0,306086767 +BRP44 -0,305953308 +BNIP1 -0,305883874 +SUPT4H1 -0,305675152 +BCKDK -0,30566687 +PLAA -0,305619464 +ACTR2 -0,305363631 +PION -0,305054773 +NFU1 -0,305010295 +CCT6A -0,304801168 +KIAA0427 -0,304585348 +EHD3 -0,304533089 +FAM63B -0,304437794 +STK25 -0,304425083 +POLB -0,304419007 +MRPL35 -0,304416576 +UBE2Z -0,3043165 +GSTZ1 -0,304133065 +AP3S1 -0,30395899 +SPATS2L -0,303776395 +LOC729580 -0,303766036 +RALGAPA1 -0,303697943 +PUF60 -0,303647762 +DAP3 -0,303640732 +AHI1 -0,303570806 +UBE2NL -0,303361552 +TMEM164 -0,303165514 +DOCK3 -0,303099341 +CADM3 -0,303050893 +ZNF219 -0,302968533 +PRKAR1B -0,302898104 +DOK5 -0,302798088 +ORMDL2 -0,302372011 +ACVR2A -0,302331205 +ALDOA -0,30171568 +ATRN -0,301666345 +COX7C -0,301597748 +PRKDC -0,301229867 +GNG10 -0,300757182 +SNX17 -0,300752701 +RBMS1 -0,300466996 +AJAP1 -0,300458474 +PREP -0,300414848 +ALDOC -0,300361514 +LAMA4 -0,300246196 +PI4KAP1 -0,300223018 +TMEM222 -0,30010369 +PIGB -0,299980372 +SSSCA1 -0,29997354 +DCUN1D1 -0,299517655 +DLSTP1 -0,299414392 +ITM2B -0,299325985 +AK025651 -0,299260618 +ACOT13 -0,299073057 +ZNF593 -0,298588283 +LOC100129250 -0,298385026 +H2AFY -0,298292243 +IGF1 -0,298232454 +KIAA0368 -0,29819687 +FKBP3 -0,298122528 +C12orf49 -0,297820161 +PRKRIR -0,297808472 +GLUD2 -0,297805688 +NBL1 -0,297799978 +PTPN4 -0,297657679 +LOC644617 -0,297586698 +IL33 -0,297538719 +CUL4A -0,29730361 +SIP1 -0,297199387 +POLDIP2 -0,297140479 +EBP -0,297109427 +FASTKD2 -0,296665172 +SMPD1 -0,296658212 +FAM55C -0,296650198 +TRPV2 -0,296465177 +DOPEY1 -0,29633822 +SCYL3 -0,296201386 +UBL3 -0,296188632 +STK38L -0,296164266 +APITD1 -0,296017845 +SFXN1 -0,295918484 +CPT1A -0,295754312 +USP8 -0,29570338 +MRPS30 -0,295702739 +ATG7 -0,295335659 +C10orf88 -0,29514056 +PIPOX -0,295018193 +RAC3 -0,294600261 +CIAO1 -0,294564961 +KLC2 -0,294523931 +LEPROTL1 -0,29448316 +ENDOD1 -0,294147277 +FEM1B -0,294007766 +IRS1 -0,293342341 +CYP51A1 -0,293155923 +DYNLRB1 -0,292974645 +TOM1L2 -0,292906836 +TDP2 -0,292808809 +MRPL49 -0,292778686 +LRP8 -0,292767989 +MOSPD1 -0,292730297 +C6orf134 -0,29255632 +TRPC1 -0,29249815 +RASL11B -0,292459191 +AL109671 -0,292334441 +TTC37 -0,292136499 +ODZ4 -0,292070818 +KIN -0,291741417 +KPNA1 -0,291721639 +CAST -0,291558763 +NDUFA13 -0,291524477 +AKR1A1 -0,29149158 +QARS -0,29146477 +MRPS22 -0,29145846 +MMACHC -0,291414294 +UBQLN2 -0,291358191 +PIK3CB -0,291242041 +COX6B1 -0,291081182 +PDK2 -0,290962723 +RABGGTB -0,290962562 +SR140 -0,290943983 +ATF2 -0,290881352 +FADS1 -0,290820194 +SRP14 -0,290691218 +RAD23B -0,290632171 +AHCY -0,290521401 +RINT1 -0,290502144 +SRP54 -0,290224786 +COX5B -0,289972152 +NBN -0,289962803 +DDX50 -0,289845246 +NUFIP1 -0,289611609 +HDGFRP3 -0,289540354 +HBA2 -0,289412602 +SRP9L1 -0,289377441 +ARFGEF1 -0,289327503 +FAM13B -0,289118442 +DIMT1L -0,288943725 +LPO -0,28888192 +VPS28 -0,288730564 +SSR3 -0,28867602 +SEPT7 -0,288663677 +NARS2 -0,288651232 +EMG1 -0,288493971 +HSPA8 -0,288488899 +TBC1D13 -0,288209587 +TTC35 -0,288076299 +GTPBP4 -0,287916733 +SPG7 -0,287774853 +PAFAH1B3 -0,28772138 +MAPT -0,28765216 +RERGL -0,287509361 +HNRNPD -0,287438947 +PLCL2 -0,287391702 +HLA-DPA1 -0,287200849 +CD55 -0,286966384 +IDH3A -0,286870398 +STXBP5L -0,286801199 +MAP3K12 -0,286334641 +PPP2R1A -0,286259611 +TMEM126B -0,286136364 +CDKN3 -0,286064506 +ABCC5 -0,286013319 +TMEM127 -0,285913561 +DNAJC2 -0,285585137 +SEC61G -0,285583827 +SSR1 -0,285489405 +AIMP1 -0,285281231 +YTHDF2 -0,285194578 +FAM86B1 -0,285046154 +CTBP1 -0,285027477 +CHRFAM7A -0,285001423 +SSBP3 -0,284934817 +MRPL46 -0,284930449 +TSPAN6 -0,284861931 +MYST2 -0,284824247 +GGH -0,284817124 +PRKACB -0,2847024 +C2orf47 -0,284692381 +NLK -0,284579832 +ASNS -0,28445955 +EXOC5 -0,28439526 +OAZ3 -0,284379411 +CTNNBIP1 -0,284364924 +PVR -0,284070802 +C16orf80 -0,284019987 +UBE3A -0,283816198 +EAPP -0,28376748 +IGSF3 -0,283764031 +KCND2 -0,283569047 +FOXK2 -0,283286684 +SLC35A2 -0,283204451 +TBCB -0,283168385 +SLC38A1 -0,283158141 +ACCN2 -0,283147998 +FAM149A -0,283126904 +TIMM22 -0,283102824 +EIF4ENIF1 -0,28310048 +THSD1P1 -0,282819454 +MAGED4 -0,282562753 +CLASP1 -0,282510547 +C1orf61 -0,282424601 +C6orf106 -0,282397365 +WDR44 -0,282155933 +GNL3 -0,282115302 +RCBTB1 -0,28192202 +OSTM1 -0,281535242 +AGPAT5 -0,281510168 +PRNP -0,281405094 +APPBP2 -0,281330465 +GAD1 -0,281295305 +NECAB3 -0,281056363 +ABCF1 -0,280961256 +DNAJC7 -0,280750506 +EPHB1 -0,280596899 +GPRC5A -0,280368026 +HSPA14 -0,280049432 +CLPTM1 -0,280042656 +SGPP1 -0,27999737 +ABCG4 -0,279891909 +GFRA1 -0,279146972 +ATP5SL -0,278849245 +CTSO -0,278677227 +DCTN4 -0,278556645 +MAP2K2 -0,278535478 +ZNF423 -0,278503712 +FUS -0,278285124 +ACTR8 -0,278282163 +PRR13 -0,278189761 +ZNF329 -0,278179162 +RNASEH2B -0,278151755 +LOC284244 -0,278099761 +FAM117A -0,277715513 +MREG -0,277651168 +C2orf18 -0,277609469 +AW612311 -0,277599115 +SYNRG -0,277434047 +SMARCE1 -0,277346186 +DNAJA3 -0,277188103 +PPP2R5E -0,2770317 +TMCO6 -0,276951805 +C6orf35 -0,276886272 +DDX18 -0,276619655 +TTLL1 -0,276373935 +LANCL1 -0,276361838 +SNRPE -0,276287655 +DTX4 -0,276233703 +IDH2 -0,276017451 +SACS -0,275814599 +ABHD2 -0,275491786 +VAMP1 -0,275092752 +AGPAT1 -0,27504004 +TYMS -0,274913065 +ZDHHC3 -0,27479568 +LMO1 -0,274566957 +UVRAG -0,274559415 +HBB -0,274385467 +PSMA2 -0,274273938 +CD24 -0,27422103 +GRAMD1B -0,27394685 +PRC1 -0,27393137 +YARS2 -0,27376193 +SIGMAR1 -0,273597834 +CPEB3 -0,273534888 +ARMC9 -0,273442678 +DNAJC10 -0,273369377 +TM9SF4 -0,27326642 +RBX1 -0,273166064 +C13orf1 -0,273151402 +PDCD4 -0,273130523 +LUZP2 -0,272843047 +APLP2 -0,272609838 +USO1 -0,272598741 +SH3BP5 -0,272512602 +PPP1R11 -0,272494252 +PEMT -0,272485616 +CDC16 -0,272287144 +LCMT2 -0,272235596 +DCX -0,271983078 +DDAH1 -0,271924121 +UBE2D2 -0,271815552 +TANK -0,271664689 +AW974666 -0,271662837 +USH1C -0,271630244 +BDH1 -0,271624449 +B9D1 -0,271589518 +BRD9 -0,271105209 +USP7 -0,271052865 +TRIM2 -0,270764995 +PARK7 -0,270634786 +NSFL1C -0,270597248 +COQ2 -0,269953826 +HNRPDL -0,269787459 +NOV -0,269731303 +SLC25A28 -0,269706278 +EXT2 -0,26958066 +VLDLR -0,269148459 +SLC4A4 -0,268895862 +SMURF1 -0,268798637 +ORC2L -0,268275919 +ZC4H2 -0,268056536 +SDHAF1 -0,267985583 +VDAC1 -0,267895013 +ALDH1A3 -0,267738476 +PNPLA4 -0,267586498 +HAGH -0,267406111 +CNTNAP2 -0,267355858 +KPNA3 -0,267278305 +LRBA -0,267216793 +DPYSL4 -0,267150239 +MCCC2 -0,26714725 +KBTBD4 -0,267031071 +DCTD -0,267005887 +C1orf21 -0,266982234 +C2orf43 -0,26679916 +SF3A3 -0,266732334 +PTPN3 -0,266674559 +FBXO21 -0,26664933 +CCT7 -0,266615147 +CLNS1A -0,266539743 +HAPLN1 -0,266160364 +SYT13 -0,26591944 +SENP5 -0,265695364 +HMGB2 -0,265556554 +CANT1 -0,265168032 +CGREF1 -0,265157579 +GRM1 -0,26510368 +ZFHX4 -0,265049797 +PVRL3 -0,264999073 +ADAR -0,264636454 +TRIM3 -0,264561355 +ANP32E -0,264413865 +PDLIM7 -0,264406742 +MLH1 -0,264377914 +PRKCA -0,264376056 +CYB5R3 -0,264120933 +PDE1A -0,263919942 +LOC100127998 -0,263915362 +WSB2 -0,263691169 +RPF1 -0,263404659 +CXCL12 -0,26333499 +TMEM66 -0,263285506 +EIF6 -0,263232223 +NFE2L1 -0,262789646 +KLHL20 -0,262772392 +PPM1H -0,262689193 +PIN4 -0,262483899 +TUBA4B -0,26241982 +ECT2 -0,262276809 +MGC5566 -0,261888759 +C9orf116 -0,261830489 +ASB1 -0,261751394 +ABCC8 -0,261735107 +ELOVL2 -0,261638578 +PHB2 -0,261466477 +ZNF580 -0,261379751 +DNAJC24 -0,261364702 +PSMB10 -0,261344946 +CSE1L -0,261292597 +ANKRD27 -0,261154598 +TUBG2 -0,261047779 +C6orf162 -0,261001828 +AL034399 -0,260886813 +GLT8D1 -0,26052144 +SRR -0,260520305 +MCC -0,260395686 +COX4I1 -0,260324715 +SEP15 -0,260222524 +RNF103 -0,260210477 +ZNF576 -0,260159221 +MGEA5 -0,260092677 +RSL24D1 -0,259958151 +USP13 -0,25969613 +MLLT3 -0,259631882 +SRI -0,259268888 +NCS1 -0,259133737 +MAPKAPK5 -0,259103348 +IQCG -0,25908825 +FN3KRP -0,258914892 +BCKDHB -0,258870249 +GOLGA5 -0,258736414 +RDBP -0,258483881 +SUPT7L -0,258355414 +METTL1 -0,258206012 +CREB3 -0,258159408 +TMEM111 -0,258136123 +NRSN2 -0,257397396 +CNTN1 -0,257314074 +COX10 -0,257277055 +SERPINB9 -0,257269621 +MTF2 -0,256976969 +EDNRB -0,25676028 +HSF2 -0,25652969 +POLR2L -0,256424652 +TRIM58 -0,256294322 +DACH1 -0,256241463 +UEVLD -0,256239024 +ATP1B3 -0,256215499 +SAP130 -0,256053262 +TRPC6 -0,255890704 +HERC6 -0,255794959 +NAV3 -0,255707496 +GOSR1 -0,25567987 +CNR1 -0,255506006 +PSME4 -0,25522233 +CAMKV -0,254605479 +ADSL -0,254512794 +BCS1L -0,254298738 +CCNB1 -0,253924801 +SNX2 -0,253887319 +ASAP2 -0,25387509 +WDR70 -0,253565737 +PTPRE -0,253309549 +SEPT5 -0,253058348 +SCML1 -0,253051964 +BCR -0,252946659 +MAGOH -0,252829021 +SEMA4F -0,25277628 +CLIP1 -0,252764211 +JMJD4 -0,252747043 +ZMYND11 -0,25273006 +CPSF6 -0,252574141 +PTPRA -0,252430519 +PLA2G12A -0,252393049 +MXRA5 -0,252290125 +RFX5 -0,252264534 +WARS -0,252174212 +HUS1 -0,252166663 +VCAM1 -0,251733145 +CEACAM21 -0,25171453 +RHOT1 -0,251514974 +EMD -0,251327933 +TSPYL2 -0,251307071 +THNSL1 -0,25130438 +NDUFB4 -0,251250318 +CHMP5 -0,251232028 +SKAP2 -0,251185084 +LRPAP1 -0,251070101 +COMMD3 -0,251069448 +ROGDI -0,250917557 +PPAP2B -0,25089017 +ADSS -0,250852878 +LGI2 -0,250809779 +CBX6 -0,250671998 +NELF -0,250584567 +DENND5B -0,250357567 +ATP2C1 -0,239139672 +SUMO2 -0,233193565 +KRAS -0,208565613 +PEX3 -0,200767265 +PRDX2 -0,195371323 +PDCD2 -0,194653063 +TM2D1 -0,189207426 +KHDRBS1 -0,16653347 +KLC1 -0,156510024 +ANK2 -0,155852142 +HBS1L -0,155006259 +NTRK3 -0,121314135 +PTPRO -0,110200451 +PLEKHA5 -0,10184855 +GCOM1 -0,091608137 +TIMM8A -0,084179504 +MKRN1 -0,074942655 +PLA2G4B -0,068760926 +RUFY3 -0,059042335 +RIMS2 -0,057507607 +C21orf2 -0,054091983 +METAP2 -0,053236401 +LRRC40 -0,040678287 +RPL10 -0,034862755 +RIOK3 -0,033313025 +SYNCRIP -0,027340658 +UNC45A -0,021866459 +MPZL1 -0,020796077 +RANBP1 -0,01610173 +ITGB1BP1 -0,011025016 +UBC -0,009666523 +RER1 -0,007044099 +PDS5B -0,005231512 +NCAM1 -0,004638056 +LIMCH1 0,003894784 +VPS13D 0,014841215 +WDFY3 0,017457694 +MRP63 0,023151675 +TSR1 0,064261585 +GRB10 0,066410415 +FAM128B 0,074972161 +PAK2 0,079518764 +PKP4 0,080237181 +TMEM144 0,083124821 +C3orf63 0,086752023 +DDAH2 0,250378216 +AF238870 0,250544885 +PTMS 0,250667518 +JAG1 0,250675664 +RPL32 0,25075902 +UXT 0,250812127 +HSP90B1 0,250888984 +SS18 0,250904748 +RND2 0,250918958 +CLEC4M 0,250931594 +AU147194 0,251115897 +IL1RAPL1 0,251119435 +EPB41L2 0,251131328 +TFDP3 0,251241244 +GAL3ST4 0,251281983 +EDN2 0,251371356 +SFTPC 0,251372616 +TRMT61A 0,251534845 +GPR4 0,251535902 +KEAP1 0,251692277 +RNF122 0,251718243 +NOTCH2 0,251745042 +WDR1 0,251871256 +NFX1 0,252023298 +DOHH 0,252100123 +NES 0,252167647 +SRSF10 0,252172984 +AQP3 0,252182392 +LOC728412 0,252404082 +RCN3 0,252455902 +CSNK1G1 0,252462493 +KCNS1 0,252601737 +CCDC71 0,252614101 +JUND 0,252645305 +LYST 0,252718314 +TPCN1 0,252770336 +MTA1 0,252823052 +RIN1 0,252841454 +ATHL1 0,252944239 +FTSJ3 0,253136044 +SERPINA1 0,253202139 +STARD7 0,2533744 +MRPL34 0,253425868 +PPID 0,25344089 +SH3PXD2A 0,253534644 +UBA7 0,253547625 +RUNX1 0,253686159 +ARNTL 0,253823553 +STAT6 0,253840779 +CASKIN2 0,25393147 +NFATC4 0,253965486 +LILRB2 0,254041373 +PPP1R13L 0,254173566 +RAP1A 0,254249533 +OTUD4 0,254380531 +ZNF516 0,254390037 +ZC3H14 0,254430628 +BTD 0,254441889 +ABHD4 0,254494909 +MT3 0,254554667 +PTCH1 0,254572046 +CDC42EP3 0,254591236 +LOC150776 0,254715807 +PTGES 0,254816225 +TPM2 0,254867646 +TAGLN 0,254960085 +AL050032 0,254984309 +HPN 0,25500915 +FLNC 0,255046574 +GJB3 0,255060346 +RAB40B 0,255071999 +CST1 0,255226531 +FGF21 0,255229382 +AW574933 0,255334628 +FGF5 0,255461872 +CLCN7 0,2555275 +BAHCC1 0,255618646 +FANCA 0,255627746 +CYBA 0,255682121 +TIE1 0,255683605 +ANKHD1-EIF4EBP3 0,255707685 +CDV3 0,255740411 +COL9A1 0,255878907 +TTC31 0,256049153 +ZIC1 0,256075896 +CCDC121 0,256090992 +FUT4 0,256155794 +UCP3 0,256197327 +AU146391 0,25625958 +MMP2 0,256269664 +STXBP2 0,256386629 +TMEM87A 0,2564575 +FXR1 0,256493521 +RDX 0,256507051 +HPS1 0,256516919 +TRAM2 0,256517872 +HYAL2 0,256778041 +TNFRSF14 0,256783849 +NEK7 0,256861333 +AGRN 0,256876471 +SMC4 0,256895131 +GAS7 0,256949822 +PDE4B 0,256950938 +CHD4 0,256970114 +SPP1 0,257084517 +HECA 0,257172806 +NXF2B 0,257181225 +LILRA5 0,257188463 +SCAP 0,257267679 +SNX1 0,257354288 +GIGYF2 0,257400552 +CELF1 0,257407908 +HSD17B14 0,257420303 +DUOX1 0,25770603 +MRM1 0,257826185 +NBR2 0,257852879 +FAM176B 0,257955278 +SYNPO 0,257997864 +GPRIN2 0,258040238 +IER3 0,25816919 +ZNF506 0,258198461 +NM_016414 0,25824817 +VPS53 0,258358594 +PGPEP1 0,258378109 +GNL1 0,25847832 +OGFR 0,258496938 +CXCR2 0,258632799 +C1orf38 0,258857462 +RPL22 0,258901214 +NM_018041 0,259005358 +MYOF 0,259133176 +NGB 0,259197495 +CLIC4 0,259260666 +TBC1D9B 0,259295717 +KCND1 0,259337213 +RNASET2 0,259420675 +EXT1 0,259568659 +AQR 0,259572114 +VWA1 0,259618684 +MUC3A 0,259647513 +CAV1 0,259682957 +IRF4 0,259719685 +OR7C1 0,259728956 +SETDB1 0,259737838 +E2F6 0,259867146 +TFEB 0,259924981 +CPSF3L 0,26005015 +MARCH8 0,260576922 +MFSD11 0,260945964 +ETAA1 0,260954881 +SMARCD2 0,260999203 +RGS12 0,261024661 +CCNG2 0,261112401 +RPS8 0,261183649 +IL17RA 0,261275371 +NUDC 0,261284708 +ZNF133 0,261329337 +ATP13A1 0,261543252 +PICK1 0,26166607 +C20orf117 0,261682534 +GIPR 0,261728602 +HIST2H4B 0,261730186 +S100A11P1 0,261732522 +MARCH3 0,26174629 +ZBED4 0,261794357 +KHK 0,261822851 +SCAMP2 0,26194666 +AF070579 0,261954742 +TECR 0,261998101 +AK024915 0,262016665 +CASP7 0,262240261 +PDK4 0,262293861 +MYO7A 0,262479993 +TUBBP5 0,262483574 +TMEM143 0,262491406 +NAP1L1 0,262524812 +PLEKHB1 0,262542861 +ING1 0,262679424 +SPSB3 0,262786186 +C9orf167 0,262955615 +NTM 0,262977412 +FIP1L1 0,263199662 +FYCO1 0,26321575 +GGT1 0,263227324 +ALG12 0,263240056 +IGL@ 0,263282588 +PPBP 0,263290228 +SNX13 0,263292989 +SRSF4 0,263309909 +CYTH1 0,263721364 +AL050035 0,263831657 +TRMU 0,263920451 +TIMP1 0,263959235 +RFNG 0,263965598 +HIP1R 0,264033626 +NR1H3 0,264039538 +NT5C2 0,264091319 +FNTB 0,264115077 +SAR1B 0,264175117 +GIT1 0,26420824 +RRAGD 0,264311012 +HAP1 0,26435511 +FLT3LG 0,264378926 +NM_018612 0,264421364 +SLC7A9 0,26447762 +GLTSCR2 0,264541217 +SUN1 0,264635751 +CEP152 0,264663399 +MBTD1 0,264688291 +SYT12 0,264690461 +ACTR5 0,264835312 +EIF4A1 0,264933012 +COX7A1 0,26511391 +CMTM6 0,265385079 +FAM102A 0,265449454 +AW970584 0,265532869 +FMO5 0,265619005 +N4BP2L1 0,26587536 +SPAG11A 0,265939376 +TGFBI 0,265987004 +RYK 0,266131346 +SERBP1 0,266135884 +AK021988 0,266152576 +NCAM2 0,266199101 +AK024995 0,266233606 +RAB9A 0,266259326 +SYNJ2 0,266313048 +PHLDB1 0,266315252 +PKN1 0,266439146 +MFAP3L 0,266558078 +PPFIBP2 0,266640652 +WBP5 0,266861878 +TMX1 0,266949292 +SLC6A12 0,267009029 +C3AR1 0,267017849 +CSRP2 0,267020264 +SP3 0,267034674 +ATN1 0,267069634 +GNB3 0,267107148 +TIAL1 0,267113358 +GPATCH8 0,267177985 +PMEPA1 0,267182372 +MAP2K3 0,267199274 +NM_018033 0,267304029 +WWTR1 0,267350058 +SEMA6A 0,267400431 +RBPJ 0,267426168 +AL049279 0,267438916 +IL1RN 0,267473934 +QKI 0,267577841 +SOX15 0,267588393 +DMTF1 0,267672579 +RPL19 0,267821304 +TRIM39R 0,267839755 +SLC26A6 0,267879749 +NM_025056 0,267969441 +BBS9 0,267969882 +M85256 0,26799656 +ADORA3 0,268097905 +TMEM176B 0,268515164 +SECTM1 0,268600799 +ST14 0,268612452 +ARHGEF18 0,268652414 +SIRT5 0,268726991 +MYBPC1 0,268763379 +RPL15P22 0,268793196 +SIGLEC15 0,268860828 +DNAJA1 0,26890035 +LMBR1L 0,269042598 +GIMAP4 0,269074847 +MFAP3 0,269075993 +ABCA6 0,269120338 +AW836210 0,26919833 +LOC100133772 0,269228182 +CHST4 0,269387102 +RNASEH2A 0,269387986 +RPL18 0,269450865 +RPLP2 0,269486597 +MEPE 0,269489799 +FAM106A 0,269545639 +GATAD1 0,269621956 +PPP2R3A 0,269725552 +MASP2 0,269836416 +MYO10 0,26992164 +PIGG 0,269941407 +SMG5 0,269952017 +IFI30 0,269956381 +AK025180 0,269971157 +AMD1 0,269982316 +LMOD1 0,270125966 +SNX15 0,270191178 +SCARB1 0,270338985 +SERTAD3 0,270373355 +MBD5 0,270430073 +SLC2A5 0,270454389 +ITCH 0,270468949 +ADA 0,270490353 +PWP2 0,270541137 +ARHGEF1 0,270572389 +C2CD2 0,270675538 +EIF1 0,27071329 +C1orf35 0,270772513 +IFI16 0,270855012 +LOC285830 0,270905428 +IL10 0,271025993 +MORC4 0,2712707 +CA11 0,271346355 +C5orf54 0,271348162 +C14orf93 0,271428228 +RPL17P7 0,271481741 +TMEM161A 0,271564557 +LRCH3 0,271627825 +DFFB 0,271779652 +BAZ1B 0,271859723 +DKFZp547G183 0,271894591 +RAB11FIP2 0,271895928 +PCK1 0,27194659 +TMPRSS5 0,27195628 +TIPARP 0,272078235 +UBE2L3 0,272125747 +ZNF672 0,272142507 +GALNT10 0,272151507 +EXD2 0,272173543 +KAT2B 0,272322281 +RPS11 0,27237174 +POLR2H 0,272422791 +IGLL3 0,272574443 +AA554430 0,272578205 +DOCK10 0,272578712 +DMC1 0,272606886 +CD40 0,272762332 +CDK11A 0,272811711 +UCKL1 0,272898303 +FAM125B 0,273084179 +UBXN7 0,273084433 +SMA4 0,273204796 +DYNLT1 0,273349219 +CTTNBP2NL 0,273380758 +HSPH1 0,273396703 +CYP39A1 0,273418193 +HOMER3 0,273432217 +RRBP1 0,273480926 +ATAD2B 0,27361049 +LGALS3 0,273847411 +LASS2 0,273913098 +ZNF451 0,273935073 +NXPH4 0,27404559 +C22orf46 0,274118605 +KDM4B 0,27422483 +GPNMB 0,274363725 +CYHR1 0,274415705 +CCDC9 0,274487483 +WWC2 0,274522318 +ZNF652 0,274533788 +ILK 0,274538403 +CTDP1 0,27455992 +LOC51152 0,274810051 +AL442084 0,274963062 +CPNE7 0,275259638 +CENPB 0,275294531 +TCIRG1 0,275300556 +PRPF40A 0,275423637 +ARHGAP17 0,27552534 +LOC100133811 0,275961848 +ADAM17 0,276019886 +CRISPLD2 0,276144309 +IFIH1 0,276175289 +LOC440434 0,276293985 +DCLK2 0,276369722 +MS4A6A 0,276482788 +VASH1 0,276499979 +SRSF7 0,276513035 +B3GAT3 0,276752575 +CALHM2 0,276762436 +MAP4 0,276867434 +DULLARD 0,27687625 +CTSS 0,276943812 +BAG3 0,277040195 +KRT8P12 0,277155277 +POLR2F 0,277193722 +CD14 0,277207134 +SF3B1 0,277255775 +EZH1 0,277320185 +MBD1 0,277342685 +MITF 0,277407356 +BAIAP2 0,277445862 +FCGR2B 0,277531437 +PAQR4 0,277547889 +NFATC2IP 0,277597337 +CAT 0,277600148 +TJP2 0,277610024 +CCNA2 0,277687494 +GEM 0,277887602 +C2orf54 0,277935237 +HIRIP3 0,278018588 +MCM3APAS 0,278082892 +CFB 0,278130274 +TAGLN2 0,278365668 +AK024851 0,278382784 +HGD 0,278585783 +NR2E1 0,278716062 +SEC61A1 0,278797194 +PDE4DIP 0,278806635 +FRMD4A 0,278822955 +RHOC 0,278842121 +UBTF 0,278963815 +NCOR2 0,279024257 +PPP6R3 0,279218049 +ALAS2 0,279327775 +SPSB1 0,279537438 +SGMS1 0,279545277 +TEAD4 0,279565374 +AK024897 0,27961031 +IRS2 0,279708094 +TRIM62 0,279977776 +AF308291 0,279984986 +AK022362 0,280079092 +KIAA0495 0,280115197 +CUL7 0,280170918 +PARD3 0,280192562 +NUP98 0,280376383 +DHRS4L2 0,280391865 +AK024093 0,280444114 +VEGFB 0,280560816 +PTEN 0,280592383 +NBPF10 0,280620974 +CASP1 0,280699269 +AK2 0,280734467 +MLX 0,280792537 +GNG11 0,280826824 +HNRNPM 0,280968313 +IL12RB2 0,28098376 +CDK18 0,28098866 +RARA 0,280998983 +GYPC 0,281028129 +PAK4 0,28104576 +SEMA3F 0,281239182 +BAT2L2 0,281335934 +BRD4 0,28139016 +PAOX 0,281415979 +SMAD3 0,281446531 +PIK3R2 0,281480063 +IFT122 0,281682471 +IRAK4 0,281825175 +RASSF2 0,281825652 +RPL13A 0,282085077 +ZNF22 0,282127023 +KDM4A 0,282136199 +CPM 0,282150511 +EIF2S2 0,282316006 +USP48 0,282335945 +CLCNKB 0,282422648 +C11orf61 0,282474246 +ANKRD11 0,282516441 +PTTG1IP 0,282619596 +SEC14L1 0,282620994 +DOCK6 0,282646645 +CARHSP1 0,28271852 +RRAS 0,282814195 +TRIM38 0,283129972 +PLA1A 0,283206252 +GAB1 0,283220235 +PDLIM1 0,283254227 +SSH3 0,283308195 +KLF9 0,283315657 +N4BP2L2 0,283629404 +TNS4 0,283667599 +C15orf28 0,28383226 +ANXA11 0,283988681 +TAF12 0,283993401 +SLC39A1 0,284190806 +SAP30 0,284320416 +RNASE4 0,284337811 +RPS28P6 0,28438483 +DDR2 0,284449824 +BMP4 0,284614799 +CEPT1 0,284615091 +ITPKB 0,284650775 +PLEKHF2 0,284678379 +AW974812 0,284683098 +PTCRA 0,284827371 +SETMAR 0,2848555 +SOCS3 0,284925858 +NM_014129 0,284930906 +MYO1D 0,285094554 +RBL1 0,28514691 +HN1L 0,285254673 +LASS4 0,285307965 +RPS21 0,285547221 +PPP2R1B 0,285765143 +NEO1 0,285937917 +SEC24C 0,286013109 +BCL3 0,286014454 +KCNMA1 0,286080656 +AL137590 0,286198689 +EDIL3 0,286207431 +ARHGEF16 0,286210956 +HCK 0,286227266 +GSTA1 0,286246055 +SLA 0,286356975 +UNG 0,286379363 +SP100 0,286388329 +PRSS53 0,28642638 +MYL6 0,286728542 +CDH5 0,286728949 +C10orf116 0,286730624 +GTF2IRD1 0,286882519 +POLH 0,286995879 +SFRS16 0,287066034 +TPM4 0,28709233 +ABCD4 0,287100216 +GLT25D2 0,287127854 +COL18A1 0,287131911 +NPIPL3 0,287424398 +C1orf69 0,287453135 +MTF1 0,287488427 +IGF2BP2 0,287555495 +PALLD 0,287872078 +RPS16 0,287887395 +CYP2C9 0,287955438 +SC65 0,288029122 +CRYBG3 0,288096904 +SHC2 0,288312879 +FLNA 0,288339801 +NM_014486 0,288348194 +ISYNA1 0,288383809 +PNO1 0,288506351 +GZMK 0,2886543 +ATG13 0,288748426 +NCOR1 0,288772721 +ZSWIM1 0,288892162 +GPM6B 0,28893274 +SNTA1 0,289049438 +RHOBTB1 0,289064808 +GGA1 0,289073087 +ATXN2L 0,289088819 +FAM46A 0,289172187 +ZNF532 0,289393934 +CD40LG 0,289400418 +ZCCHC11 0,289421485 +WDR5B 0,289498086 +EPN2 0,289629137 +WNK1 0,289684816 +ZNF408 0,289721753 +LHFPL2 0,290003635 +NARG2 0,290029081 +STYXL1 0,29008917 +YY1AP1 0,290249669 +CPOX 0,290281635 +IL11RA 0,290333682 +PAXIP1 0,290387596 +ZNF282 0,290414378 +C11orf95 0,290643441 +MERTK 0,290681835 +VPS13C 0,29069039 +RPS17 0,290756898 +NEIL1 0,290762184 +ZNF292 0,290850132 +NOSIP 0,290873511 +DNAJB2 0,290950763 +INPPL1 0,29102828 +ZFX 0,29106383 +SETX 0,291138151 +SLC25A37 0,291207794 +PCDHGA8 0,291472818 +TXNIP 0,291962928 +DDX27 0,291971417 +BG389073 0,29216848 +JTB 0,292275569 +RBM10 0,292352574 +RASGRF1 0,29242252 +SYNM 0,292474024 +EXPH5 0,292481151 +NPL 0,292494012 +CHKA 0,292519533 +MGA 0,292564204 +SOX10 0,292580481 +AK024185 0,292975066 +FAM120A 0,292996604 +PLXNB1 0,293000141 +BDH2 0,293071563 +JRK 0,293136106 +SLC11A1 0,293139917 +TM4SF1 0,293242649 +EDA 0,293286441 +CDK10 0,293299298 +HLA-E 0,293305618 +LOC642846 0,293349826 +GFPT2 0,293396887 +SENP3 0,293408144 +RPS3AP44 0,293415546 +C16orf88 0,293431615 +FAM60A 0,293472328 +RPL36A 0,293501288 +SERPINA5 0,293547044 +CNOT8 0,293568161 +KDM4C 0,293620372 +POU2F2 0,293815578 +C14orf139 0,293870806 +ZNF217 0,293937173 +NM_025042 0,294034268 +NNMT 0,294200775 +VEZT 0,294224684 +KIAA0754 0,294307773 +RBM28 0,294637248 +ITPR2 0,294711729 +PPPDE1 0,294796015 +KLHL28 0,294874305 +MGP 0,294956866 +LOC729602 0,295016892 +SRSF5 0,295036903 +ROCK1 0,295267164 +SS18L2 0,295271871 +LMNA 0,29532356 +ESRRA 0,295387708 +SNHG3-RCC1 0,295411716 +TAL1 0,295434654 +SQRDL 0,295470062 +TARDBP 0,295665655 +LMAN2L 0,295705138 +RIN3 0,295771443 +PSPH 0,29602696 +DGKD 0,296027908 +WHSC1 0,296067068 +SPRY4 0,296068122 +ADARB2 0,296162399 +ELF3 0,296200778 +TLE1 0,296292637 +ACAN 0,296375799 +AK022038 0,296556116 +IL1RL1 0,296721787 +OR2A9P 0,296898432 +NCRNA00260 0,296954725 +CAD 0,296976627 +PNRC2 0,297129071 +IQCK 0,297134521 +ACOX2 0,297377087 +APOC4 0,297497329 +DGKA 0,297541846 +ZBTB1 0,297547513 +PUS1 0,297622568 +C7orf64 0,297653213 +FBLN1 0,297723957 +SBF1 0,297752819 +TMF1 0,298582891 +IL1R1 0,298701666 +LILRB3 0,298823808 +FLAD1 0,298825369 +CD163 0,299040686 +TCL6 0,299056301 +FADS3 0,299096634 +LBR 0,299180453 +AL162044 0,299184427 +ZNF337 0,299271736 +AHNAK 0,299352615 +YY1 0,299417937 +HIPK2 0,299439852 +NAT15 0,299519834 +ANKZF1 0,299817611 +NECAP2 0,299838267 +MAP3K7 0,299838407 +SAMD4A 0,299863792 +WDR8 0,300094232 +ZNF24 0,300179611 +NR3C1 0,300200063 +FGF1 0,300357727 +NPC1 0,300564708 +LMO4 0,300573598 +TTLL5 0,300853453 +AL050053 0,300945526 +RSU1 0,300958049 +C15orf39 0,301123219 +SLC14A1 0,301147038 +ELAVL1 0,301190126 +SLC17A4 0,301215925 +FANCC 0,301274346 +LRCH4 0,301338927 +EGFL7 0,301340052 +C9orf3 0,301357727 +SRGN 0,301411135 +PLCL1 0,301576339 +MAN1A1 0,301613058 +S100A8 0,301917937 +W86781 0,301984854 +HIP1 0,302012828 +OR7A5 0,302027387 +PPP1CC 0,3020408 +CGGBP1 0,302058231 +CYP3A4 0,302333153 +GALNS 0,302376776 +NR0B1 0,302394827 +SMNDC1 0,302468654 +MGST2 0,302482901 +RPL12 0,302658969 +DMPK 0,302955014 +TNRC6B 0,30299615 +PPM1D 0,303104009 +EED 0,303134999 +STAG3L1 0,3031801 +TMCC1 0,303195736 +RPL13 0,303245467 +RBPMS 0,30326423 +ARHGAP10 0,303298204 +PLCB3 0,303300054 +XPO1 0,303410309 +MYO1F 0,30341788 +SRPK1 0,303531642 +ZCWPW1 0,303562617 +MTHFD2L 0,303678034 +FAM111A 0,303798707 +TTC38 0,304186409 +COL7A1 0,304295553 +C4orf19 0,304312458 +NGLY1 0,304332742 +HTATIP2 0,304339936 +IFNAR2 0,304414877 +CXorf1 0,304737703 +UNC5B 0,304789798 +YAP1 0,30479215 +PHC2 0,30485466 +FBL 0,304914384 +CDH2 0,304939032 +FXYD2 0,304942957 +ANKRD36 0,305000603 +KRT8 0,305028726 +DSCAM 0,30505625 +SMO 0,305151387 +FCGRT 0,305420183 +PAIP2B 0,305483478 +PABPC1 0,305528523 +PIGV 0,305604211 +BACH2 0,305697602 +PLGLA 0,305722503 +MORC3 0,305845022 +DIDO1 0,305996983 +PRPF38B 0,306041882 +TRMT1 0,306054262 +NFATC1 0,306233076 +AK021495 0,306242002 +GPR1 0,306335484 +STARD13 0,306369109 +CELSR2 0,306371185 +ZNF193 0,306396574 +ABHD6 0,306458055 +PLCXD1 0,306486283 +RPAP1 0,306695411 +AL050122 0,306737964 +DHRS3 0,306750918 +C1QA 0,306800137 +AF009267 0,30681596 +SETD2 0,307047565 +STX6 0,307184977 +TMEM204 0,307304516 +SMYD2 0,307490131 +BF942161 0,307560212 +SLC44A1 0,307685609 +ELF2 0,307698089 +AATF 0,307770923 +AV761453 0,307800442 +ACTN1 0,307927265 +AI523613 0,307943372 +SOLH 0,307971092 +ZNF410 0,308222237 +GOLGA4 0,308250269 +FLJ21369 0,308352331 +FCGR2A 0,308469725 +BRD7 0,308638563 +TLR2 0,308769609 +FTHL5 0,308790654 +SPOCK1 0,308861441 +LSM14A 0,308907157 +USF2 0,309161806 +TENC1 0,309220224 +EMP2 0,309252571 +BSDC1 0,309299474 +ZNF701 0,309462113 +PLIN3 0,309516744 +SORBS1 0,309562012 +FTL 0,309588981 +AGFG2 0,309634949 +UBR5 0,309647344 +MMP14 0,30965745 +SFRS8 0,309923113 +ITPR3 0,309975876 +PLK3 0,310097184 +NUP188 0,310124261 +CROCC 0,310245563 +CHSY1 0,310328559 +CTCF 0,310675097 +EDC4 0,310685915 +NFE2L2 0,31069885 +LILRA6 0,311008878 +SATB2 0,311055754 +GTPBP6 0,311254994 +TSPAN14 0,311316513 +C10orf18 0,31133762 +SECISBP2 0,311419174 +DHX34 0,311443077 +LSS 0,311450185 +CHI3L1 0,311532669 +PDGFC 0,311715929 +BMP7 0,311741682 +MBNL1 0,311755686 +DNA2 0,311841432 +COMT 0,312081286 +LOC100133005 0,312165679 +PTOV1 0,312192713 +LCAT 0,312407744 +LRRFIP2 0,312480817 +UCN 0,312589312 +AK024606 0,312655002 +MICAL3 0,312700621 +ROM1 0,31291043 +MED12 0,312925796 +CPNE1 0,313173908 +GBP2 0,313262095 +PELI2 0,313279559 +MLL 0,313398121 +HIF3A 0,313438743 +ST18 0,313449639 +AF131777 0,313643716 +CATSPER2P1 0,313785721 +ZNF302 0,314066212 +APBB2 0,314110219 +KIAA0907 0,31421022 +ZNF592 0,314679884 +HNRNPA1 0,314773035 +TSC2 0,314882123 +SFRS15 0,314884343 +ZNF835 0,314920694 +WDR6 0,314979423 +LOC729143 0,315037798 +PPARD 0,315048839 +U2AF2 0,315118843 +MGAT1 0,315269456 +ZNF44 0,315270856 +RPL36 0,315475789 +GRAMD3 0,315513449 +PTPN2 0,315554784 +AL080072 0,315635626 +C19orf2 0,315918303 +DNAH3 0,315930745 +ZNF146 0,316341954 +SMEK1 0,316538461 +MLXIP 0,31681421 +NMT2 0,316848231 +G3BP1 0,316864559 +DDX3Y 0,316997159 +STEAP1 0,317082981 +BC002629 0,317231764 +KDM2A 0,317406731 +TMEM39A 0,317430306 +C15orf29 0,317437851 +MACF1 0,317513626 +LOC391020 0,317572673 +SETD1A 0,317586539 +KTN1 0,317889697 +RUNX3 0,31809511 +NINJ1 0,318107478 +ARMC7 0,318150459 +BMP1 0,318194029 +DKFZP586I1420 0,318199121 +JARID2 0,318226296 +AW972351 0,318303541 +PAPSS2 0,31841091 +ELTD1 0,31845583 +ETS2 0,318667898 +CREB3L2 0,318705762 +DFNB31 0,31892768 +SERHL2 0,318966243 +C10orf26 0,319058163 +NM_030892 0,319421731 +WRAP53 0,319795295 +UBQLN4 0,319828198 +RALGDS 0,319938162 +PRKCH 0,320101043 +AU146983 0,320105843 +SLC5A3 0,32021553 +DUSP1 0,320239212 +NKX2-2 0,320312108 +C1orf183 0,320387827 +PCM1 0,320482282 +THRA 0,320531901 +NM_025028 0,320726138 +SIVA1 0,320736787 +TTR 0,320757249 +IKBKB 0,320778441 +ARID1A 0,321020715 +HDAC4 0,321059842 +ZFP36L2 0,321167918 +TMEM212 0,321179342 +AA443771 0,321214505 +AGAP5 0,32125931 +PIGA 0,3216713 +SFRS12 0,321704401 +LDLRAP1 0,321832456 +CCDC21 0,321857948 +SSFA2 0,321990716 +RAMP1 0,322050077 +FLJ10357 0,322160744 +LAD1 0,322322766 +RACGAP1 0,322340831 +NPIPL2 0,322616655 +CEP350 0,322648588 +CRLF1 0,322735059 +IGSF9B 0,322744338 +PLXND1 0,322801951 +MCL1 0,322913781 +ALMS1 0,32297709 +ZNF768 0,323059066 +RSL1D1 0,323228527 +C4orf34 0,323582139 +PNPLA6 0,323738553 +MAST4 0,323801655 +NME3 0,323835175 +SNHG3 0,32391938 +S100A12 0,324014586 +PPP4R1 0,32409634 +PLD1 0,324165096 +POLG 0,324186823 +NKTR 0,324203565 +ST3GAL4 0,324231325 +TMEM63A 0,324243134 +ST20 0,32438459 +RNF114 0,324406844 +HYI 0,324468621 +DUSP6 0,324699964 +NR1H2 0,324884332 +DVL2 0,324900869 +SRSF11 0,324979841 +CLK2 0,325170283 +MKLN1 0,325287178 +SCRIB 0,325320413 +KIAA0467 0,325541973 +DMWD 0,325745064 +KLHL23 0,32579572 +RPS6 0,325948088 +ZBTB17 0,326014408 +RAI14 0,326038467 +UBE2G2 0,326143089 +ZNF562 0,326186073 +EZR 0,326282578 +TRPS1 0,326283144 +HFE 0,326390644 +MED23 0,32658232 +DDX11 0,326766632 +SHMT2 0,326784725 +LRP5 0,326954416 +PTH1R 0,327100265 +LOC731602 0,327131294 +AA401963 0,327241371 +CDK5RAP2 0,327276136 +SERP1 0,327279991 +SLC1A5 0,327303416 +BGN 0,327370767 +HSD17B1 0,327475971 +AL390143 0,327497051 +DIAPH2 0,327617697 +PITPNC1 0,327719899 +SPRY2 0,327767132 +FZD7 0,327974293 +MAP4K4 0,328171238 +TNS1 0,328369107 +ZNF783 0,328517049 +M78162 0,328518574 +ADAMTS1 0,32853944 +FKBP5 0,328911405 +AGAP8 0,329115979 +PLEKHF1 0,329179433 +DNAJB1 0,329339376 +RBMS2 0,329438459 +HNRNPH1 0,329454824 +ULK2 0,329496298 +PAPD7 0,329501864 +SURF1 0,329547559 +W61005 0,329673439 +ZNF862 0,330131081 +GNA15 0,330266409 +CHD9 0,330273108 +DLC1 0,330294104 +TMEM2 0,330321664 +AK024879 0,330353812 +N4BP1 0,330435804 +SERF2 0,330633507 +SNRPA 0,330957742 +IRF8 0,33098543 +ABCA2 0,331251046 +NPFF 0,331328402 +CP 0,331565597 +AU144887 0,331713137 +AW851559 0,33185735 +TCF4 0,332062967 +ZNF354A 0,332076549 +TMEM92 0,332352956 +NFATC3 0,332386137 +SSRP1 0,332529738 +TCF7L2 0,332651908 +PIM1 0,332716071 +PIP4K2A 0,332914219 +EIF4EBP1 0,332959146 +LOC100132863 0,333054912 +MMRN2 0,333075923 +AU147295 0,333342973 +VIM 0,333356286 +C2orf67 0,333469715 +DNMT1 0,333550022 +CEP110 0,333679402 +BAZ2B 0,33371151 +KDELR2 0,333939841 +L3MBTL 0,334448273 +CDK19 0,334505985 +CYorf15B 0,334832089 +DDX17 0,334839203 +FKBP4 0,335166906 +STOM 0,335173644 +U82303 0,335241438 +LOC202181 0,335841121 +ATM 0,335893127 +STK3 0,335957389 +MID1 0,336166241 +IGFBP5 0,336454348 +PARP4 0,336459483 +EXOC7 0,336479503 +FANCG 0,336652927 +PHF2 0,336678654 +FBRS 0,33674511 +ANP32B 0,336836072 +NCK2 0,336876937 +CASP6 0,336920233 +ZBTB3 0,337122586 +DHFR 0,337448147 +APOLD1 0,337464001 +STAG1 0,337490482 +NM_024305 0,337551103 +SIGLEC8 0,337608204 +ERLIN1 0,337809212 +POLDIP3 0,337889824 +SPTLC2 0,33799094 +C7orf26 0,338204972 +UBE2D4 0,338265561 +MAP2K7 0,3384787 +MECOM 0,338508564 +DOCK1 0,339029429 +HS1BP3 0,339148762 +PRKY 0,339216015 +GOLGA1 0,33927478 +XPC 0,339433169 +PHF3 0,33953002 +HIC2 0,339768003 +C9orf7 0,340519877 +CTDSPL 0,340591645 +ZNF83 0,34077157 +PHGDH 0,340889735 +TMEM165 0,340978736 +CLN3 0,341078466 +AU147983 0,34113627 +PATZ1 0,341151411 +DIP2C 0,341390806 +RECK 0,341533646 +EWSR1 0,342003886 +SMAD7 0,342182186 +MTRF1L 0,34225773 +TJAP1 0,342452426 +PRKD2 0,342725824 +SPOP 0,343019265 +HLA-J 0,343028528 +PLXNB2 0,343103735 +FBXL14 0,343454364 +LAMA2 0,343637649 +RNF220 0,343845541 +CLK3 0,344164444 +STARD3 0,344187457 +OGT 0,345118989 +IFITM3 0,345141829 +HMOX1 0,345196784 +EIF2C2 0,34557825 +CCND3 0,345663426 +TGFBR3 0,345676022 +POLR2J3 0,345712548 +BCAR3 0,345713549 +C14orf147 0,34610842 +CLDN15 0,34616346 +TOP1 0,346179876 +RASL12 0,346286134 +MED13L 0,346369067 +SOS2 0,346799305 +SERPING1 0,347144597 +IER5 0,347279068 +TLE2 0,347426427 +LLGL2 0,347448236 +TMCC2 0,347500013 +PHF20 0,347602909 +SIRT4 0,347862165 +OSGIN1 0,348060574 +H2BFS 0,348076316 +NM_017756 0,348230007 +NCRNA00115 0,348422218 +MT1E 0,348733923 +NACC2 0,3488369 +NFIB 0,348943619 +AKR1C3 0,349206923 +ARPC1B 0,349407208 +NIPBL 0,349628117 +RPL11 0,349803207 +MSH6 0,350014407 +PTDSS2 0,350073646 +AL050145 0,350120404 +FAM107A 0,350271118 +CHN2 0,350358174 +DAPK2 0,350378033 +DLG5 0,350436992 +OPHN1 0,350596034 +C20orf11 0,351010126 +SLC35D1 0,35135795 +SELL 0,35142274 +FAM193B 0,351790995 +NM_024880 0,352020901 +RASGRP2 0,352114346 +CAPN3 0,352194849 +THOC1 0,352289646 +TAOK3 0,352396226 +FBXO42 0,352613215 +LARP6 0,352692849 +KLKB1 0,352702835 +METTL7A 0,352961228 +STIP1 0,352968743 +WIPF2 0,353085817 +FOXD1 0,353404764 +HSPB2 0,35378232 +ENGASE 0,353978221 +LAT2 0,354239264 +HIST1H2AH 0,354250391 +GSDMD 0,354483715 +TRA2A 0,354674037 +C19orf29 0,354762053 +BRPF1 0,355002213 +NUMA1 0,355146564 +SNW1 0,355320637 +SMARCC1 0,355374541 +ZNF175 0,35555253 +BATF3 0,355680727 +HIST1H2BC 0,35575565 +ERN2 0,356098991 +ZFR 0,356185362 +AW301806 0,356253591 +SMTN 0,356289422 +RPS6KA2 0,356774064 +MIIP 0,35685635 +ARGLU1 0,356919378 +CTNNAL1 0,357152141 +PCDH9 0,357228835 +LAS1L 0,357263917 +DOK1 0,358029668 +AFTPH 0,35852635 +ZNF143 0,358674337 +C11orf71 0,35888557 +MICALL2 0,359221642 +KDM6A 0,359260932 +CFH 0,359284568 +CEBPB 0,359516672 +MTUS1 0,359547348 +AW973791 0,359548173 +SERTAD2 0,359684853 +FGFR1 0,359721729 +KPTN 0,360479451 +NR2F2 0,361169645 +RGL2 0,361384531 +NM_014120 0,361482036 +TAF5 0,361611903 +ZC3HAV1 0,362177526 +BEST1 0,362248528 +TNFRSF1A 0,362724804 +CLIP2 0,363062238 +EHMT2 0,363078239 +IFITM1 0,363162265 +GCFC1 0,363190607 +PECAM1 0,363227012 +YES1 0,363556218 +ZFP36L1 0,363744573 +SBNO2 0,364095165 +RMND5A 0,364201024 +IL10RB 0,364481295 +CBS 0,364486163 +TBC1D2B 0,364503601 +C10orf10 0,36458821 +AU144530 0,365137826 +ZNF500 0,365202134 +ATP6V0E1 0,36527949 +SEPT8 0,365711052 +VCAN 0,365762437 +RPL36AP51 0,366073863 +RPL31 0,36613283 +TAOK1 0,36613666 +GCN1L1 0,366181489 +CALCOCO1 0,366300689 +GNA11 0,366387362 +SH2B2 0,366425408 +RREB1 0,367259867 +SLC35E1 0,3672965 +GPRC5B 0,367311931 +TCF7 0,367371063 +PDIA4 0,367810651 +ZNF34 0,367845233 +MBD3 0,36793004 +CXCR4 0,368041224 +C9orf114 0,368120984 +IFITM2 0,368313531 +ZNF665 0,368328536 +ZCCHC24 0,368368275 +LOC100133944 0,369022431 +CSDA 0,369150342 +AU148255 0,369666508 +CIZ1 0,369704457 +CRTC3 0,369792369 +CTNNA1 0,369962411 +RARRES2 0,37011032 +NM_025033 0,370246707 +VSIG4 0,370274949 +FAM48A 0,370421427 +ZDHHC11 0,370675656 +NPAS2 0,370715345 +ADH1B 0,370935809 +ACSL1 0,371025369 +C1orf63 0,371083889 +TYMP 0,371266716 +LEPREL1 0,371463494 +LAMB2 0,371472469 +MAFB 0,371542293 +AW971248 0,371589606 +BC003629 0,371603781 +FAM63A 0,371786321 +ABCA1 0,371992682 +IGF2R 0,37211512 +SOX13 0,372131188 +WAPAL 0,372391179 +ZFC3H1 0,372437982 +ZNF710 0,372493324 +HSPA6 0,37258644 +CCDC101 0,372823539 +BAZ1A 0,372824952 +AXL 0,372842922 +NPIPL1 0,372916072 +HDGF 0,372923023 +KHDRBS3 0,373093219 +MT1X 0,373144553 +MTMR15 0,373164421 +AF257099 0,373262757 +AEBP1 0,37342966 +KLHL25 0,373672957 +GJB4 0,37372121 +LUC7L3 0,374023648 +U79248 0,374142769 +LOC653562 0,374188384 +RBM4 0,374375075 +ABCC10 0,374890625 +CXorf21 0,374896996 +DAXX 0,374917403 +C1R 0,375063944 +TPST2 0,375279072 +KLHL24 0,375307199 +C7orf68 0,375539219 +ZCCHC8 0,375600764 +CASP4 0,375605037 +ETV1 0,37597402 +BIN1 0,376340315 +RGS19 0,376617752 +PKNOX1 0,377091746 +CTTN 0,377173864 +TRIP10 0,377452782 +ANGEL1 0,377498562 +PLIN2 0,377879768 +NM_025007 0,377942771 +PTMA 0,378229214 +S100A11 0,378255627 +AXIN1 0,378580893 +NPRL3 0,378633074 +PNN 0,378695864 +AV727934 0,378843386 +ANGPT2 0,37912784 +AK023918 0,379250766 +CNPY3 0,37927474 +AF130051 0,37947818 +TLE4 0,379880985 +PAPOLA 0,379974199 +ITGB5 0,380683545 +FAM38B 0,380693638 +PABPN1 0,380909515 +SLC6A8 0,38116858 +RYBP 0,38121367 +NASP 0,381229843 +FGR 0,381246748 +PER1 0,381695992 +CDR2L 0,381867955 +LRRFIP1 0,382075479 +HMHA1 0,382282948 +KIAA0485 0,382313718 +GUSB 0,38235255 +RPS17P5 0,38240934 +FXYD5 0,382563723 +RBL2 0,382697586 +RANBP10 0,382980904 +NEDD9 0,383084673 +MSL2 0,383144236 +FAM50A 0,383317183 +AL080232 0,383323554 +SPG21 0,383712061 +TPD52L1 0,384098652 +H2AFX 0,384141378 +SWAP70 0,384225003 +IVNS1ABP 0,384369268 +KDELC1 0,384542393 +MYL12A 0,384757468 +FOXO3 0,384856157 +MED13 0,385128516 +AL049252 0,38560217 +AF007147 0,385820993 +PAX6 0,385884587 +DNASE2 0,38591545 +SLC12A9 0,386200858 +SIRT1 0,38637719 +ARID5B 0,386492868 +MT2A 0,38656824 +SLC38A2 0,386710042 +GNG5 0,386756333 +SRRM2 0,386841072 +SERPINB6 0,386985458 +CC2D1A 0,387023088 +LRRC37A2 0,387067777 +CSF1 0,387071999 +RPL29P11 0,38708859 +SFRS14 0,387094074 +MYO9B 0,387103012 +AW972855 0,387241981 +TRIP4 0,387728627 +ZBTB40 0,387827711 +STARD8 0,387863703 +WBSCR16 0,387992811 +NXF1 0,388021286 +CTDSP1 0,38803541 +RSAD1 0,388042285 +SUV420H1 0,38833134 +CDKN1C 0,388508896 +NM_016415 0,388588403 +E2F4 0,388673603 +KANK2 0,388702219 +ZC3H7B 0,388980025 +ANGPTL4 0,389035415 +CRY1 0,389801967 +KIAA0556 0,389845114 +TBC1D16 0,390016803 +TCOF1 0,390109025 +ZFYVE26 0,390278079 +IFRD1 0,39034324 +EIF4B 0,390385914 +SMC1A 0,390525141 +SCIN 0,3907272 +MARS 0,391061966 +PTRF 0,391089965 +POLR2J 0,391514571 +APAF1 0,391530483 +ITPK1 0,3915415 +PNRC1 0,392133859 +CLIC2 0,392140808 +KIAA0913 0,392243895 +PRKAR2A 0,392619325 +PRKX 0,392750502 +SYDE1 0,392957216 +ACSL5 0,393140899 +LRP10 0,393162277 +LPP 0,393214983 +SNTB2 0,393383504 +NADK 0,393882671 +PCBP2 0,394206896 +N51370 0,394562467 +CLIC1 0,394663761 +CTBP2 0,394785714 +PHB 0,394929787 +BCL2 0,395102709 +TAF4 0,395492947 +LOC652607 0,395562084 +YBX1 0,396079328 +PRPF3 0,396609142 +SLC38A10 0,396741732 +ERBB2IP 0,396808535 +CFLAR 0,396840203 +TNFRSF10B 0,397091951 +PHC1B 0,397196351 +ARL17A 0,397406114 +ZBTB20 0,397424403 +REPIN1 0,397830532 +BE466926 0,397930108 +MT1P2 0,398055653 +ZNF778 0,398225613 +DICER1 0,398300689 +NM_018603 0,398329284 +RAF1 0,398631868 +MXD4 0,398685167 +FBXL7 0,398770393 +CALD1 0,399121196 +GSDMB 0,399246982 +ZCCHC2 0,399293751 +PODXL 0,399691684 +ACACB 0,400136922 +VEZF1 0,400413083 +PLEKHM1 0,401187317 +CSPG4 0,401646086 +ID3 0,40170175 +RBM41 0,401719975 +KDM6B 0,401885964 +PHF15 0,402522419 +LAMP2 0,402538077 +CDC14B 0,402583482 +HNRNPL 0,403044314 +SLC4A2 0,403448509 +DDX23 0,403953946 +TUBD1 0,40407115 +SLC16A3 0,404204458 +CAPN2 0,405022548 +CBFA2T2 0,40560438 +TCEB2 0,405769952 +HNRNPF 0,406126644 +MORC2 0,406182732 +FOXO1 0,406430281 +AI962978 0,406538883 +HP1BP3 0,406567553 +CBFB 0,406789498 +RBM14 0,406886421 +SFI1 0,407058786 +ZHX3 0,407089165 +KDM3A 0,407233406 +SIRT2 0,407341821 +ANKS1A 0,407373917 +TCF3 0,407442968 +NOTCH2NL 0,407672378 +EEF1D 0,407830724 +SOX12 0,408065349 +SLCO1A2 0,40820492 +HNRNPA3 0,408299868 +GTF2H3 0,408624789 +FZD9 0,408729069 +SAFB2 0,408755308 +APBA3 0,408834306 +ASCL1 0,409161488 +CG012 0,409559201 +WDR59 0,409606436 +LAMA5 0,409632505 +ZNF276 0,409730125 +ZNF395 0,410080702 +TIMM44 0,410223052 +BGLAP 0,410749324 +ZHX2 0,411039562 +CARS2 0,411302016 +SLCO3A1 0,411338796 +LOC442497 0,411765627 +FRYL 0,411842495 +CYP2J2 0,412070197 +ABL1 0,412522321 +INF2 0,412975218 +SGK1 0,413352645 +SFTPB 0,413789208 +TIGD1L 0,41383023 +RBCK1 0,414019825 +TRAPPC10 0,414285862 +DUSP7 0,414641136 +WSCD1 0,415016303 +DCP1A 0,415308358 +LPAR1 0,415365439 +RBBP6 0,415730871 +DONSON 0,416255506 +C16orf5 0,416258918 +NCOA1 0,416350707 +CFHR1 0,416440287 +AA126763 0,416566153 +LRRC32 0,416765832 +CP110 0,41732481 +LTBP3 0,417338221 +TDRD3 0,417356196 +HMG20B 0,417456909 +CDC42EP2 0,417645635 +TAF1C 0,417736819 +NM_013344 0,41778911 +VGLL4 0,417820331 +PHKA2 0,417904785 +KDSR 0,418009802 +RELA 0,418064238 +TBL1X 0,41814877 +SIAH2 0,418727849 +MYO1E 0,418747589 +HIST1H2BD 0,419127582 +AI744451 0,419208355 +PTMAP7 0,419537834 +ARID5A 0,419593497 +CYP27A1 0,420064872 +RAB13 0,420441013 +CPSF7 0,420526378 +CPT1B 0,420770156 +LRDD 0,420794327 +PILRB 0,421599366 +STAB1 0,421733406 +FCHO1 0,422126906 +ZNF32 0,422311821 +TBC1D3H 0,422328806 +C1orf66 0,42292679 +NM_025032 0,423323973 +AI732802 0,423584905 +PCID2 0,423787762 +POGK 0,423912669 +TMEM140 0,424587207 +TMC6 0,424604298 +AL080160 0,42490597 +AK021505 0,425024442 +SCD5 0,425610027 +RAD52 0,425956612 +AF116715 0,425960499 +DCI 0,425967692 +SFRS18 0,426091505 +HCG2P7 0,426136765 +ADORA2A 0,426366158 +NM_021651 0,426442506 +MID1IP1 0,426940092 +HNRNPC 0,427103695 +NM_025024 0,427155973 +AK024315 0,427460397 +AK021514 0,427966252 +SLC29A3 0,428138792 +NSUN5 0,428255135 +PHF10 0,428599049 +DAPP1 0,428626141 +TMEM109 0,428647746 +LOC91316 0,428742129 +ITGB4 0,42956266 +SLC30A1 0,429998682 +AW150065 0,430129937 +ZCCHC6 0,430267528 +ARHGEF2 0,430371137 +AK027193 0,43049002 +TRIM52 0,430535815 +MT1G 0,430767233 +NOTCH1 0,430849119 +ZRSR2 0,43114681 +RPS6KA1 0,43184981 +KANK1 0,432456197 +FURIN 0,432618855 +APOBEC3C 0,432749845 +ANKRD40 0,432772877 +TRIOBP 0,432900403 +ZNF384 0,433116555 +CDKN1A 0,43319672 +BTG1 0,433570541 +EPHX1 0,433658916 +CNOT6 0,434207544 +HSPA1L 0,434322364 +PKD1 0,434547199 +WAS 0,434717417 +RPL23AP32 0,434993767 +P4HA1 0,434997425 +MAX 0,435160002 +UIMC1 0,435278167 +NM_025120 0,435322168 +NCOA6 0,435700178 +TPD52L2 0,435768747 +BCL6 0,435938226 +AK024108 0,436355329 +C7orf23 0,436800978 +CDC42BPA 0,437074951 +CD59 0,437137855 +POLR1B 0,437227618 +TLR5 0,437498143 +HDAC1 0,437993569 +ARHGEF7 0,438071237 +AA045174 0,438161955 +TBC1D17 0,438488128 +PRELP 0,438518539 +GTF2H2B 0,438525643 +HIST1H2BK 0,43866778 +AU147851 0,438979485 +RBM39 0,439661925 +IQGAP1 0,439786742 +RPL18AP3 0,440613252 +LTBR 0,440721546 +RPL35A 0,441136859 +ARAP2 0,441441928 +ARAF 0,441560027 +MT1H 0,441587824 +LOC441258 0,442117007 +ZCCHC14 0,442132801 +IRF7 0,442147625 +NOL12 0,442203671 +PTPLB 0,442541309 +AI683552 0,442752948 +MYST1 0,442881562 +MXI1 0,443040642 +AW974910 0,443299524 +C1orf144 0,443500279 +KRCC1 0,444417306 +PIAS4 0,444438643 +SRSF1 0,444637015 +LRP2 0,444740953 +ZDHHC18 0,445392541 +SPN 0,445443935 +ST13 0,446667878 +PHF17 0,446746739 +NACA2 0,446876872 +SASH1 0,447285208 +CD22 0,44772036 +CSNK1E 0,447902552 +COL5A3 0,447933631 +MAT2A 0,448695587 +EFHD1 0,448820126 +MAP3K3 0,448963961 +BIN3 0,449317201 +LUC7L 0,449469644 +KIF1C 0,449622117 +RNF144A 0,450034368 +TULP3 0,450626451 +CDKN2C 0,450879897 +HSD17B7 0,451226227 +ACIN1 0,451331774 +PABPC3 0,451363083 +PHF21A 0,45139036 +HNRNPH3 0,451480034 +HIST2H2BE 0,452219911 +RRP1B 0,452597128 +SOX2 0,453132172 +ZNF444 0,453296716 +FAM13A 0,453547738 +JUP 0,453753674 +PODNL1 0,453854292 +MAML1 0,453885 +SNRNP70 0,45408945 +SDCCAG3 0,45464357 +PLGLB1 0,454722494 +CDH19 0,454754165 +HSPA1B 0,455063205 +ARHGEF10 0,455229121 +NFIL3 0,455469821 +NFKBIA 0,455577982 +XRCC2 0,455670024 +ACTN4 0,455764555 +PDS5A 0,456071133 +POU2F1 0,456120351 +VPS54 0,456318614 +BANF1 0,456451252 +PGCP 0,456765652 +RPL28 0,456867479 +ICAM2 0,457066169 +SNAP23 0,457069788 +SART1 0,457941993 +AK023891 0,458253977 +BANP 0,458588544 +MAP3K11 0,458968207 +EPOR 0,459463669 +FKSG49 0,459538011 +MT1F 0,459638951 +NM_014128 0,460468204 +AP1G2 0,460676306 +GAS2L1 0,461632768 +PHIP 0,462053958 +NOL8 0,462387404 +NM_017932 0,462395281 +RNF130 0,462894529 +ZMYND8 0,463309493 +AK024525 0,463401166 +TRIM28 0,463454342 +BCAT2 0,463509769 +TYRO3 0,463574548 +PHLPP1 0,463738295 +BST2 0,465024297 +PDGFRB 0,465034704 +AL049987 0,465336929 +AKAP8L 0,466278804 +TGM2 0,467555999 +CREBBP 0,467899354 +KIAA0894 0,468325808 +DDX39 0,468959477 +NCAPD2 0,468959537 +ALPK1 0,469621875 +TGIF1 0,469902489 +PPP1R14B 0,470121069 +PNMT 0,470291567 +NAA16 0,470467422 +ZNF611 0,470526774 +ZRSR1 0,470857426 +NPIP 0,472818474 +RBM38 0,473036567 +USP34 0,473278809 +TGFB3 0,474067001 +ITSN2 0,475328182 +CEBPD 0,475754278 +MCM3AP 0,476296498 +HAPLN2 0,476718109 +POGZ 0,477224004 +NR2F1 0,477556735 +GAS1 0,478628972 +SLTM 0,478903701 +ECE1 0,479007813 +CALCOCO2 0,47910558 +RXRA 0,479821295 +MEIS2 0,480178943 +CLEC2B 0,481843785 +AL049260 0,482481089 +CHST3 0,48259726 +COL16A1 0,483094975 +SLC25A16 0,483255606 +LHPP 0,48421483 +AF010144 0,484619234 +GTSE1 0,484629217 +MUM1 0,484956644 +TNXB 0,485246904 +PRINS 0,486032909 +ANKRD49 0,486282532 +PTPRK 0,486899575 +PPAP2C 0,487395433 +C22orf9 0,488987561 +KHNYN 0,489026627 +RAPGEF3 0,489474077 +AF078844 0,489716822 +MAN2A1 0,489875474 +IFT20 0,490824284 +USP21 0,490859618 +NOP2 0,491526918 +LOC440248 0,491905455 +LOC647070 0,493492979 +MAFF 0,494072026 +BG251521 0,495196452 +C6orf145 0,496322836 +MLL4 0,496324893 +ATF4 0,49676781 +RELN 0,497310216 +PELI1 0,497491599 +P2RX7 0,497499324 +CNOT2 0,498172475 +FAM38A 0,498599859 +DCLRE1C 0,498693515 +INSR 0,502304787 +MAPKAPK2 0,502573806 +NDE1 0,50267356 +MT1M 0,502716901 +CDK5RAP3 0,504041432 +SULT1A4 0,504805398 +NSUN5P2 0,505093708 +ANKRD10 0,505841449 +LOC339047 0,506042447 +LRRC1 0,506594446 +CUX1 0,507257715 +SRRT 0,508240438 +MAF 0,508625791 +EBLN2 0,509549245 +NM_017618 0,510705903 +RBM4B 0,51138423 +FBXW12 0,511744983 +ATP8B1 0,511969804 +NM_024978 0,512045897 +KCNMB4 0,512142959 +CLMN 0,512461537 +LOC100132540 0,512589899 +SERPINH1 0,513136463 +RHBDF2 0,513703735 +PCF11 0,514081494 +HAUS2 0,514694211 +TECPR2 0,514970535 +TNIP2 0,515014912 +AUP1 0,516155581 +KIAA0101 0,516801916 +N35922 0,51703624 +STK38 0,517483454 +AZGP1P1 0,518047589 +C13orf15 0,518310047 +PRR11 0,518691616 +PDCD6 0,51972326 +AFF1 0,520716014 +AF222691 0,521107674 +BE045142 0,521502008 +PACS2 0,521749261 +PSRC1 0,522634606 +ZNF358 0,523463012 +MAPKBP1 0,523696079 +S100A4 0,524041412 +MYO1C 0,524902669 +IRF3 0,52538788 +TOB2 0,526119659 +KLHL21 0,527145117 +PGF 0,527713686 +LOC399491 0,528407104 +ARAP1 0,528556373 +AZGP1 0,528659072 +SIRT7 0,528927974 +C16orf53 0,529668261 +KLHL2 0,533153888 +AK022213 0,533802801 +ANKRD28 0,534099367 +TF 0,536170201 +MAVS 0,53636005 +MSX1 0,536723495 +C12orf35 0,537890473 +AA554945 0,538449904 +SUN2 0,539191173 +RBM6 0,54218394 +AL080112 0,542349721 +SORT1 0,542569398 +AL049285 0,542660805 +FOXO4 0,542834527 +ABCA8 0,543725594 +RING1 0,54468938 +KCNE4 0,546337688 +TAZ 0,546506594 +DIP2A 0,546907877 +CLK4 0,548788669 +ZNF277 0,549312201 +MUS81 0,551193399 +DBT 0,556696292 +EMP3 0,557013195 +DDIT4 0,557077384 +RUFY1 0,557170712 +MYST3 0,559285285 +PRPF4B 0,559881298 +LOC100132247 0,562956585 +HSPB1 0,56508456 +CHD7 0,566776564 +CHORDC1 0,566831861 +COBL 0,569205746 +STAG2 0,569603186 +CTDSP2 0,570069613 +ZNF160 0,572703009 +PDE4C 0,574535337 +WWC3 0,575159977 +BMI1 0,576213767 +CRYAB 0,577245348 +AHCTF1 0,577515066 +ADIPOR2 0,5780263 +CASC3 0,57815663 +MUTYH 0,579456271 +AK023783 0,580340854 +HIGD1B 0,583663012 +PLOD1 0,587347495 +PRR14 0,587364521 +SH3BP4 0,58788373 +C19orf28 0,587956493 +NDRG1 0,588555643 +HIST1H1C 0,591446402 +TCF12 0,592176798 +MPST 0,593408757 +SEPP1 0,593935425 +DNAJB6 0,595685757 +SIRPA 0,596218961 +FLT1 0,597923318 +MYOT 0,598968138 +HIST1H2AC 0,600586387 +HBP1 0,600714263 +KAZ 0,601415288 +PTBP1 0,602313539 +NSUN5P1 0,603090503 +GUSBP3 0,604393039 +KCNJ2 0,616084197 +KAT2A 0,620256502 +MCM7 0,622618327 +FBXW4 0,627081137 +MKNK2 0,628440154 +IL17RB 0,631530593 +CLK1 0,632420317 +LRP4 0,632833859 +FAM53B 0,641895571 +JMJD6 0,64411039 +TYK2 0,644727629 +PLOD3 0,644893842 +CXXC1 0,650530485 +AK024136 0,659066605 +PAN2 0,66036619 +NPTX2 0,665210794 +SPEN 0,669461617 +SETD5 0,670191692 +STX10 0,674048462 +CDK2AP2 0,67411425 +PPM1B 0,68382966 +SLCO4A1 0,685048974 +GLT25D1 0,706365388 +ZC3H11A 0,716021559 +ZBTB16 0,720405109 +ZNF692 0,720940567 +NUPR1 0,724120307 +FLCN 0,747339708 +NFASC 0,755177517 diff --git a/console/testFiles/pd_full/PD_160714_2/layouts/ageing.txt b/console/testFiles/pd_full/PD_160714_2/layouts/ageing.txt index 952e851c76..d5c8ec23b4 100644 --- a/console/testFiles/pd_full/PD_160714_2/layouts/ageing.txt +++ b/console/testFiles/pd_full/PD_160714_2/layouts/ageing.txt @@ -1,416 +1,416 @@ -# VERSION=1.0 -# NAME=Ageing brain +# VERSION=1.0 +# NAME=Ageing brain # DESCRIPTION=Differential transcriptome expression from post mortem tissue. Source: Allen Brain Atlas datasets, see PMID 25447234. -name value -ELMO2 -0.547404913905166 -RGS1 0.664905640201586 -GSTT1 -0.630503181260422 -SDPR 0.576954531502211 -KCNJ2 -0.389733143810031 -DLG2 -0.622560222549952 -C2orf46 0.306481308387015 -YPEL1 -0.110679998012662 -AFF2 -0.580887248407995 -TCP11L2 -0.446138772716671 -TYROBP 0.0965004216809888 -PCK1 0.583148947380073 -C3 -0.229405245486493 -BLOC1S2 -0.501156113973434 -LPAR5 -0.252012578774993 -ACAD11 0.484415314534294 -CALB1 -0.585051808236823 -GNG2 -0.514333881323537 -GRIN3A -0.54737874801763 -BLNK -0.23678687239484 -SMARCD1 -0.480222958914743 -ARMC9 0.512102956486084 -CX3CR1 -0.300766155352383 -SLC31A2 -0.502055753854611 -AGPAT3 -0.413409719893933 -EFNB3 -0.382400551167611 -ELMOD2 0.402518685883201 -PRKCG -0.34345444223993 -LAPTM5 -0.136628457581106 -IQUB 0.562346209462303 -STAM -0.566262263187017 -OR11A1 0.178234692397988 -ZDHHC9 -0.520488129277965 -C11orf9 -0.511135500492906 -KLF4 0.640024343756592 -SYCP2L 0.555576793235834 -C20orf112 -0.63210679508749 -AP3M1 -0.436291767005889 -ALMS1P 0.310301539060874 -GREM1 -0.101042197816266 -HLCS -0.404869146774348 -CARNS1 -0.358503492948689 -TSHZ2 -0.370201532555949 -CDKN1A 0.37878581767329 -CNDP1 -0.387074241865627 -C1orf161 0.408555295769768 -DOK6 -0.552556377657443 -C12orf43 -0.345533858224805 -SIPA1L2 -0.469893969573457 -FLJ40712 0.248899115372987 -TREM2 0.326657235461902 -MS4A6A 0.333196279374371 -RASGRF1 0.18816869654076 -RNF26 -0.576816063125611 -C7orf68 0.551320218061987 -DPP7 0.601525547176648 -OMD 0.556147496355725 -SNAI2 -0.402803074931945 -COL21A1 0.475584827359055 -APBB1IP -0.510593783545533 -PRKCQ -0.625167167620313 -PDGFRA -0.593141766545025 -SLCO2B1 -0.20664851085323 -LPCAT3 -0.457401881600448 -CD37 -0.225548512842192 -IRF8 -0.513003936776053 -CSF1R -0.17710132121375 -CD74 0.0263995452022326 -CHI3L1 0.637898420604861 -SELPLG -0.165789940031603 -CDH8 -0.544872582360693 -CXCL12 -0.350721988871356 -TOPBP1 -0.516846284550731 -SLC16A10 0.372816060474775 -PCDHB9 -0.583344609658305 -HLA-DRA 0.249881965203208 -OLR1 0.105145169714195 -ADORA3 0.352457579745827 -ALOX5AP 0.094898490604102 -HLA-DOA 0.0912244782358314 -ZNF519 0.242878217518759 -FCER1G 0.122597294910367 -MT1H 0.274901514766897 -MFSD2A 0.12726693788776 -AIF1 -0.0853762046815476 -CTSH 0.324179727747488 -C3AR1 0.00893654957093225 -FCGR2A -0.0476956544487118 -CXCL16 0.0931434603948185 -EVI2B -0.236921572611684 -BACE1 -0.616602739604107 -OR1E1 0.491889127463635 -CLK1 0.423619868541565 -FLJ13197 0.340321509869536 -WBP2NL 0.590401706468574 -UGT8 -0.444926073295334 -HSD17B14 0.614959487312916 -GRIK3 -0.628539434045017 -MT1G 0.569589804148072 -BAIAP3 0.50915236570152 -TJAP1 -0.211899568999271 -PIP4K2C -0.546592244445733 -CAMK4 -0.62370886479691 -TMEM63A -0.349108640870675 -CCDC45 0.470491672406875 -ERLIN1 -0.590064605968872 -ATP6V1F 0.31735684237396 -EPHB2 -0.492251103302591 -ANKRD11 -0.576352445468476 -PCDHB2 -0.56247030572076 -ACSL1 -0.580402201513607 -LGR5 -0.49666928921999 -PDE3B 0.561081934872393 -C1orf21 -0.433409479731833 -LRRTM1 -0.430851468978506 -GPR12 -0.285126298493215 -VSTM2A -0.496505850586284 -ODZ1 -0.500803022233123 -CACNG2 -0.568038440978143 -SMPD3 -0.448297258958326 -SORBS2 -0.652515435812272 -DCAF7 -0.561122254419525 -GJD2 -0.500391756170096 -PEG10 -0.529984214958046 -A2M -0.0956498395825097 -THRB -0.278461084991876 -C11orf24 -0.519543924524242 -TFG -0.340307925442264 -MAMLD1 -0.389582104545406 -ASPHD2 -0.44086160208266 -ANKRD37 0.644400268061014 -NCKAP1L -0.38869429192758 -CAPN5 -0.568639095894228 -SERINC3 -0.473478678274642 -CEBPB 0.386715054596765 -PRDM10 -0.575525391963737 -HCN1 -0.384931312491389 -CAMTA1 -0.435666315274373 -KLHDC1 0.27598504319864 -DUSP1 0.576414053338242 -QRICH1 -0.533552393948272 -SH3KBP1 -0.391446975914019 -EBF1 -0.379385913897609 -PPP1R16B -0.356903880861572 -BTBD3 -0.327196312551472 -NRXN2 -0.509283550099326 -KAZ -0.541421535478964 -KIAA0317 -0.636085461640037 -NDST3 -0.426753877235142 -GMCL1 0.45632888308336 -P2RX5 -0.283914132520413 -IGFL3 0.297606727720448 -LOC286161 -0.366837279825892 -PLEKHM1 -0.408702703852517 -RIMS1 -0.372721943202267 -UBE2Q2P1 0.327173892822723 -TTYH2 -0.407525904378876 -DES 0.06209856553185 -DBNDD2 -0.30225683329951 -ENPP2 -0.409429156664166 -NTN4 0.494337823155339 -SUN2 -0.276353435973038 -ACTG2 -0.210220455726459 -CA2 -0.0242596436213912 -THBS1 -0.221580234422776 -LDLRAD3 -0.360622764104025 -SNX1 -0.0377961368749078 -ERBB3 -0.405973590470433 -TTN 0.391623015044573 -ATRN -0.52540142288716 -NPC1 -0.267674240960311 -GNS -0.181466206971045 -KLK6 -0.378431280290618 -FOS 0.360516377902882 -CD69 0.377148542537053 -LYVE1 0.138789282779698 -FTL 0.237591315022414 -JUNB 0.394473562572383 -GSTM5 0.217560993654354 -NR4A1 0.24427289755837 -PGAM2 0.551801840506397 -TMEM176A 0.537931366670412 -EGR1 -0.157019974633097 -GPR183 0.107180842069747 -CXCL11 0.395003724312407 -PLA2G12A -0.18246216314499 -HLA-DMB 0.229795197318716 -CPNE8 0.0508489313725271 -ZFP36 0.42538436064968 -AGPAT4 -0.467855141787709 -HLA-DPA1 0.408536378107808 -PIK3C2B -0.591780318571167 -CPNE6 -0.271576531727541 -PLD3 -0.200022062788495 -PVRL1 -0.555155906198138 -GGCT -0.279243242312552 -P2RY13 -0.360442360434042 -CNTN5 0.00258913839174191 -MCM7 0.195233154899312 -GPR120 -0.199692500084005 -GABRE 0.0682190440098052 -LRRC39 0.498683033772744 -TLR7 -0.164697853025215 -RFC3 -0.486755240432686 -CD33 0.00184280522373291 -CA8 0.363290764959567 -MAS1 -0.492009752548035 -FBLN5 -0.511286958021381 -TMTC1 -0.332133706392934 -C1orf51 0.45497717618641 -RPL35 -0.0899084146126614 -DKK2 -0.38611669080376 -USP53 0.412868805138869 -CD177 -0.217675402988493 -ELAVL1 -0.579547221944692 -AIFM3 0.577935690502709 -ASCL1 0.37568323074867 -EXPH5 -0.575008199569129 -CBWD3 0.283287779368243 -PEPD -0.0553830875558683 -GPNMB 0.364500938005497 -NEDD4L -0.508710397589902 -CALB2 -0.425755713683833 -FAM49A -0.447197463197697 -NT5DC3 -0.265234061560778 -HES6 0.347000889525298 -GDA -0.336613721691585 -RASAL1 -0.344295261121664 -ANO3 -0.518790055621458 -C14orf145 0.508493948450919 -MSRB3 0.374050410076754 -CC2D2B 0.438851338613457 -FAM65B -0.254284575986291 -KIRREL3 -0.539616579176257 -CKLF 0.222793814048359 -DNAJA4 -0.486836211576555 -BCOR -0.579019889055718 -CBLL1 -0.642779519205918 -CACNG3 -0.428582206819538 -GRIN2B -0.577739683994275 -LRRC67 0.341366642004448 -RELL2 0.405916058000189 -NUDT3 -0.340375787654433 -MAST2 -0.541618527665053 -S100A10 -0.105037624066791 -OR13C2 0.379430219617317 -HSPC157 0.570528832119166 -NOP10 0.322245514370384 -C6orf174 -0.338629613564291 -LRRC61 0.0251744454575518 -FOLR2 0.131043427693804 -DYRK2 -0.522163896119695 -CALHM2 0.169628414381558 -CST7 0.313658960797421 -DUSP7 -0.523627393294567 -MTMR10 -0.415446285885383 -PPM1G -0.464776264617981 -ADCY1 -0.454137407761092 -RPL13 0.506459486318965 -RRN3P1 0.525814578931781 -CXCL2 0.3672098081501 -RXRG 0.0402026385616925 -SRGN 0.531671866088554 -HIST1H2AE 0.293542472070096 -CYP2B6 0.275105405791745 -HHIP -0.466578712584274 -KIAA1324L -0.40123393199988 -FLJ90757 -0.507490069062372 -MYT1L -0.584482026813831 -EIF2C2 -0.484852873283777 -NKAIN2 -0.549382635628517 -EIF2AK2 -0.489504988062896 -KIF21A -0.359563932905791 -CCT6A -0.177223944265096 -CDV3 -0.391589063759768 -HIVEP2 -0.600071683037855 -SPATA1 0.543060390879784 -FKBP11 -0.615494036116273 -NDST1 -0.475889745275566 -ARHGEF10 -0.250541551205642 -ZHX1 0.482981433720838 -SLC10A7 -0.337979122832437 -JAKMIP2 -0.415964197082499 -NAV1 -0.510622036406541 -NDUFB2 0.377202661234421 -ZNF507 -0.468104205569414 -MGAT2 0.222876912868186 -TTR 0.346175361449992 -EPB41L3 -0.411485674977879 -CNTNAP2 -0.327376463196595 -HNRNPU -0.346139332150707 -ZNRD1 0.194397447066282 -PMF1 0.232524370350156 -TNFRSF21 -0.387936336469165 -KCNB1 -0.405472129261546 -FOXG1 -0.471157786135538 -S100A13 0.557308910766736 -BRD4 -0.517114201471415 -TIGD6 0.442112009917649 -RSPH9 0.182331610189591 -RGS20 0.417845235693366 -ASAP1 -0.536170937682141 -SLC7A14 -0.280031937135622 -MGAT3 -0.448766981367882 -IFITM4P 0.485622606827836 -SFRS15 -0.542060168583627 -PITPNM3 -0.42639997101521 -PTPRE -0.530218005259195 -ZEB1 -0.477757026844139 -KCNQ3 -0.429926385373833 -CRB1 0.536038063001376 -MAPT -0.50877997133818 -ABCA3 -0.360772553926051 -NPAS2 -0.419863325483148 -CLIC2 0.498878325957547 -LARP1 -0.49884819681315 -NLGN2 -0.429454573027551 -ALS2CR11 0.294226279272528 -NAP1L2 -0.313096105976879 -SLIT1 -0.434411983489453 -PHB 0.00979800238909777 -ZNF587 -0.0136127665384343 -STRN4 -0.576565248356412 -DSCAML1 -0.596992679910324 -MBD2 -0.20298332637123 -CENPQ 0.422898511661338 -PHF10 0.395502631449537 -MAP3K9 -0.405184359146696 -XRCC1 -0.370898065524857 -AKR1C3 0.453192387807177 -TTC29 0.290819126414233 -ISG20L2 -0.428905666986556 -TMEM165 0.492824884935657 -C2CD3 -0.514182826428327 -DPP4 0.23910770529895 -CCDC92 -0.53622071697372 -EXT1 -0.382555479091514 -C1QL2 -0.201706565681442 -ABHD2 -0.301021168563018 -SMURF1 -0.635507196661467 -CSNK1G2 -0.414657842955022 -TSPO 0.312759943492922 -EFEMP1 0.418307207101287 -HIST1H2BC 0.155466056856681 -CACNA1G -0.603776648047605 -FCGRT 0.35186075288181 -OR6N2 0.19188744379883 -LILRA4 0.402116115371683 -GRIA1 -0.509922904695054 -HOXD8 0.311094779788594 -UPP1 0.48025126950744 -C17orf88 0.245494799347336 -MKL2 -0.495926848441475 -TAB3 -0.397855481558619 -KRTAP19-5 0.333726211690568 -PCDHB3 -0.42089893790206 -KLRF1 0.238176912312437 -TLR4 0.293561440425403 -SEPT14 0.268206811480962 -BSN -0.301460000103249 -GRLF1 -0.466342462809911 -C1orf61 0.409705166908955 -GSTM1 0.580671376408388 -SDCCAG3 0.339086319326061 -NHLH2 0.264436125619991 -CRTC1 -0.364358124950179 -ZNF701 0.262422484025346 -FTO -0.484606564596535 -KIAA0430 -0.323429860829196 -HPSE2 0.444523469491999 -AAK1 -0.336960928171931 -ZNF592 -0.459711729876906 -INF2 -0.368727716463355 -UNC80 -0.203435560684691 -KCNJ9 -0.385326074668389 -CREBBP -0.48479916887186 -TMEM187 0.353577074222219 -GIMAP6 0.196334054611495 -MSH4 0.495021650163618 -CYP2F1 -0.202379731783218 -WARS -0.36956071999387 -EIF4H -0.324258084689287 -LMF1 -0.465196534142832 -SLC9A11 0.380530864151023 -RPLP0 0.401187575431913 -SORCS3 -0.524716179920174 -SMPD1 -0.371378049257817 -MLL2 -0.382849048834827 -ACTA2 -0.351473562308814 -CD84 0.0440334284755635 -LRRC57 -0.0868790230732024 -ADAM28 -0.234050278113392 -FLJ37543 0.329929076805089 -NR4A2 -0.525703760298336 -METT11D1 0.315411883405057 -MEX3C -0.570394569556345 -ST8SIA5 -0.525318796364569 -HRH1 -0.276472654345764 -RAB3IP -0.23897971786832 -ETV6 -0.448657117826825 -LUZP2 -0.409590511647277 -TRIM44 -0.386063986999447 -MYH11 -0.280352372336459 -TPK1 0.485143439818794 -C1QC -0.0250872517448672 -A2ML1 0.356485052871728 -ZNF365 0.476040462817264 -CCL2 0.160044975309114 -ADRA2A -0.511689669158592 -TMPRSS5 0.299973105357606 -C5orf53 0.490994640268981 -MORC2 -0.41225212616417 +name value +ELMO2 -0.547404913905166 +RGS1 0.664905640201586 +GSTT1 -0.630503181260422 +SDPR 0.576954531502211 +KCNJ2 -0.389733143810031 +DLG2 -0.622560222549952 +C2orf46 0.306481308387015 +YPEL1 -0.110679998012662 +AFF2 -0.580887248407995 +TCP11L2 -0.446138772716671 +TYROBP 0.0965004216809888 +PCK1 0.583148947380073 +C3 -0.229405245486493 +BLOC1S2 -0.501156113973434 +LPAR5 -0.252012578774993 +ACAD11 0.484415314534294 +CALB1 -0.585051808236823 +GNG2 -0.514333881323537 +GRIN3A -0.54737874801763 +BLNK -0.23678687239484 +SMARCD1 -0.480222958914743 +ARMC9 0.512102956486084 +CX3CR1 -0.300766155352383 +SLC31A2 -0.502055753854611 +AGPAT3 -0.413409719893933 +EFNB3 -0.382400551167611 +ELMOD2 0.402518685883201 +PRKCG -0.34345444223993 +LAPTM5 -0.136628457581106 +IQUB 0.562346209462303 +STAM -0.566262263187017 +OR11A1 0.178234692397988 +ZDHHC9 -0.520488129277965 +C11orf9 -0.511135500492906 +KLF4 0.640024343756592 +SYCP2L 0.555576793235834 +C20orf112 -0.63210679508749 +AP3M1 -0.436291767005889 +ALMS1P 0.310301539060874 +GREM1 -0.101042197816266 +HLCS -0.404869146774348 +CARNS1 -0.358503492948689 +TSHZ2 -0.370201532555949 +CDKN1A 0.37878581767329 +CNDP1 -0.387074241865627 +C1orf161 0.408555295769768 +DOK6 -0.552556377657443 +C12orf43 -0.345533858224805 +SIPA1L2 -0.469893969573457 +FLJ40712 0.248899115372987 +TREM2 0.326657235461902 +MS4A6A 0.333196279374371 +RASGRF1 0.18816869654076 +RNF26 -0.576816063125611 +C7orf68 0.551320218061987 +DPP7 0.601525547176648 +OMD 0.556147496355725 +SNAI2 -0.402803074931945 +COL21A1 0.475584827359055 +APBB1IP -0.510593783545533 +PRKCQ -0.625167167620313 +PDGFRA -0.593141766545025 +SLCO2B1 -0.20664851085323 +LPCAT3 -0.457401881600448 +CD37 -0.225548512842192 +IRF8 -0.513003936776053 +CSF1R -0.17710132121375 +CD74 0.0263995452022326 +CHI3L1 0.637898420604861 +SELPLG -0.165789940031603 +CDH8 -0.544872582360693 +CXCL12 -0.350721988871356 +TOPBP1 -0.516846284550731 +SLC16A10 0.372816060474775 +PCDHB9 -0.583344609658305 +HLA-DRA 0.249881965203208 +OLR1 0.105145169714195 +ADORA3 0.352457579745827 +ALOX5AP 0.094898490604102 +HLA-DOA 0.0912244782358314 +ZNF519 0.242878217518759 +FCER1G 0.122597294910367 +MT1H 0.274901514766897 +MFSD2A 0.12726693788776 +AIF1 -0.0853762046815476 +CTSH 0.324179727747488 +C3AR1 0.00893654957093225 +FCGR2A -0.0476956544487118 +CXCL16 0.0931434603948185 +EVI2B -0.236921572611684 +BACE1 -0.616602739604107 +OR1E1 0.491889127463635 +CLK1 0.423619868541565 +FLJ13197 0.340321509869536 +WBP2NL 0.590401706468574 +UGT8 -0.444926073295334 +HSD17B14 0.614959487312916 +GRIK3 -0.628539434045017 +MT1G 0.569589804148072 +BAIAP3 0.50915236570152 +TJAP1 -0.211899568999271 +PIP4K2C -0.546592244445733 +CAMK4 -0.62370886479691 +TMEM63A -0.349108640870675 +CCDC45 0.470491672406875 +ERLIN1 -0.590064605968872 +ATP6V1F 0.31735684237396 +EPHB2 -0.492251103302591 +ANKRD11 -0.576352445468476 +PCDHB2 -0.56247030572076 +ACSL1 -0.580402201513607 +LGR5 -0.49666928921999 +PDE3B 0.561081934872393 +C1orf21 -0.433409479731833 +LRRTM1 -0.430851468978506 +GPR12 -0.285126298493215 +VSTM2A -0.496505850586284 +ODZ1 -0.500803022233123 +CACNG2 -0.568038440978143 +SMPD3 -0.448297258958326 +SORBS2 -0.652515435812272 +DCAF7 -0.561122254419525 +GJD2 -0.500391756170096 +PEG10 -0.529984214958046 +A2M -0.0956498395825097 +THRB -0.278461084991876 +C11orf24 -0.519543924524242 +TFG -0.340307925442264 +MAMLD1 -0.389582104545406 +ASPHD2 -0.44086160208266 +ANKRD37 0.644400268061014 +NCKAP1L -0.38869429192758 +CAPN5 -0.568639095894228 +SERINC3 -0.473478678274642 +CEBPB 0.386715054596765 +PRDM10 -0.575525391963737 +HCN1 -0.384931312491389 +CAMTA1 -0.435666315274373 +KLHDC1 0.27598504319864 +DUSP1 0.576414053338242 +QRICH1 -0.533552393948272 +SH3KBP1 -0.391446975914019 +EBF1 -0.379385913897609 +PPP1R16B -0.356903880861572 +BTBD3 -0.327196312551472 +NRXN2 -0.509283550099326 +KAZ -0.541421535478964 +KIAA0317 -0.636085461640037 +NDST3 -0.426753877235142 +GMCL1 0.45632888308336 +P2RX5 -0.283914132520413 +IGFL3 0.297606727720448 +LOC286161 -0.366837279825892 +PLEKHM1 -0.408702703852517 +RIMS1 -0.372721943202267 +UBE2Q2P1 0.327173892822723 +TTYH2 -0.407525904378876 +DES 0.06209856553185 +DBNDD2 -0.30225683329951 +ENPP2 -0.409429156664166 +NTN4 0.494337823155339 +SUN2 -0.276353435973038 +ACTG2 -0.210220455726459 +CA2 -0.0242596436213912 +THBS1 -0.221580234422776 +LDLRAD3 -0.360622764104025 +SNX1 -0.0377961368749078 +ERBB3 -0.405973590470433 +TTN 0.391623015044573 +ATRN -0.52540142288716 +NPC1 -0.267674240960311 +GNS -0.181466206971045 +KLK6 -0.378431280290618 +FOS 0.360516377902882 +CD69 0.377148542537053 +LYVE1 0.138789282779698 +FTL 0.237591315022414 +JUNB 0.394473562572383 +GSTM5 0.217560993654354 +NR4A1 0.24427289755837 +PGAM2 0.551801840506397 +TMEM176A 0.537931366670412 +EGR1 -0.157019974633097 +GPR183 0.107180842069747 +CXCL11 0.395003724312407 +PLA2G12A -0.18246216314499 +HLA-DMB 0.229795197318716 +CPNE8 0.0508489313725271 +ZFP36 0.42538436064968 +AGPAT4 -0.467855141787709 +HLA-DPA1 0.408536378107808 +PIK3C2B -0.591780318571167 +CPNE6 -0.271576531727541 +PLD3 -0.200022062788495 +PVRL1 -0.555155906198138 +GGCT -0.279243242312552 +P2RY13 -0.360442360434042 +CNTN5 0.00258913839174191 +MCM7 0.195233154899312 +GPR120 -0.199692500084005 +GABRE 0.0682190440098052 +LRRC39 0.498683033772744 +TLR7 -0.164697853025215 +RFC3 -0.486755240432686 +CD33 0.00184280522373291 +CA8 0.363290764959567 +MAS1 -0.492009752548035 +FBLN5 -0.511286958021381 +TMTC1 -0.332133706392934 +C1orf51 0.45497717618641 +RPL35 -0.0899084146126614 +DKK2 -0.38611669080376 +USP53 0.412868805138869 +CD177 -0.217675402988493 +ELAVL1 -0.579547221944692 +AIFM3 0.577935690502709 +ASCL1 0.37568323074867 +EXPH5 -0.575008199569129 +CBWD3 0.283287779368243 +PEPD -0.0553830875558683 +GPNMB 0.364500938005497 +NEDD4L -0.508710397589902 +CALB2 -0.425755713683833 +FAM49A -0.447197463197697 +NT5DC3 -0.265234061560778 +HES6 0.347000889525298 +GDA -0.336613721691585 +RASAL1 -0.344295261121664 +ANO3 -0.518790055621458 +C14orf145 0.508493948450919 +MSRB3 0.374050410076754 +CC2D2B 0.438851338613457 +FAM65B -0.254284575986291 +KIRREL3 -0.539616579176257 +CKLF 0.222793814048359 +DNAJA4 -0.486836211576555 +BCOR -0.579019889055718 +CBLL1 -0.642779519205918 +CACNG3 -0.428582206819538 +GRIN2B -0.577739683994275 +LRRC67 0.341366642004448 +RELL2 0.405916058000189 +NUDT3 -0.340375787654433 +MAST2 -0.541618527665053 +S100A10 -0.105037624066791 +OR13C2 0.379430219617317 +HSPC157 0.570528832119166 +NOP10 0.322245514370384 +C6orf174 -0.338629613564291 +LRRC61 0.0251744454575518 +FOLR2 0.131043427693804 +DYRK2 -0.522163896119695 +CALHM2 0.169628414381558 +CST7 0.313658960797421 +DUSP7 -0.523627393294567 +MTMR10 -0.415446285885383 +PPM1G -0.464776264617981 +ADCY1 -0.454137407761092 +RPL13 0.506459486318965 +RRN3P1 0.525814578931781 +CXCL2 0.3672098081501 +RXRG 0.0402026385616925 +SRGN 0.531671866088554 +HIST1H2AE 0.293542472070096 +CYP2B6 0.275105405791745 +HHIP -0.466578712584274 +KIAA1324L -0.40123393199988 +FLJ90757 -0.507490069062372 +MYT1L -0.584482026813831 +EIF2C2 -0.484852873283777 +NKAIN2 -0.549382635628517 +EIF2AK2 -0.489504988062896 +KIF21A -0.359563932905791 +CCT6A -0.177223944265096 +CDV3 -0.391589063759768 +HIVEP2 -0.600071683037855 +SPATA1 0.543060390879784 +FKBP11 -0.615494036116273 +NDST1 -0.475889745275566 +ARHGEF10 -0.250541551205642 +ZHX1 0.482981433720838 +SLC10A7 -0.337979122832437 +JAKMIP2 -0.415964197082499 +NAV1 -0.510622036406541 +NDUFB2 0.377202661234421 +ZNF507 -0.468104205569414 +MGAT2 0.222876912868186 +TTR 0.346175361449992 +EPB41L3 -0.411485674977879 +CNTNAP2 -0.327376463196595 +HNRNPU -0.346139332150707 +ZNRD1 0.194397447066282 +PMF1 0.232524370350156 +TNFRSF21 -0.387936336469165 +KCNB1 -0.405472129261546 +FOXG1 -0.471157786135538 +S100A13 0.557308910766736 +BRD4 -0.517114201471415 +TIGD6 0.442112009917649 +RSPH9 0.182331610189591 +RGS20 0.417845235693366 +ASAP1 -0.536170937682141 +SLC7A14 -0.280031937135622 +MGAT3 -0.448766981367882 +IFITM4P 0.485622606827836 +SFRS15 -0.542060168583627 +PITPNM3 -0.42639997101521 +PTPRE -0.530218005259195 +ZEB1 -0.477757026844139 +KCNQ3 -0.429926385373833 +CRB1 0.536038063001376 +MAPT -0.50877997133818 +ABCA3 -0.360772553926051 +NPAS2 -0.419863325483148 +CLIC2 0.498878325957547 +LARP1 -0.49884819681315 +NLGN2 -0.429454573027551 +ALS2CR11 0.294226279272528 +NAP1L2 -0.313096105976879 +SLIT1 -0.434411983489453 +PHB 0.00979800238909777 +ZNF587 -0.0136127665384343 +STRN4 -0.576565248356412 +DSCAML1 -0.596992679910324 +MBD2 -0.20298332637123 +CENPQ 0.422898511661338 +PHF10 0.395502631449537 +MAP3K9 -0.405184359146696 +XRCC1 -0.370898065524857 +AKR1C3 0.453192387807177 +TTC29 0.290819126414233 +ISG20L2 -0.428905666986556 +TMEM165 0.492824884935657 +C2CD3 -0.514182826428327 +DPP4 0.23910770529895 +CCDC92 -0.53622071697372 +EXT1 -0.382555479091514 +C1QL2 -0.201706565681442 +ABHD2 -0.301021168563018 +SMURF1 -0.635507196661467 +CSNK1G2 -0.414657842955022 +TSPO 0.312759943492922 +EFEMP1 0.418307207101287 +HIST1H2BC 0.155466056856681 +CACNA1G -0.603776648047605 +FCGRT 0.35186075288181 +OR6N2 0.19188744379883 +LILRA4 0.402116115371683 +GRIA1 -0.509922904695054 +HOXD8 0.311094779788594 +UPP1 0.48025126950744 +C17orf88 0.245494799347336 +MKL2 -0.495926848441475 +TAB3 -0.397855481558619 +KRTAP19-5 0.333726211690568 +PCDHB3 -0.42089893790206 +KLRF1 0.238176912312437 +TLR4 0.293561440425403 +SEPT14 0.268206811480962 +BSN -0.301460000103249 +GRLF1 -0.466342462809911 +C1orf61 0.409705166908955 +GSTM1 0.580671376408388 +SDCCAG3 0.339086319326061 +NHLH2 0.264436125619991 +CRTC1 -0.364358124950179 +ZNF701 0.262422484025346 +FTO -0.484606564596535 +KIAA0430 -0.323429860829196 +HPSE2 0.444523469491999 +AAK1 -0.336960928171931 +ZNF592 -0.459711729876906 +INF2 -0.368727716463355 +UNC80 -0.203435560684691 +KCNJ9 -0.385326074668389 +CREBBP -0.48479916887186 +TMEM187 0.353577074222219 +GIMAP6 0.196334054611495 +MSH4 0.495021650163618 +CYP2F1 -0.202379731783218 +WARS -0.36956071999387 +EIF4H -0.324258084689287 +LMF1 -0.465196534142832 +SLC9A11 0.380530864151023 +RPLP0 0.401187575431913 +SORCS3 -0.524716179920174 +SMPD1 -0.371378049257817 +MLL2 -0.382849048834827 +ACTA2 -0.351473562308814 +CD84 0.0440334284755635 +LRRC57 -0.0868790230732024 +ADAM28 -0.234050278113392 +FLJ37543 0.329929076805089 +NR4A2 -0.525703760298336 +METT11D1 0.315411883405057 +MEX3C -0.570394569556345 +ST8SIA5 -0.525318796364569 +HRH1 -0.276472654345764 +RAB3IP -0.23897971786832 +ETV6 -0.448657117826825 +LUZP2 -0.409590511647277 +TRIM44 -0.386063986999447 +MYH11 -0.280352372336459 +TPK1 0.485143439818794 +C1QC -0.0250872517448672 +A2ML1 0.356485052871728 +ZNF365 0.476040462817264 +CCL2 0.160044975309114 +ADRA2A -0.511689669158592 +TMPRSS5 0.299973105357606 +C5orf53 0.490994640268981 +MORC2 -0.41225212616417 diff --git a/converter-CellDesigner/src/test/resources/log4j.properties b/converter-CellDesigner/src/test/resources/log4j.properties index c749802b0e..28f78fc187 100644 --- a/converter-CellDesigner/src/test/resources/log4j.properties +++ b/converter-CellDesigner/src/test/resources/log4j.properties @@ -1,21 +1,21 @@ -#Set root logger 's level and its appender to an appender called CONSOLE which is defined below. -log4j.rootLogger=info, CONSOLE, R - -#Set the behavior of the CONSOLE appender -log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender -log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout -log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n -#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n - - -#Set the behavior of the FILE appender -log4j.appender.R=org.apache.log4j.FileAppender -log4j.appender.R.File=${catalina.home}/logs/MapViewer.log -log4j.appender.R.layout=org.apache.log4j.PatternLayout -log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n - - -log4j.logger.org.springframework=warn -log4j.logger.org.hibernate=warn -log4j.logger.lcsb=debug -log4j.logger.lcsb.mapviewer.common.comparator=info +#Set root logger 's level and its appender to an appender called CONSOLE which is defined below. +log4j.rootLogger=info, CONSOLE, R + +#Set the behavior of the CONSOLE appender +log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender +log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout +log4j.appender.CONSOLE.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n +#log4j.appender.CONSOLE.layout.ConversionPattern=%m%n + + +#Set the behavior of the FILE appender +log4j.appender.R=org.apache.log4j.FileAppender +log4j.appender.R.File=${catalina.home}/logs/MapViewer.log +log4j.appender.R.layout=org.apache.log4j.PatternLayout +log4j.appender.R.layout.ConversionPattern=%d %5p [%t] (%F:%L) - %m%n + + +log4j.logger.org.springframework=warn +log4j.logger.org.hibernate=warn +log4j.logger.lcsb=debug +log4j.logger.lcsb.mapviewer.common.comparator=info diff --git a/converter-CellDesigner/testFiles/annotation/invalid_rdf.xml b/converter-CellDesigner/testFiles/annotation/invalid_rdf.xml index 11bcfac129..b2e5fb5e7d 100644 --- a/converter-CellDesigner/testFiles/annotation/invalid_rdf.xml +++ b/converter-CellDesigner/testFiles/annotation/invalid_rdf.xml @@ -1,2 +1,2 @@ -<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> +<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> </rdf:RDF> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/annotation/invalid_rdf2.xml b/converter-CellDesigner/testFiles/annotation/invalid_rdf2.xml index df2d68b495..5e21af6c7d 100644 --- a/converter-CellDesigner/testFiles/annotation/invalid_rdf2.xml +++ b/converter-CellDesigner/testFiles/annotation/invalid_rdf2.xml @@ -1,10 +1,10 @@ -<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> -<rdf:Description rdf:about="#re836"> -<bqbiol:isVersionOf> -<rdf:Bag> -<rdf:li/> -<rdf:li rdf:resource="urn:miriam:pubmed:15639314"/> -</rdf:Bag> -</bqbiol:isVersionOf> -</rdf:Description> +<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> +<rdf:Description rdf:about="#re836"> +<bqbiol:isVersionOf> +<rdf:Bag> +<rdf:li/> +<rdf:li rdf:resource="urn:miriam:pubmed:15639314"/> +</rdf:Bag> +</bqbiol:isVersionOf> +</rdf:Description> </rdf:RDF> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/annotation/invalid_rdf3.xml b/converter-CellDesigner/testFiles/annotation/invalid_rdf3.xml index 6e67e05da3..225ad4bb56 100644 --- a/converter-CellDesigner/testFiles/annotation/invalid_rdf3.xml +++ b/converter-CellDesigner/testFiles/annotation/invalid_rdf3.xml @@ -1,10 +1,10 @@ -<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> -<rdf:Description rdf:about="#re836"> -<bqbiol:isVersionOf> -<rdf:Bag> -<rdf:li rdf:resource="urn"/> -<rdf:li rdf:resource="urn:miriam:pubmed:15639314"/> -</rdf:Bag> -</bqbiol:isVersionOf> -</rdf:Description> +<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> +<rdf:Description rdf:about="#re836"> +<bqbiol:isVersionOf> +<rdf:Bag> +<rdf:li rdf:resource="urn"/> +<rdf:li rdf:resource="urn:miriam:pubmed:15639314"/> +</rdf:Bag> +</bqbiol:isVersionOf> +</rdf:Description> </rdf:RDF> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/annotation/invalid_rdf4.xml b/converter-CellDesigner/testFiles/annotation/invalid_rdf4.xml index cbdc94e696..b94751fdf0 100644 --- a/converter-CellDesigner/testFiles/annotation/invalid_rdf4.xml +++ b/converter-CellDesigner/testFiles/annotation/invalid_rdf4.xml @@ -1,9 +1,9 @@ -<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> -<rdf:Description rdf:about="#re836"> -<bqbiol:unk> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:obo.chebi:CHEBI%3A28870"/> -</rdf:Bag> -</bqbiol:unk> -</rdf:Description> +<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> +<rdf:Description rdf:about="#re836"> +<bqbiol:unk> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:obo.chebi:CHEBI%3A28870"/> +</rdf:Bag> +</bqbiol:unk> +</rdf:Description> </rdf:RDF> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/antisense_rna.xml b/converter-CellDesigner/testFiles/invalid/antisense_rna.xml index a8bbcd098c..16ee1973b9 100644 --- a/converter-CellDesigner/testFiles/invalid/antisense_rna.xml +++ b/converter-CellDesigner/testFiles/invalid/antisense_rna.xml @@ -1,16 +1,16 @@ -<celldesigner:AntisenseRNA id="arn1" name="s1" type="ANTISENSE_RNA"> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body> -some notes -</body> -</html> -</celldesigner:notes> -<celldesigner:listOfRegions> -<celldesigner:region id="tr1" name="zzz" size="0.3" pos="0.29999999999999993" type="CodingRegion"/> -<unk/> -</celldesigner:listOfRegions> +<celldesigner:AntisenseRNA id="arn1" name="s1" type="ANTISENSE_RNA"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body> +some notes +</body> +</html> +</celldesigner:notes> +<celldesigner:listOfRegions> +<celldesigner:region id="tr1" name="zzz" size="0.3" pos="0.29999999999999993" type="CodingRegion"/> +<unk/> +</celldesigner:listOfRegions> </celldesigner:AntisenseRNA> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/antisense_rna2.xml b/converter-CellDesigner/testFiles/invalid/antisense_rna2.xml index 5bed846e3d..8911982737 100644 --- a/converter-CellDesigner/testFiles/invalid/antisense_rna2.xml +++ b/converter-CellDesigner/testFiles/invalid/antisense_rna2.xml @@ -1,16 +1,16 @@ -<celldesigner:AntisenseRNA id="arn1" name="s1" type="ANTISENSE_RNA"> -<unk/> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body> -some notes -</body> -</html> -</celldesigner:notes> -<celldesigner:listOfRegions> -<celldesigner:region id="tr1" name="zzz" size="0.3" pos="0.29999999999999993" type="CodingRegion"/> -</celldesigner:listOfRegions> +<celldesigner:AntisenseRNA id="arn1" name="s1" type="ANTISENSE_RNA"> +<unk/> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body> +some notes +</body> +</html> +</celldesigner:notes> +<celldesigner:listOfRegions> +<celldesigner:region id="tr1" name="zzz" size="0.3" pos="0.29999999999999993" type="CodingRegion"/> +</celldesigner:listOfRegions> </celldesigner:AntisenseRNA> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/antisense_rna3.xml b/converter-CellDesigner/testFiles/invalid/antisense_rna3.xml index 75a9bab434..6bf281a7fb 100644 --- a/converter-CellDesigner/testFiles/invalid/antisense_rna3.xml +++ b/converter-CellDesigner/testFiles/invalid/antisense_rna3.xml @@ -1,15 +1,15 @@ -<celldesigner:AntisenseRNA id="arn1" name="s1" type="ANTISENSE_RNA"> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body> -some notes -</body> -</html> -</celldesigner:notes> -<celldesigner:listOfRegions> -<celldesigner:region id="tr1" name="zzz" size="0.3" pos="0.29999999999999993" type="unkBlaType"/> -</celldesigner:listOfRegions> +<celldesigner:AntisenseRNA id="arn1" name="s1" type="ANTISENSE_RNA"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body> +some notes +</body> +</html> +</celldesigner:notes> +<celldesigner:listOfRegions> +<celldesigner:region id="tr1" name="zzz" size="0.3" pos="0.29999999999999993" type="unkBlaType"/> +</celldesigner:listOfRegions> </celldesigner:AntisenseRNA> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/antisense_rna4.xml b/converter-CellDesigner/testFiles/invalid/antisense_rna4.xml index 310a5b13d5..81c4083034 100644 --- a/converter-CellDesigner/testFiles/invalid/antisense_rna4.xml +++ b/converter-CellDesigner/testFiles/invalid/antisense_rna4.xml @@ -1,17 +1,17 @@ -<celldesigner:AntisenseRNA id="arn1" name="s1" type="ANTISENSE_RNA"> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body> -some notes -</body> -</html> -</celldesigner:notes> -<celldesigner:listOfRegions> -<celldesigner:region id="tr1" name="zzz" size="0.3" pos="0.29999999999999993" type="CodingRegion"> -<unk/> -</celldesigner:region> -</celldesigner:listOfRegions> +<celldesigner:AntisenseRNA id="arn1" name="s1" type="ANTISENSE_RNA"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body> +some notes +</body> +</html> +</celldesigner:notes> +<celldesigner:listOfRegions> +<celldesigner:region id="tr1" name="zzz" size="0.3" pos="0.29999999999999993" type="CodingRegion"> +<unk/> +</celldesigner:region> +</celldesigner:listOfRegions> </celldesigner:AntisenseRNA> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/antisense_rna_collection.xml b/converter-CellDesigner/testFiles/invalid/antisense_rna_collection.xml index fe47951f26..ad061bc48c 100644 --- a/converter-CellDesigner/testFiles/invalid/antisense_rna_collection.xml +++ b/converter-CellDesigner/testFiles/invalid/antisense_rna_collection.xml @@ -1,3 +1,3 @@ -<celldesigner:listOfAntisenseRNAs> -<unknoen/> +<celldesigner:listOfAntisenseRNAs> +<unknoen/> </celldesigner:listOfAntisenseRNAs> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/block_diagrams.xml b/converter-CellDesigner/testFiles/invalid/block_diagrams.xml index 8cbe9778ab..53f93e7b14 100644 --- a/converter-CellDesigner/testFiles/invalid/block_diagrams.xml +++ b/converter-CellDesigner/testFiles/invalid/block_diagrams.xml @@ -1,3 +1,3 @@ -<celldesigner:listOfBlockDiagrams> -<unk_block/> -</celldesigner:listOfBlockDiagrams> +<celldesigner:listOfBlockDiagrams> +<unk_block/> +</celldesigner:listOfBlockDiagrams> diff --git a/converter-CellDesigner/testFiles/invalid/compartment.xml b/converter-CellDesigner/testFiles/invalid/compartment.xml index da48b5c4e5..d132817999 100644 --- a/converter-CellDesigner/testFiles/invalid/compartment.xml +++ b/converter-CellDesigner/testFiles/invalid/compartment.xml @@ -1,4 +1,4 @@ -<compartment metaid="c1" id="c1" name="c1" size="1" units="volume" outside="default"> -<annotation_inv> -</annotation_inv> -</compartment> +<compartment metaid="c1" id="c1" name="c1" size="1" units="volume" outside="default"> +<annotation_inv> +</annotation_inv> +</compartment> diff --git a/converter-CellDesigner/testFiles/invalid/compartment2.xml b/converter-CellDesigner/testFiles/invalid/compartment2.xml index 81ee8645d5..b161a3d10c 100644 --- a/converter-CellDesigner/testFiles/invalid/compartment2.xml +++ b/converter-CellDesigner/testFiles/invalid/compartment2.xml @@ -1,8 +1,8 @@ -<compartment metaid="c1" id="c1" name="c1" size="1" units="volume" outside="default"> -<annotation> -<celldesigner:extension> -<celldesigner:name>c1</celldesigner:name> -</celldesigner:extension> -<ins_inv/> -</annotation> -</compartment> +<compartment metaid="c1" id="c1" name="c1" size="1" units="volume" outside="default"> +<annotation> +<celldesigner:extension> +<celldesigner:name>c1</celldesigner:name> +</celldesigner:extension> +<ins_inv/> +</annotation> +</compartment> diff --git a/converter-CellDesigner/testFiles/invalid/compartment3.xml b/converter-CellDesigner/testFiles/invalid/compartment3.xml index 8b5b409563..438e87b6bd 100644 --- a/converter-CellDesigner/testFiles/invalid/compartment3.xml +++ b/converter-CellDesigner/testFiles/invalid/compartment3.xml @@ -1,8 +1,8 @@ -<compartment metaid="c1" id="c1" name="c1" size="1" units="volume" outside="default"> -<annotation> -<celldesigner:extension> -<celldesigner:name>c1</celldesigner:name> -<ext_inv/> -</celldesigner:extension> -</annotation> -</compartment> +<compartment metaid="c1" id="c1" name="c1" size="1" units="volume" outside="default"> +<annotation> +<celldesigner:extension> +<celldesigner:name>c1</celldesigner:name> +<ext_inv/> +</celldesigner:extension> +</annotation> +</compartment> diff --git a/converter-CellDesigner/testFiles/invalid/compartment_alias.xml b/converter-CellDesigner/testFiles/invalid/compartment_alias.xml index e65eee095a..1d050e6d79 100644 --- a/converter-CellDesigner/testFiles/invalid/compartment_alias.xml +++ b/converter-CellDesigner/testFiles/invalid/compartment_alias.xml @@ -1,8 +1,8 @@ -<celldesigner:compartmentAlias id="ca1" compartment="c1"> -<celldesigner:class>UNKNOWN_TYPE_BLA</celldesigner:class> -<celldesigner:bounds x="139.0" y="55.0" w="522.0" h="178.0"/> -<celldesigner:namePoint x="392.5" y="196.5"/> -<celldesigner:doubleLine thickness="12.0" outerWidth="2.0" innerWidth="1.0"/> -<celldesigner:paint color="ffcccc00" scheme="Color"/> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> +<celldesigner:compartmentAlias id="ca1" compartment="c1"> +<celldesigner:class>UNKNOWN_TYPE_BLA</celldesigner:class> +<celldesigner:bounds x="139.0" y="55.0" w="522.0" h="178.0"/> +<celldesigner:namePoint x="392.5" y="196.5"/> +<celldesigner:doubleLine thickness="12.0" outerWidth="2.0" innerWidth="1.0"/> +<celldesigner:paint color="ffcccc00" scheme="Color"/> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> </celldesigner:compartmentAlias> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/compartment_alias2.xml b/converter-CellDesigner/testFiles/invalid/compartment_alias2.xml index 24ad80ce5f..ee09c1e2e0 100644 --- a/converter-CellDesigner/testFiles/invalid/compartment_alias2.xml +++ b/converter-CellDesigner/testFiles/invalid/compartment_alias2.xml @@ -1,9 +1,9 @@ -<celldesigner:compartmentAlias id="ca1" compartment="c1"> -<celldesigner:class>SQUARE</celldesigner:class> -<celldesigner:bounds x="139.0" y="55.0" w="522.0" h="178.0"/> -<celldesigner:namePoint x="392.5" y="196.5"/> -<celldesigner:doubleLine thickness="12.0" outerWidth="2.0" innerWidth="1.0"/> -<celldesigner:paint color="ffcccc00" scheme="Color"/> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -<celldesigner:point/> +<celldesigner:compartmentAlias id="ca1" compartment="c1"> +<celldesigner:class>SQUARE</celldesigner:class> +<celldesigner:bounds x="139.0" y="55.0" w="522.0" h="178.0"/> +<celldesigner:namePoint x="392.5" y="196.5"/> +<celldesigner:doubleLine thickness="12.0" outerWidth="2.0" innerWidth="1.0"/> +<celldesigner:paint color="ffcccc00" scheme="Color"/> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +<celldesigner:point/> </celldesigner:compartmentAlias> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/compartment_alias3.xml b/converter-CellDesigner/testFiles/invalid/compartment_alias3.xml index 3a9634e094..3d56061e24 100644 --- a/converter-CellDesigner/testFiles/invalid/compartment_alias3.xml +++ b/converter-CellDesigner/testFiles/invalid/compartment_alias3.xml @@ -1,9 +1,9 @@ -<celldesigner:compartmentAlias id="ca1" compartment="c1"> -<unk_tag/> -<celldesigner:class>SQUARE</celldesigner:class> -<celldesigner:bounds x="139.0" y="55.0" w="522.0" h="178.0"/> -<celldesigner:namePoint x="392.5" y="196.5"/> -<celldesigner:doubleLine thickness="12.0" outerWidth="2.0" innerWidth="1.0"/> -<celldesigner:paint color="ffcccc00" scheme="Color"/> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> +<celldesigner:compartmentAlias id="ca1" compartment="c1"> +<unk_tag/> +<celldesigner:class>SQUARE</celldesigner:class> +<celldesigner:bounds x="139.0" y="55.0" w="522.0" h="178.0"/> +<celldesigner:namePoint x="392.5" y="196.5"/> +<celldesigner:doubleLine thickness="12.0" outerWidth="2.0" innerWidth="1.0"/> +<celldesigner:paint color="ffcccc00" scheme="Color"/> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> </celldesigner:compartmentAlias> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/compartment_alias_collection.xml b/converter-CellDesigner/testFiles/invalid/compartment_alias_collection.xml index 9d475028ce..09ceb78c35 100644 --- a/converter-CellDesigner/testFiles/invalid/compartment_alias_collection.xml +++ b/converter-CellDesigner/testFiles/invalid/compartment_alias_collection.xml @@ -1,27 +1,27 @@ -<celldesigner:listOfCompartmentAliases> -<unk/> -<celldesigner:compartmentAlias id="ca1" compartment="c1"> -<celldesigner:class>SQUARE</celldesigner:class> -<celldesigner:bounds x="139.0" y="55.0" w="522.0" h="178.0"/> -<celldesigner:namePoint x="392.5" y="196.5"/> -<celldesigner:doubleLine thickness="12.0" outerWidth="2.0" innerWidth="1.0"/> -<celldesigner:paint color="ffcccc00" scheme="Color"/> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:compartmentAlias> -<celldesigner:compartmentAlias id="ca2" compartment="c2"> -<celldesigner:class>SQUARE</celldesigner:class> -<celldesigner:bounds x="707.0" y="187.0" w="118.0" h="73.0"/> -<celldesigner:namePoint x="758.5" y="223.5"/> -<celldesigner:doubleLine thickness="12.0" outerWidth="2.0" innerWidth="1.0"/> -<celldesigner:paint color="ffcccc00" scheme="Color"/> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:compartmentAlias> -<celldesigner:compartmentAlias id="ca3" compartment="c3"> -<celldesigner:class>OVAL</celldesigner:class> -<celldesigner:bounds x="185.0" y="143.0" w="86.0" h="50.0"/> -<celldesigner:namePoint x="220.5" y="156.11618483532334"/> -<celldesigner:doubleLine thickness="12.0" outerWidth="2.0" innerWidth="1.0"/> -<celldesigner:paint color="ffcccc00" scheme="Color"/> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:compartmentAlias> -</celldesigner:listOfCompartmentAliases> +<celldesigner:listOfCompartmentAliases> +<unk/> +<celldesigner:compartmentAlias id="ca1" compartment="c1"> +<celldesigner:class>SQUARE</celldesigner:class> +<celldesigner:bounds x="139.0" y="55.0" w="522.0" h="178.0"/> +<celldesigner:namePoint x="392.5" y="196.5"/> +<celldesigner:doubleLine thickness="12.0" outerWidth="2.0" innerWidth="1.0"/> +<celldesigner:paint color="ffcccc00" scheme="Color"/> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:compartmentAlias> +<celldesigner:compartmentAlias id="ca2" compartment="c2"> +<celldesigner:class>SQUARE</celldesigner:class> +<celldesigner:bounds x="707.0" y="187.0" w="118.0" h="73.0"/> +<celldesigner:namePoint x="758.5" y="223.5"/> +<celldesigner:doubleLine thickness="12.0" outerWidth="2.0" innerWidth="1.0"/> +<celldesigner:paint color="ffcccc00" scheme="Color"/> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:compartmentAlias> +<celldesigner:compartmentAlias id="ca3" compartment="c3"> +<celldesigner:class>OVAL</celldesigner:class> +<celldesigner:bounds x="185.0" y="143.0" w="86.0" h="50.0"/> +<celldesigner:namePoint x="220.5" y="156.11618483532334"/> +<celldesigner:doubleLine thickness="12.0" outerWidth="2.0" innerWidth="1.0"/> +<celldesigner:paint color="ffcccc00" scheme="Color"/> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:compartmentAlias> +</celldesigner:listOfCompartmentAliases> diff --git a/converter-CellDesigner/testFiles/invalid/complex_alias_collection.xml b/converter-CellDesigner/testFiles/invalid/complex_alias_collection.xml index 9ee6cee1ef..4fbc36c284 100644 --- a/converter-CellDesigner/testFiles/invalid/complex_alias_collection.xml +++ b/converter-CellDesigner/testFiles/invalid/complex_alias_collection.xml @@ -1,66 +1,66 @@ -<celldesigner:listOfComplexSpeciesAliases> -<unk/> -<celldesigner:complexSpeciesAlias id="csa1" species="s2597"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="744.0" y="0.0" w="100.0" h="120.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:backupSize w="0.0" h="0.0"/> -<celldesigner:backupView state="none"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="100.0" height="120.0"/> -<celldesigner:singleLine width="2.0"/> -<celldesigner:paint color="fff7f7f7" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="2.0"/> -<celldesigner:paint color="fff7f7f7" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:complexSpeciesAlias> -<celldesigner:complexSpeciesAlias id="csa2" species="s2598"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="863.0" y="35.0" w="100.0" h="120.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:backupSize w="0.0" h="0.0"/> -<celldesigner:backupView state="none"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="100.0" height="120.0"/> -<celldesigner:singleLine width="2.0"/> -<celldesigner:paint color="fff7f7f7" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="2.0"/> -<celldesigner:paint color="fff7f7f7" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:complexSpeciesAlias> -<celldesigner:complexSpeciesAlias id="csa3" species="s2599" complexSpeciesAlias="csa1"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="767.0" y="15.0" w="61.0" h="87.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:backupSize w="0.0" h="0.0"/> -<celldesigner:backupView state="none"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="23.0" y="15.0"/> -<celldesigner:boxSize width="61.0" height="87.0"/> -<celldesigner:singleLine width="2.0"/> -<celldesigner:paint color="fff7f7f7" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="2.0"/> -<celldesigner:paint color="fff7f7f7" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:complexSpeciesAlias> -</celldesigner:listOfComplexSpeciesAliases> +<celldesigner:listOfComplexSpeciesAliases> +<unk/> +<celldesigner:complexSpeciesAlias id="csa1" species="s2597"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="744.0" y="0.0" w="100.0" h="120.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:backupSize w="0.0" h="0.0"/> +<celldesigner:backupView state="none"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="100.0" height="120.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:complexSpeciesAlias> +<celldesigner:complexSpeciesAlias id="csa2" species="s2598"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="863.0" y="35.0" w="100.0" h="120.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:backupSize w="0.0" h="0.0"/> +<celldesigner:backupView state="none"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="100.0" height="120.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:complexSpeciesAlias> +<celldesigner:complexSpeciesAlias id="csa3" species="s2599" complexSpeciesAlias="csa1"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="767.0" y="15.0" w="61.0" h="87.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:backupSize w="0.0" h="0.0"/> +<celldesigner:backupView state="none"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="23.0" y="15.0"/> +<celldesigner:boxSize width="61.0" height="87.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:complexSpeciesAlias> +</celldesigner:listOfComplexSpeciesAliases> diff --git a/converter-CellDesigner/testFiles/invalid/gene_collection.xml b/converter-CellDesigner/testFiles/invalid/gene_collection.xml index 4633a9e50e..bc790db2e5 100644 --- a/converter-CellDesigner/testFiles/invalid/gene_collection.xml +++ b/converter-CellDesigner/testFiles/invalid/gene_collection.xml @@ -1,3 +1,3 @@ -<celldesigner:listOfGenes> -<unkgenenode/> +<celldesigner:listOfGenes> +<unkgenenode/> </celldesigner:listOfGenes> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/group_collection.xml b/converter-CellDesigner/testFiles/invalid/group_collection.xml index e9107f1b2f..27ec8b138a 100644 --- a/converter-CellDesigner/testFiles/invalid/group_collection.xml +++ b/converter-CellDesigner/testFiles/invalid/group_collection.xml @@ -1,4 +1,4 @@ -<celldesigner:listOfGroups> -<invalid/> -<celldesigner:group id="g1" members="sa1,sa2,sa3"/> -</celldesigner:listOfGroups> +<celldesigner:listOfGroups> +<invalid/> +<celldesigner:group id="g1" members="sa1,sa2,sa3"/> +</celldesigner:listOfGroups> diff --git a/converter-CellDesigner/testFiles/invalid/group_collection2.xml b/converter-CellDesigner/testFiles/invalid/group_collection2.xml index 38bc03af63..85276ccffb 100644 --- a/converter-CellDesigner/testFiles/invalid/group_collection2.xml +++ b/converter-CellDesigner/testFiles/invalid/group_collection2.xml @@ -1,3 +1,3 @@ -<celldesigner:listOfGroups> -<celldesigner:group id="g1" members="sa1,sa2,sa3"/> -</celldesigner:listOfGroups> +<celldesigner:listOfGroups> +<celldesigner:group id="g1" members="sa1,sa2,sa3"/> +</celldesigner:listOfGroups> diff --git a/converter-CellDesigner/testFiles/invalid/group_collection3.xml b/converter-CellDesigner/testFiles/invalid/group_collection3.xml index 26d55307dd..ccbce7c5e7 100644 --- a/converter-CellDesigner/testFiles/invalid/group_collection3.xml +++ b/converter-CellDesigner/testFiles/invalid/group_collection3.xml @@ -1,5 +1,5 @@ -<celldesigner:listOfGroups> -<celldesigner:group id="g1" members="sa1"> -<x/> -</celldesigner:group> -</celldesigner:listOfGroups> +<celldesigner:listOfGroups> +<celldesigner:group id="g1" members="sa1"> +<x/> +</celldesigner:group> +</celldesigner:listOfGroups> diff --git a/converter-CellDesigner/testFiles/invalid/included_species_collection.xml b/converter-CellDesigner/testFiles/invalid/included_species_collection.xml index d070c64ad5..341460a27e 100644 --- a/converter-CellDesigner/testFiles/invalid/included_species_collection.xml +++ b/converter-CellDesigner/testFiles/invalid/included_species_collection.xml @@ -1,53 +1,53 @@ -<celldesigner:listOfIncludedSpecies> -<celldesigner:species name="s10"> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body/> -</html> -</celldesigner:notes> -<celldesigner:annotation> -<celldesigner:complexSpecies>s9</celldesigner:complexSpecies> -<celldesigner:speciesIdentity> -<celldesigner:class>COMPLEX</celldesigner:class> -<celldesigner:name>s10</celldesigner:name> -</celldesigner:speciesIdentity> -</celldesigner:annotation> -</celldesigner:species> -<celldesigner:species id="s11" name="s11"> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body/> -</html> -</celldesigner:notes> -<celldesigner:annotation> -<celldesigner:complexSpecies>s9</celldesigner:complexSpecies> -<celldesigner:speciesIdentity> -<celldesigner:class>PROTEIN</celldesigner:class> -<celldesigner:proteinReference>pr3</celldesigner:proteinReference> -</celldesigner:speciesIdentity> -</celldesigner:annotation> -</celldesigner:species> -<celldesigner:species id="s12" name="s12"> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body/> -</html> -</celldesigner:notes> -<celldesigner:annotation> -<celldesigner:complexSpecies>s10</celldesigner:complexSpecies> -<celldesigner:speciesIdentity> -<celldesigner:class>PROTEIN</celldesigner:class> -<celldesigner:proteinReference>pr4</celldesigner:proteinReference> -</celldesigner:speciesIdentity> -</celldesigner:annotation> -</celldesigner:species> +<celldesigner:listOfIncludedSpecies> +<celldesigner:species name="s10"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body/> +</html> +</celldesigner:notes> +<celldesigner:annotation> +<celldesigner:complexSpecies>s9</celldesigner:complexSpecies> +<celldesigner:speciesIdentity> +<celldesigner:class>COMPLEX</celldesigner:class> +<celldesigner:name>s10</celldesigner:name> +</celldesigner:speciesIdentity> +</celldesigner:annotation> +</celldesigner:species> +<celldesigner:species id="s11" name="s11"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body/> +</html> +</celldesigner:notes> +<celldesigner:annotation> +<celldesigner:complexSpecies>s9</celldesigner:complexSpecies> +<celldesigner:speciesIdentity> +<celldesigner:class>PROTEIN</celldesigner:class> +<celldesigner:proteinReference>pr3</celldesigner:proteinReference> +</celldesigner:speciesIdentity> +</celldesigner:annotation> +</celldesigner:species> +<celldesigner:species id="s12" name="s12"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body/> +</html> +</celldesigner:notes> +<celldesigner:annotation> +<celldesigner:complexSpecies>s10</celldesigner:complexSpecies> +<celldesigner:speciesIdentity> +<celldesigner:class>PROTEIN</celldesigner:class> +<celldesigner:proteinReference>pr4</celldesigner:proteinReference> +</celldesigner:speciesIdentity> +</celldesigner:annotation> +</celldesigner:species> </celldesigner:listOfIncludedSpecies> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/included_species_collection2.xml b/converter-CellDesigner/testFiles/invalid/included_species_collection2.xml index 046af22cb2..8c53aac2aa 100644 --- a/converter-CellDesigner/testFiles/invalid/included_species_collection2.xml +++ b/converter-CellDesigner/testFiles/invalid/included_species_collection2.xml @@ -1,46 +1,46 @@ -<celldesigner:listOfIncludedSpecies> -<celldesigner:species id="s10" name="s10"> -<unk/> -<celldesigner:annotation> -<celldesigner:complexSpecies>s9</celldesigner:complexSpecies> -<celldesigner:speciesIdentity> -<celldesigner:class>COMPLEX</celldesigner:class> -<celldesigner:name>s10</celldesigner:name> -</celldesigner:speciesIdentity> -</celldesigner:annotation> -</celldesigner:species> -<celldesigner:species id="s11" name="s11"> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body/> -</html> -</celldesigner:notes> -<celldesigner:annotation> -<celldesigner:complexSpecies>s9</celldesigner:complexSpecies> -<celldesigner:speciesIdentity> -<celldesigner:class>PROTEIN</celldesigner:class> -<celldesigner:proteinReference>pr3</celldesigner:proteinReference> -</celldesigner:speciesIdentity> -</celldesigner:annotation> -</celldesigner:species> -<celldesigner:species id="s12" name="s12"> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body/> -</html> -</celldesigner:notes> -<celldesigner:annotation> -<celldesigner:complexSpecies>s10</celldesigner:complexSpecies> -<celldesigner:speciesIdentity> -<celldesigner:class>PROTEIN</celldesigner:class> -<celldesigner:proteinReference>pr4</celldesigner:proteinReference> -</celldesigner:speciesIdentity> -</celldesigner:annotation> -</celldesigner:species> +<celldesigner:listOfIncludedSpecies> +<celldesigner:species id="s10" name="s10"> +<unk/> +<celldesigner:annotation> +<celldesigner:complexSpecies>s9</celldesigner:complexSpecies> +<celldesigner:speciesIdentity> +<celldesigner:class>COMPLEX</celldesigner:class> +<celldesigner:name>s10</celldesigner:name> +</celldesigner:speciesIdentity> +</celldesigner:annotation> +</celldesigner:species> +<celldesigner:species id="s11" name="s11"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body/> +</html> +</celldesigner:notes> +<celldesigner:annotation> +<celldesigner:complexSpecies>s9</celldesigner:complexSpecies> +<celldesigner:speciesIdentity> +<celldesigner:class>PROTEIN</celldesigner:class> +<celldesigner:proteinReference>pr3</celldesigner:proteinReference> +</celldesigner:speciesIdentity> +</celldesigner:annotation> +</celldesigner:species> +<celldesigner:species id="s12" name="s12"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body/> +</html> +</celldesigner:notes> +<celldesigner:annotation> +<celldesigner:complexSpecies>s10</celldesigner:complexSpecies> +<celldesigner:speciesIdentity> +<celldesigner:class>PROTEIN</celldesigner:class> +<celldesigner:proteinReference>pr4</celldesigner:proteinReference> +</celldesigner:speciesIdentity> +</celldesigner:annotation> +</celldesigner:species> </celldesigner:listOfIncludedSpecies> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/included_species_collection3.xml b/converter-CellDesigner/testFiles/invalid/included_species_collection3.xml index 05595cc967..02212bf749 100644 --- a/converter-CellDesigner/testFiles/invalid/included_species_collection3.xml +++ b/converter-CellDesigner/testFiles/invalid/included_species_collection3.xml @@ -1,46 +1,46 @@ -<celldesigner:listOfIncludedSpecies> -<celldesigner:species id="s10" name="s10"> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body/> -</html> -</celldesigner:notes> -</celldesigner:species> -<celldesigner:species id="s11" name="s11"> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body/> -</html> -</celldesigner:notes> -<celldesigner:annotation> -<celldesigner:complexSpecies>s9</celldesigner:complexSpecies> -<celldesigner:speciesIdentity> -<celldesigner:class>PROTEIN</celldesigner:class> -<celldesigner:proteinReference>pr3</celldesigner:proteinReference> -</celldesigner:speciesIdentity> -</celldesigner:annotation> -</celldesigner:species> -<celldesigner:species id="s12" name="s12"> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body/> -</html> -</celldesigner:notes> -<celldesigner:annotation> -<celldesigner:complexSpecies>s10</celldesigner:complexSpecies> -<celldesigner:speciesIdentity> -<celldesigner:class>PROTEIN</celldesigner:class> -<celldesigner:proteinReference>pr4</celldesigner:proteinReference> -</celldesigner:speciesIdentity> -</celldesigner:annotation> -</celldesigner:species> +<celldesigner:listOfIncludedSpecies> +<celldesigner:species id="s10" name="s10"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body/> +</html> +</celldesigner:notes> +</celldesigner:species> +<celldesigner:species id="s11" name="s11"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body/> +</html> +</celldesigner:notes> +<celldesigner:annotation> +<celldesigner:complexSpecies>s9</celldesigner:complexSpecies> +<celldesigner:speciesIdentity> +<celldesigner:class>PROTEIN</celldesigner:class> +<celldesigner:proteinReference>pr3</celldesigner:proteinReference> +</celldesigner:speciesIdentity> +</celldesigner:annotation> +</celldesigner:species> +<celldesigner:species id="s12" name="s12"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body/> +</html> +</celldesigner:notes> +<celldesigner:annotation> +<celldesigner:complexSpecies>s10</celldesigner:complexSpecies> +<celldesigner:speciesIdentity> +<celldesigner:class>PROTEIN</celldesigner:class> +<celldesigner:proteinReference>pr4</celldesigner:proteinReference> +</celldesigner:speciesIdentity> +</celldesigner:annotation> +</celldesigner:species> </celldesigner:listOfIncludedSpecies> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/included_species_collection4.xml b/converter-CellDesigner/testFiles/invalid/included_species_collection4.xml index d84317a77e..e737a6a6d6 100644 --- a/converter-CellDesigner/testFiles/invalid/included_species_collection4.xml +++ b/converter-CellDesigner/testFiles/invalid/included_species_collection4.xml @@ -1,15 +1,15 @@ -<celldesigner:listOfIncludedSpecies> -<celldesigner:species id="s10" name="s10"> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body/> -</html> -</celldesigner:notes> -<celldesigner:annotation> -<celldesigner:complexSpecies>s9</celldesigner:complexSpecies> -</celldesigner:annotation> -</celldesigner:species> +<celldesigner:listOfIncludedSpecies> +<celldesigner:species id="s10" name="s10"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body/> +</html> +</celldesigner:notes> +<celldesigner:annotation> +<celldesigner:complexSpecies>s9</celldesigner:complexSpecies> +</celldesigner:annotation> +</celldesigner:species> </celldesigner:listOfIncludedSpecies> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/included_species_collection5.xml b/converter-CellDesigner/testFiles/invalid/included_species_collection5.xml index 888aed4ed2..8a7a04567a 100644 --- a/converter-CellDesigner/testFiles/invalid/included_species_collection5.xml +++ b/converter-CellDesigner/testFiles/invalid/included_species_collection5.xml @@ -1,3 +1,3 @@ -<celldesigner:listOfIncludedSpecies> -<unkTag/> +<celldesigner:listOfIncludedSpecies> +<unkTag/> </celldesigner:listOfIncludedSpecies> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/included_species_collection6.xml b/converter-CellDesigner/testFiles/invalid/included_species_collection6.xml index f40ba39830..157626af26 100644 --- a/converter-CellDesigner/testFiles/invalid/included_species_collection6.xml +++ b/converter-CellDesigner/testFiles/invalid/included_species_collection6.xml @@ -1,14 +1,14 @@ -<celldesigner:listOfIncludedSpecies> -<celldesigner:species id="s10" name="s10"> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body/> -</html> -</celldesigner:notes> -<celldesigner:annotation> -</celldesigner:annotation> -</celldesigner:species> +<celldesigner:listOfIncludedSpecies> +<celldesigner:species id="s10" name="s10"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body/> +</html> +</celldesigner:notes> +<celldesigner:annotation> +</celldesigner:annotation> +</celldesigner:species> </celldesigner:listOfIncludedSpecies> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/invalid_complex_alias.xml b/converter-CellDesigner/testFiles/invalid/invalid_complex_alias.xml index c14c5db903..ea5cb8370e 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_complex_alias.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_complex_alias.xml @@ -1,21 +1,21 @@ -<celldesigner:complexSpeciesAlias id="csa2" species="s3"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="202.0" y="12.0" w="151.0" h="221.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:backupSize w="0.0" h="0.0"/> -<celldesigner:backupView state="none"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="151.0" height="221.0"/> -<celldesigner:singleLine width="2.0"/> -<celldesigner:paint color="fff7f7f7" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="2.0"/> -<celldesigner:paint color="fff7f7f7" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:complexSpeciesAlias> +<celldesigner:complexSpeciesAlias id="csa2" species="s3"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="202.0" y="12.0" w="151.0" h="221.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:backupSize w="0.0" h="0.0"/> +<celldesigner:backupView state="none"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="151.0" height="221.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:complexSpeciesAlias> diff --git a/converter-CellDesigner/testFiles/invalid/invalid_complex_alias2.xml b/converter-CellDesigner/testFiles/invalid/invalid_complex_alias2.xml index a3464b72e9..da8f004bb3 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_complex_alias2.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_complex_alias2.xml @@ -1,3 +1,3 @@ -<celldesigner:complexSpeciesAlias id="csa2" species="s3"> -<celldesigner:bla>inactive</celldesigner:bla> -</celldesigner:complexSpeciesAlias> +<celldesigner:complexSpeciesAlias id="csa2" species="s3"> +<celldesigner:bla>inactive</celldesigner:bla> +</celldesigner:complexSpeciesAlias> diff --git a/converter-CellDesigner/testFiles/invalid/invalid_complex_alias3.xml b/converter-CellDesigner/testFiles/invalid/invalid_complex_alias3.xml index 04c8b010b2..6f14d52022 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_complex_alias3.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_complex_alias3.xml @@ -1,21 +1,21 @@ -<celldesigner:complexSpeciesAlias id="csa2" species="s3"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="202.0" y="12.0" w="151.0" h="221.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="unusual"/> -<celldesigner:backupSize w="0.0" h="0.0"/> -<celldesigner:backupView state="none"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="151.0" height="221.0"/> -<celldesigner:singleLine width="2.0"/> -<celldesigner:paint color="fff7f7f7" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="2.0"/> -<celldesigner:paint color="fff7f7f7" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:complexSpeciesAlias> +<celldesigner:complexSpeciesAlias id="csa2" species="s3"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="202.0" y="12.0" w="151.0" h="221.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="unusual"/> +<celldesigner:backupSize w="0.0" h="0.0"/> +<celldesigner:backupView state="none"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="151.0" height="221.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:complexSpeciesAlias> diff --git a/converter-CellDesigner/testFiles/invalid/invalid_complex_alias4.xml b/converter-CellDesigner/testFiles/invalid/invalid_complex_alias4.xml index 8350cc3625..721599b232 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_complex_alias4.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_complex_alias4.xml @@ -1,21 +1,21 @@ -<celldesigner:complexSpeciesAlias id="csa2" species="s3"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="202.0" y="12.0" w="151.0" h="221.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:backupSize w="0.0" h="0.0"/> -<celldesigner:backupView state="none"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="151.0" height="221.0"/> -<celldesigner:singleLine width="2.0"/> -<celldesigner:paint color="fff7f7f7" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="2.0"/> -<celldesigner:paint color="fff7f7f7" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="unkown state" angle="-1.5707963267948966"/> -</celldesigner:complexSpeciesAlias> +<celldesigner:complexSpeciesAlias id="csa2" species="s3"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="202.0" y="12.0" w="151.0" h="221.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:backupSize w="0.0" h="0.0"/> +<celldesigner:backupView state="none"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="151.0" height="221.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="unkown state" angle="-1.5707963267948966"/> +</celldesigner:complexSpeciesAlias> diff --git a/converter-CellDesigner/testFiles/invalid/invalid_complex_alias5.xml b/converter-CellDesigner/testFiles/invalid/invalid_complex_alias5.xml index 292bba6e3d..8606089f47 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_complex_alias5.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_complex_alias5.xml @@ -1,21 +1,21 @@ -<celldesigner:complexSpeciesAlias id="csa2" species="s3" compartmentAlias="ca"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="202.0" y="12.0" w="151.0" h="221.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:backupSize w="0.0" h="0.0"/> -<celldesigner:backupView state="none"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="151.0" height="221.0"/> -<celldesigner:singleLine width="2.0"/> -<celldesigner:paint color="fff7f7f7" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="2.0"/> -<celldesigner:paint color="fff7f7f7" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:complexSpeciesAlias> +<celldesigner:complexSpeciesAlias id="csa2" species="s3" compartmentAlias="ca"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="202.0" y="12.0" w="151.0" h="221.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:backupSize w="0.0" h="0.0"/> +<celldesigner:backupView state="none"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="151.0" height="221.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:complexSpeciesAlias> diff --git a/converter-CellDesigner/testFiles/invalid/invalid_gene_1.xml b/converter-CellDesigner/testFiles/invalid/invalid_gene_1.xml index 0bb0451dde..3a68590eaf 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_gene_1.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_gene_1.xml @@ -1,3 +1,3 @@ -<celldesigner:gene id="gn3" name="BCL6" type="GENE"> -<celldesigner:bla/> +<celldesigner:gene id="gn3" name="BCL6" type="GENE"> +<celldesigner:bla/> </celldesigner:gene> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/invalid_gene_2.xml b/converter-CellDesigner/testFiles/invalid/invalid_gene_2.xml index 00244cc2b8..61ac67a16d 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_gene_2.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_gene_2.xml @@ -1,6 +1,6 @@ -<celldesigner:gene id="gn3" name="BCL6" type="GENE"> -<celldesigner:listOfRegions> -<html xmlns="http://www.w3.org/1999/xhtml"> -</html> -</celldesigner:listOfRegions> +<celldesigner:gene id="gn3" name="BCL6" type="GENE"> +<celldesigner:listOfRegions> +<html xmlns="http://www.w3.org/1999/xhtml"> +</html> +</celldesigner:listOfRegions> </celldesigner:gene> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/invalid_modification_residue.xml b/converter-CellDesigner/testFiles/invalid/invalid_modification_residue.xml index b32104cee7..84fb68e6d0 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_modification_residue.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_modification_residue.xml @@ -1,3 +1,3 @@ -<celldesigner:modificationResidue angle="3.141592653589793" name="S176 bla bla" id="rs1" side="none"> -<bla/> -</celldesigner:modificationResidue> +<celldesigner:modificationResidue angle="3.141592653589793" name="S176 bla bla" id="rs1" side="none"> +<bla/> +</celldesigner:modificationResidue> diff --git a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein.xml b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein.xml index 586e73748d..e39cee0ea7 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein.xml @@ -1,2 +1,2 @@ -<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> +<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> </species> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein10.xml b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein10.xml index 252648ee0b..786bd74c6d 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein10.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein10.xml @@ -1,11 +1,11 @@ -<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> -<annotation> -<celldesigner:extension> -<celldesigner:speciesIdentity> -<celldesigner:class>GENE</celldesigner:class> -<celldesigner:proteinReference>pr1116</celldesigner:proteinReference> -</celldesigner:speciesIdentity> -<celldesigner:positionToCompartment>unkPos</celldesigner:positionToCompartment> -</celldesigner:extension> -</annotation> +<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> +<annotation> +<celldesigner:extension> +<celldesigner:speciesIdentity> +<celldesigner:class>GENE</celldesigner:class> +<celldesigner:proteinReference>pr1116</celldesigner:proteinReference> +</celldesigner:speciesIdentity> +<celldesigner:positionToCompartment>unkPos</celldesigner:positionToCompartment> +</celldesigner:extension> +</annotation> </species> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein11.xml b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein11.xml index b40e452964..12881f9195 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein11.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein11.xml @@ -1,11 +1,11 @@ -<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> -<annotation> -<celldesigner:extension> -<celldesigner:speciesIdentity> -<celldesigner:class>PROTEIN</celldesigner:class> -<celldesigner:geneReference>pr1116</celldesigner:geneReference> -</celldesigner:speciesIdentity> -<celldesigner:positionToCompartment>unkPos</celldesigner:positionToCompartment> -</celldesigner:extension> -</annotation> +<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> +<annotation> +<celldesigner:extension> +<celldesigner:speciesIdentity> +<celldesigner:class>PROTEIN</celldesigner:class> +<celldesigner:geneReference>pr1116</celldesigner:geneReference> +</celldesigner:speciesIdentity> +<celldesigner:positionToCompartment>unkPos</celldesigner:positionToCompartment> +</celldesigner:extension> +</annotation> </species> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein12.xml b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein12.xml index b4c7076289..7ee1cdad8a 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein12.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein12.xml @@ -1,11 +1,11 @@ -<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> -<annotation> -<celldesigner:extension> -<celldesigner:speciesIdentity> -<celldesigner:class>GENE</celldesigner:class> -<celldesigner:rnaReference>pr1116</celldesigner:rnaReference> -</celldesigner:speciesIdentity> -<celldesigner:positionToCompartment>unkPos</celldesigner:positionToCompartment> -</celldesigner:extension> -</annotation> +<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> +<annotation> +<celldesigner:extension> +<celldesigner:speciesIdentity> +<celldesigner:class>GENE</celldesigner:class> +<celldesigner:rnaReference>pr1116</celldesigner:rnaReference> +</celldesigner:speciesIdentity> +<celldesigner:positionToCompartment>unkPos</celldesigner:positionToCompartment> +</celldesigner:extension> +</annotation> </species> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein13.xml b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein13.xml index 8da810b0fc..0fecf616ae 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein13.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein13.xml @@ -1,12 +1,12 @@ -<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> -<annotation> -<celldesigner:extension> -<celldesigner:speciesIdentity> -<celldesigner:class>GENE</celldesigner:class> -<celldesigner:hypothetical>true</celldesigner:hypothetical> -<celldesigner:antisensernaReference>pr1116</celldesigner:antisensernaReference> -</celldesigner:speciesIdentity> -<celldesigner:positionToCompartment>unkPos</celldesigner:positionToCompartment> -</celldesigner:extension> -</annotation> +<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> +<annotation> +<celldesigner:extension> +<celldesigner:speciesIdentity> +<celldesigner:class>GENE</celldesigner:class> +<celldesigner:hypothetical>true</celldesigner:hypothetical> +<celldesigner:antisensernaReference>pr1116</celldesigner:antisensernaReference> +</celldesigner:speciesIdentity> +<celldesigner:positionToCompartment>unkPos</celldesigner:positionToCompartment> +</celldesigner:extension> +</annotation> </species> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein14.xml b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein14.xml index 21ba7ba1aa..3239790cd5 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein14.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein14.xml @@ -1,13 +1,13 @@ -<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> -<annotation> -<celldesigner:extension> -<celldesigner:speciesIdentity> -<celldesigner:class>GENE</celldesigner:class> -<uknNode>GENE</uknNode> -<celldesigner:hypothetical>true</celldesigner:hypothetical> -<celldesigner:antisensernaReference>pr1116</celldesigner:antisensernaReference> -</celldesigner:speciesIdentity> -<celldesigner:positionToCompartment>unkPos</celldesigner:positionToCompartment> -</celldesigner:extension> -</annotation> +<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> +<annotation> +<celldesigner:extension> +<celldesigner:speciesIdentity> +<celldesigner:class>GENE</celldesigner:class> +<uknNode>GENE</uknNode> +<celldesigner:hypothetical>true</celldesigner:hypothetical> +<celldesigner:antisensernaReference>pr1116</celldesigner:antisensernaReference> +</celldesigner:speciesIdentity> +<celldesigner:positionToCompartment>unkPos</celldesigner:positionToCompartment> +</celldesigner:extension> +</annotation> </species> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein2.xml b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein2.xml index c2cf173e62..f8b124466d 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein2.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein2.xml @@ -1,3 +1,3 @@ -<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> -<bla/> +<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> +<bla/> </species> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein3.xml b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein3.xml index 59b9da4168..effc0711a6 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein3.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein3.xml @@ -1,5 +1,5 @@ -<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> -<annotation> -<unk_bla/> -</annotation> +<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> +<annotation> +<unk_bla/> +</annotation> </species> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein4.xml b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein4.xml index 4c00c684f8..a18cf28fd9 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein4.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein4.xml @@ -1,4 +1,4 @@ -<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> -<annotation> -</annotation> +<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> +<annotation> +</annotation> </species> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein5.xml b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein5.xml index 833df09379..f991e46f1c 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein5.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein5.xml @@ -1,7 +1,7 @@ -<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> -<annotation> -<celldesigner:extension> -<ann_unk/> -</celldesigner:extension> -</annotation> +<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> +<annotation> +<celldesigner:extension> +<ann_unk/> +</celldesigner:extension> +</annotation> </species> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein6.xml b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein6.xml index 9910d3a610..9d731baa24 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein6.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein6.xml @@ -1,6 +1,6 @@ -<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> -<annotation> -<celldesigner:extension> -</celldesigner:extension> -</annotation> +<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> +<annotation> +<celldesigner:extension> +</celldesigner:extension> +</annotation> </species> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein7.xml b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein7.xml index 1ff2733782..a2acae126e 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein7.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein7.xml @@ -1,11 +1,11 @@ -<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> -<annotation> -<celldesigner:extension> -<celldesigner:speciesIdentity> -<celldesigner:class>PROTEIN</celldesigner:class> -<celldesigner:proteinReference>pr1116</celldesigner:proteinReference> -</celldesigner:speciesIdentity> -<celldesigner:positionToCompartment>unkPos</celldesigner:positionToCompartment> -</celldesigner:extension> -</annotation> +<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> +<annotation> +<celldesigner:extension> +<celldesigner:speciesIdentity> +<celldesigner:class>PROTEIN</celldesigner:class> +<celldesigner:proteinReference>pr1116</celldesigner:proteinReference> +</celldesigner:speciesIdentity> +<celldesigner:positionToCompartment>unkPos</celldesigner:positionToCompartment> +</celldesigner:extension> +</annotation> </species> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein8.xml b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein8.xml index 132c8ff439..d42a079021 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein8.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein8.xml @@ -1,10 +1,10 @@ -<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> -<annotation> -<celldesigner:extension> -<celldesigner:speciesIdentity> -<celldesigner:proteinReference>pr1116</celldesigner:proteinReference> -</celldesigner:speciesIdentity> -<celldesigner:positionToCompartment>unkPos</celldesigner:positionToCompartment> -</celldesigner:extension> -</annotation> +<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> +<annotation> +<celldesigner:extension> +<celldesigner:speciesIdentity> +<celldesigner:proteinReference>pr1116</celldesigner:proteinReference> +</celldesigner:speciesIdentity> +<celldesigner:positionToCompartment>unkPos</celldesigner:positionToCompartment> +</celldesigner:extension> +</annotation> </species> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein9.xml b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein9.xml index fa5e0be439..0efef2fb1c 100644 --- a/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein9.xml +++ b/converter-CellDesigner/testFiles/invalid/invalid_sbml_protein9.xml @@ -1,11 +1,11 @@ -<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> -<annotation> -<celldesigner:extension> -<celldesigner:speciesIdentity> -<celldesigner:class>unknown_protein_class</celldesigner:class> -<celldesigner:proteinReference>pr1116</celldesigner:proteinReference> -</celldesigner:speciesIdentity> -<celldesigner:positionToCompartment>unkPos</celldesigner:positionToCompartment> -</celldesigner:extension> -</annotation> +<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> +<annotation> +<celldesigner:extension> +<celldesigner:speciesIdentity> +<celldesigner:class>unknown_protein_class</celldesigner:class> +<celldesigner:proteinReference>pr1116</celldesigner:proteinReference> +</celldesigner:speciesIdentity> +<celldesigner:positionToCompartment>unkPos</celldesigner:positionToCompartment> +</celldesigner:extension> +</annotation> </species> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/layer.xml b/converter-CellDesigner/testFiles/invalid/layer.xml index 8c6691cb42..d01e773294 100644 --- a/converter-CellDesigner/testFiles/invalid/layer.xml +++ b/converter-CellDesigner/testFiles/invalid/layer.xml @@ -1,35 +1,35 @@ -<celldesigner:layer id="1" name="Layer0001" locked="false" visible="true"> -<celldesigner:listOfTexts> -<celldesigner:unkLayerSpeciesAlias2 /> -<celldesigner:layerSpeciesAlias x="0.0" y="0.0"> -<celldesigner:layerNotes> -text node -</celldesigner:layerNotes> -<celldesigner:bounds x="55.0" y="37.0" w="152.0" h="105.0"/> -<celldesigner:paint color="ff000000"/> -<celldesigner:font size="11"/> -</celldesigner:layerSpeciesAlias> -</celldesigner:listOfTexts> -<celldesigner:listOfSquares> -<celldesigner:layerCompartmentAlias type="Oval"> -<celldesigner:bounds x="268.0" y="34.0" w="211.0" h="97.0"/> -<celldesigner:paint color="ff000000" scheme="Gradation"/> -<celldesigner:ispaint inner="false"/> -</celldesigner:layerCompartmentAlias> -<celldesigner:layerCompartmentAlias type="Square"> -<celldesigner:bounds x="271.0" y="169.0" w="227.0" h="95.0"/> -<celldesigner:paint color="ff000000" scheme="Gradation"/> -<celldesigner:ispaint inner="false"/> -</celldesigner:layerCompartmentAlias> -</celldesigner:listOfSquares> -<celldesigner:listOfFreeLines> -<celldesigner:layerFreeLine isArrow="false" isDotted="false"> -<celldesigner:bounds sx="75.0" sy="349.0" ex="238.0" ey="279.0"/> -<celldesigner:line width="5.0" color="ff000000"/> -</celldesigner:layerFreeLine> -<celldesigner:layerFreeLine isArrow="true" isDotted="false"> -<celldesigner:bounds sx="56.0" sy="270.0" ex="181.0" ey="193.0"/> -<celldesigner:line width="5.0" color="ff000000"/> -</celldesigner:layerFreeLine> -</celldesigner:listOfFreeLines> -</celldesigner:layer> +<celldesigner:layer id="1" name="Layer0001" locked="false" visible="true"> +<celldesigner:listOfTexts> +<celldesigner:unkLayerSpeciesAlias2 /> +<celldesigner:layerSpeciesAlias x="0.0" y="0.0"> +<celldesigner:layerNotes> +text node +</celldesigner:layerNotes> +<celldesigner:bounds x="55.0" y="37.0" w="152.0" h="105.0"/> +<celldesigner:paint color="ff000000"/> +<celldesigner:font size="11"/> +</celldesigner:layerSpeciesAlias> +</celldesigner:listOfTexts> +<celldesigner:listOfSquares> +<celldesigner:layerCompartmentAlias type="Oval"> +<celldesigner:bounds x="268.0" y="34.0" w="211.0" h="97.0"/> +<celldesigner:paint color="ff000000" scheme="Gradation"/> +<celldesigner:ispaint inner="false"/> +</celldesigner:layerCompartmentAlias> +<celldesigner:layerCompartmentAlias type="Square"> +<celldesigner:bounds x="271.0" y="169.0" w="227.0" h="95.0"/> +<celldesigner:paint color="ff000000" scheme="Gradation"/> +<celldesigner:ispaint inner="false"/> +</celldesigner:layerCompartmentAlias> +</celldesigner:listOfSquares> +<celldesigner:listOfFreeLines> +<celldesigner:layerFreeLine isArrow="false" isDotted="false"> +<celldesigner:bounds sx="75.0" sy="349.0" ex="238.0" ey="279.0"/> +<celldesigner:line width="5.0" color="ff000000"/> +</celldesigner:layerFreeLine> +<celldesigner:layerFreeLine isArrow="true" isDotted="false"> +<celldesigner:bounds sx="56.0" sy="270.0" ex="181.0" ey="193.0"/> +<celldesigner:line width="5.0" color="ff000000"/> +</celldesigner:layerFreeLine> +</celldesigner:listOfFreeLines> +</celldesigner:layer> diff --git a/converter-CellDesigner/testFiles/invalid/layer2.xml b/converter-CellDesigner/testFiles/invalid/layer2.xml index 88661cd0e0..34308d7f17 100644 --- a/converter-CellDesigner/testFiles/invalid/layer2.xml +++ b/converter-CellDesigner/testFiles/invalid/layer2.xml @@ -1,34 +1,34 @@ -<celldesigner:layer id="1" name="Layer0001" locked="false" visible="true"> -<celldesigner:listOfTexts> -<celldesigner:layerSpeciesAlias x="0.0" y="0.0"> -<celldesigner:layerNotes> -text node -</celldesigner:layerNotes> -<celldesigner:bounds x="55.0" y="37.0" w="152.0" h="105.0"/> -<celldesigner:paint color="ff000000"/> -<celldesigner:font size="11"/> -</celldesigner:layerSpeciesAlias> -</celldesigner:listOfTexts> -<celldesigner:listOfSquares> -<celldesigner:layerCompartmentAlias type="Custom_Triangle"> -<celldesigner:bounds x="268.0" y="34.0" w="211.0" h="97.0"/> -<celldesigner:paint color="ff000000" scheme="Gradation"/> -<celldesigner:ispaint inner="false"/> -</celldesigner:layerCompartmentAlias> -<celldesigner:layerCompartmentAlias type="Square"> -<celldesigner:bounds x="271.0" y="169.0" w="227.0" h="95.0"/> -<celldesigner:paint color="ff000000" scheme="Gradation"/> -<celldesigner:ispaint inner="false"/> -</celldesigner:layerCompartmentAlias> -</celldesigner:listOfSquares> -<celldesigner:listOfFreeLines> -<celldesigner:layerFreeLine isArrow="false" isDotted="false"> -<celldesigner:bounds sx="75.0" sy="349.0" ex="238.0" ey="279.0"/> -<celldesigner:line width="5.0" color="ff000000"/> -</celldesigner:layerFreeLine> -<celldesigner:layerFreeLine isArrow="true" isDotted="false"> -<celldesigner:bounds sx="56.0" sy="270.0" ex="181.0" ey="193.0"/> -<celldesigner:line width="5.0" color="ff000000"/> -</celldesigner:layerFreeLine> -</celldesigner:listOfFreeLines> -</celldesigner:layer> +<celldesigner:layer id="1" name="Layer0001" locked="false" visible="true"> +<celldesigner:listOfTexts> +<celldesigner:layerSpeciesAlias x="0.0" y="0.0"> +<celldesigner:layerNotes> +text node +</celldesigner:layerNotes> +<celldesigner:bounds x="55.0" y="37.0" w="152.0" h="105.0"/> +<celldesigner:paint color="ff000000"/> +<celldesigner:font size="11"/> +</celldesigner:layerSpeciesAlias> +</celldesigner:listOfTexts> +<celldesigner:listOfSquares> +<celldesigner:layerCompartmentAlias type="Custom_Triangle"> +<celldesigner:bounds x="268.0" y="34.0" w="211.0" h="97.0"/> +<celldesigner:paint color="ff000000" scheme="Gradation"/> +<celldesigner:ispaint inner="false"/> +</celldesigner:layerCompartmentAlias> +<celldesigner:layerCompartmentAlias type="Square"> +<celldesigner:bounds x="271.0" y="169.0" w="227.0" h="95.0"/> +<celldesigner:paint color="ff000000" scheme="Gradation"/> +<celldesigner:ispaint inner="false"/> +</celldesigner:layerCompartmentAlias> +</celldesigner:listOfSquares> +<celldesigner:listOfFreeLines> +<celldesigner:layerFreeLine isArrow="false" isDotted="false"> +<celldesigner:bounds sx="75.0" sy="349.0" ex="238.0" ey="279.0"/> +<celldesigner:line width="5.0" color="ff000000"/> +</celldesigner:layerFreeLine> +<celldesigner:layerFreeLine isArrow="true" isDotted="false"> +<celldesigner:bounds sx="56.0" sy="270.0" ex="181.0" ey="193.0"/> +<celldesigner:line width="5.0" color="ff000000"/> +</celldesigner:layerFreeLine> +</celldesigner:listOfFreeLines> +</celldesigner:layer> diff --git a/converter-CellDesigner/testFiles/invalid/layer3.xml b/converter-CellDesigner/testFiles/invalid/layer3.xml index d2b37a8acb..37dd3a4f5a 100644 --- a/converter-CellDesigner/testFiles/invalid/layer3.xml +++ b/converter-CellDesigner/testFiles/invalid/layer3.xml @@ -1,35 +1,35 @@ -<celldesigner:layer id="1" name="Layer0001" locked="false" visible="true"> -<celldesigner:listOfTexts> -<celldesigner:layerSpeciesAlias x="0.0" y="0.0"> -<celldesigner:layerNotes> -text node -</celldesigner:layerNotes> -<celldesigner:bounds x="55.0" y="37.0" w="152.0" h="105.0"/> -<celldesigner:paint color="ff000000"/> -<celldesigner:font size="11"/> -</celldesigner:layerSpeciesAlias> -</celldesigner:listOfTexts> -<celldesigner:listOfSquares> -<celldesigner:customLayerCompartmentAliasTag/> -<celldesigner:layerCompartmentAlias type="Oval"> -<celldesigner:bounds x="268.0" y="34.0" w="211.0" h="97.0"/> -<celldesigner:paint color="ff000000" scheme="Gradation"/> -<celldesigner:ispaint inner="false"/> -</celldesigner:layerCompartmentAlias> -<celldesigner:layerCompartmentAlias type="Square"> -<celldesigner:bounds x="271.0" y="169.0" w="227.0" h="95.0"/> -<celldesigner:paint color="ff000000" scheme="Gradation"/> -<celldesigner:ispaint inner="false"/> -</celldesigner:layerCompartmentAlias> -</celldesigner:listOfSquares> -<celldesigner:listOfFreeLines> -<celldesigner:layerFreeLine isArrow="false" isDotted="false"> -<celldesigner:bounds sx="75.0" sy="349.0" ex="238.0" ey="279.0"/> -<celldesigner:line width="5.0" color="ff000000"/> -</celldesigner:layerFreeLine> -<celldesigner:layerFreeLine isArrow="true" isDotted="false"> -<celldesigner:bounds sx="56.0" sy="270.0" ex="181.0" ey="193.0"/> -<celldesigner:line width="5.0" color="ff000000"/> -</celldesigner:layerFreeLine> -</celldesigner:listOfFreeLines> -</celldesigner:layer> +<celldesigner:layer id="1" name="Layer0001" locked="false" visible="true"> +<celldesigner:listOfTexts> +<celldesigner:layerSpeciesAlias x="0.0" y="0.0"> +<celldesigner:layerNotes> +text node +</celldesigner:layerNotes> +<celldesigner:bounds x="55.0" y="37.0" w="152.0" h="105.0"/> +<celldesigner:paint color="ff000000"/> +<celldesigner:font size="11"/> +</celldesigner:layerSpeciesAlias> +</celldesigner:listOfTexts> +<celldesigner:listOfSquares> +<celldesigner:customLayerCompartmentAliasTag/> +<celldesigner:layerCompartmentAlias type="Oval"> +<celldesigner:bounds x="268.0" y="34.0" w="211.0" h="97.0"/> +<celldesigner:paint color="ff000000" scheme="Gradation"/> +<celldesigner:ispaint inner="false"/> +</celldesigner:layerCompartmentAlias> +<celldesigner:layerCompartmentAlias type="Square"> +<celldesigner:bounds x="271.0" y="169.0" w="227.0" h="95.0"/> +<celldesigner:paint color="ff000000" scheme="Gradation"/> +<celldesigner:ispaint inner="false"/> +</celldesigner:layerCompartmentAlias> +</celldesigner:listOfSquares> +<celldesigner:listOfFreeLines> +<celldesigner:layerFreeLine isArrow="false" isDotted="false"> +<celldesigner:bounds sx="75.0" sy="349.0" ex="238.0" ey="279.0"/> +<celldesigner:line width="5.0" color="ff000000"/> +</celldesigner:layerFreeLine> +<celldesigner:layerFreeLine isArrow="true" isDotted="false"> +<celldesigner:bounds sx="56.0" sy="270.0" ex="181.0" ey="193.0"/> +<celldesigner:line width="5.0" color="ff000000"/> +</celldesigner:layerFreeLine> +</celldesigner:listOfFreeLines> +</celldesigner:layer> diff --git a/converter-CellDesigner/testFiles/invalid/layer4.xml b/converter-CellDesigner/testFiles/invalid/layer4.xml index 596a08d267..d02105499e 100644 --- a/converter-CellDesigner/testFiles/invalid/layer4.xml +++ b/converter-CellDesigner/testFiles/invalid/layer4.xml @@ -1,35 +1,35 @@ -<celldesigner:layer id="1" name="Layer0001" locked="false" visible="true"> -<celldesigner:listOfTexts> -<celldesigner:layerSpeciesAlias x="0.0" y="0.0"> -<celldesigner:layerNotes> -text node -</celldesigner:layerNotes> -<celldesigner:bounds x="55.0" y="37.0" w="152.0" h="105.0"/> -<celldesigner:paint color="ff000000"/> -<celldesigner:font size="11"/> -</celldesigner:layerSpeciesAlias> -</celldesigner:listOfTexts> -<celldesigner:listOfSquares> -<celldesigner:layerCompartmentAlias type="Oval"> -<celldesigner:bounds x="268.0" y="34.0" w="211.0" h="97.0"/> -<celldesigner:paint color="ff000000" scheme="Gradation"/> -<celldesigner:ispaint inner="false"/> -</celldesigner:layerCompartmentAlias> -<celldesigner:layerCompartmentAlias type="Square"> -<celldesigner:bounds x="271.0" y="169.0" w="227.0" h="95.0"/> -<celldesigner:paint color="ff000000" scheme="Gradation"/> -<celldesigner:ispaint inner="false"/> -</celldesigner:layerCompartmentAlias> -</celldesigner:listOfSquares> -<celldesigner:listOfFreeLines> -<celldesigner:customLayerFreeLine isArrow="false" isDotted="false"/> -<celldesigner:layerFreeLine isArrow="false" isDotted="false"> -<celldesigner:bounds sx="75.0" sy="349.0" ex="238.0" ey="279.0"/> -<celldesigner:line width="5.0" color="ff000000"/> -</celldesigner:layerFreeLine> -<celldesigner:layerFreeLine isArrow="true" isDotted="false"> -<celldesigner:bounds sx="56.0" sy="270.0" ex="181.0" ey="193.0"/> -<celldesigner:line width="5.0" color="ff000000"/> -</celldesigner:layerFreeLine> -</celldesigner:listOfFreeLines> -</celldesigner:layer> +<celldesigner:layer id="1" name="Layer0001" locked="false" visible="true"> +<celldesigner:listOfTexts> +<celldesigner:layerSpeciesAlias x="0.0" y="0.0"> +<celldesigner:layerNotes> +text node +</celldesigner:layerNotes> +<celldesigner:bounds x="55.0" y="37.0" w="152.0" h="105.0"/> +<celldesigner:paint color="ff000000"/> +<celldesigner:font size="11"/> +</celldesigner:layerSpeciesAlias> +</celldesigner:listOfTexts> +<celldesigner:listOfSquares> +<celldesigner:layerCompartmentAlias type="Oval"> +<celldesigner:bounds x="268.0" y="34.0" w="211.0" h="97.0"/> +<celldesigner:paint color="ff000000" scheme="Gradation"/> +<celldesigner:ispaint inner="false"/> +</celldesigner:layerCompartmentAlias> +<celldesigner:layerCompartmentAlias type="Square"> +<celldesigner:bounds x="271.0" y="169.0" w="227.0" h="95.0"/> +<celldesigner:paint color="ff000000" scheme="Gradation"/> +<celldesigner:ispaint inner="false"/> +</celldesigner:layerCompartmentAlias> +</celldesigner:listOfSquares> +<celldesigner:listOfFreeLines> +<celldesigner:customLayerFreeLine isArrow="false" isDotted="false"/> +<celldesigner:layerFreeLine isArrow="false" isDotted="false"> +<celldesigner:bounds sx="75.0" sy="349.0" ex="238.0" ey="279.0"/> +<celldesigner:line width="5.0" color="ff000000"/> +</celldesigner:layerFreeLine> +<celldesigner:layerFreeLine isArrow="true" isDotted="false"> +<celldesigner:bounds sx="56.0" sy="270.0" ex="181.0" ey="193.0"/> +<celldesigner:line width="5.0" color="ff000000"/> +</celldesigner:layerFreeLine> +</celldesigner:listOfFreeLines> +</celldesigner:layer> diff --git a/converter-CellDesigner/testFiles/invalid/layer5.xml b/converter-CellDesigner/testFiles/invalid/layer5.xml index 215c1789b6..24fac76547 100644 --- a/converter-CellDesigner/testFiles/invalid/layer5.xml +++ b/converter-CellDesigner/testFiles/invalid/layer5.xml @@ -1,35 +1,35 @@ -<celldesigner:layer id="1" name="Layer0001" locked="false" visible="true"> -<customLayerTag/> -<celldesigner:listOfTexts> -<celldesigner:layerSpeciesAlias x="0.0" y="0.0"> -<celldesigner:layerNotes> -text node -</celldesigner:layerNotes> -<celldesigner:bounds x="55.0" y="37.0" w="152.0" h="105.0"/> -<celldesigner:paint color="ff000000"/> -<celldesigner:font size="11"/> -</celldesigner:layerSpeciesAlias> -</celldesigner:listOfTexts> -<celldesigner:listOfSquares> -<celldesigner:layerCompartmentAlias type="Oval"> -<celldesigner:bounds x="268.0" y="34.0" w="211.0" h="97.0"/> -<celldesigner:paint color="ff000000" scheme="Gradation"/> -<celldesigner:ispaint inner="false"/> -</celldesigner:layerCompartmentAlias> -<celldesigner:layerCompartmentAlias type="Square"> -<celldesigner:bounds x="271.0" y="169.0" w="227.0" h="95.0"/> -<celldesigner:paint color="ff000000" scheme="Gradation"/> -<celldesigner:ispaint inner="false"/> -</celldesigner:layerCompartmentAlias> -</celldesigner:listOfSquares> -<celldesigner:listOfFreeLines> -<celldesigner:layerFreeLine isArrow="false" isDotted="false"> -<celldesigner:bounds sx="75.0" sy="349.0" ex="238.0" ey="279.0"/> -<celldesigner:line width="5.0" color="ff000000"/> -</celldesigner:layerFreeLine> -<celldesigner:layerFreeLine isArrow="true" isDotted="false"> -<celldesigner:bounds sx="56.0" sy="270.0" ex="181.0" ey="193.0"/> -<celldesigner:line width="5.0" color="ff000000"/> -</celldesigner:layerFreeLine> -</celldesigner:listOfFreeLines> -</celldesigner:layer> +<celldesigner:layer id="1" name="Layer0001" locked="false" visible="true"> +<customLayerTag/> +<celldesigner:listOfTexts> +<celldesigner:layerSpeciesAlias x="0.0" y="0.0"> +<celldesigner:layerNotes> +text node +</celldesigner:layerNotes> +<celldesigner:bounds x="55.0" y="37.0" w="152.0" h="105.0"/> +<celldesigner:paint color="ff000000"/> +<celldesigner:font size="11"/> +</celldesigner:layerSpeciesAlias> +</celldesigner:listOfTexts> +<celldesigner:listOfSquares> +<celldesigner:layerCompartmentAlias type="Oval"> +<celldesigner:bounds x="268.0" y="34.0" w="211.0" h="97.0"/> +<celldesigner:paint color="ff000000" scheme="Gradation"/> +<celldesigner:ispaint inner="false"/> +</celldesigner:layerCompartmentAlias> +<celldesigner:layerCompartmentAlias type="Square"> +<celldesigner:bounds x="271.0" y="169.0" w="227.0" h="95.0"/> +<celldesigner:paint color="ff000000" scheme="Gradation"/> +<celldesigner:ispaint inner="false"/> +</celldesigner:layerCompartmentAlias> +</celldesigner:listOfSquares> +<celldesigner:listOfFreeLines> +<celldesigner:layerFreeLine isArrow="false" isDotted="false"> +<celldesigner:bounds sx="75.0" sy="349.0" ex="238.0" ey="279.0"/> +<celldesigner:line width="5.0" color="ff000000"/> +</celldesigner:layerFreeLine> +<celldesigner:layerFreeLine isArrow="true" isDotted="false"> +<celldesigner:bounds sx="56.0" sy="270.0" ex="181.0" ey="193.0"/> +<celldesigner:line width="5.0" color="ff000000"/> +</celldesigner:layerFreeLine> +</celldesigner:listOfFreeLines> +</celldesigner:layer> diff --git a/converter-CellDesigner/testFiles/invalid/layer_collection.xml b/converter-CellDesigner/testFiles/invalid/layer_collection.xml index 654f981181..d454896309 100644 --- a/converter-CellDesigner/testFiles/invalid/layer_collection.xml +++ b/converter-CellDesigner/testFiles/invalid/layer_collection.xml @@ -1,37 +1,37 @@ -<celldesigner:listOfLayers> -<invalid_node/> -<celldesigner:layer id="1" name="Layer0001" locked="false" visible="true"> -<celldesigner:listOfTexts> -<celldesigner:layerSpeciesAlias x="0.0" y="0.0"> -<celldesigner:layerNotes> -text node -</celldesigner:layerNotes> -<celldesigner:bounds x="55.0" y="37.0" w="152.0" h="105.0"/> -<celldesigner:paint color="ff000000"/> -<celldesigner:font size="11"/> -</celldesigner:layerSpeciesAlias> -</celldesigner:listOfTexts> -<celldesigner:listOfSquares> -<celldesigner:layerCompartmentAlias type="Oval"> -<celldesigner:bounds x="268.0" y="34.0" w="211.0" h="97.0"/> -<celldesigner:paint color="ff000000" scheme="Gradation"/> -<celldesigner:ispaint inner="false"/> -</celldesigner:layerCompartmentAlias> -<celldesigner:layerCompartmentAlias type="Square"> -<celldesigner:bounds x="271.0" y="169.0" w="227.0" h="95.0"/> -<celldesigner:paint color="ff000000" scheme="Gradation"/> -<celldesigner:ispaint inner="false"/> -</celldesigner:layerCompartmentAlias> -</celldesigner:listOfSquares> -<celldesigner:listOfFreeLines> -<celldesigner:layerFreeLine isArrow="false" isDotted="false"> -<celldesigner:bounds sx="75.0" sy="349.0" ex="238.0" ey="279.0"/> -<celldesigner:line width="5.0" color="ff000000"/> -</celldesigner:layerFreeLine> -<celldesigner:layerFreeLine isArrow="true" isDotted="false"> -<celldesigner:bounds sx="56.0" sy="270.0" ex="181.0" ey="193.0"/> -<celldesigner:line width="5.0" color="ff000000"/> -</celldesigner:layerFreeLine> -</celldesigner:listOfFreeLines> -</celldesigner:layer> +<celldesigner:listOfLayers> +<invalid_node/> +<celldesigner:layer id="1" name="Layer0001" locked="false" visible="true"> +<celldesigner:listOfTexts> +<celldesigner:layerSpeciesAlias x="0.0" y="0.0"> +<celldesigner:layerNotes> +text node +</celldesigner:layerNotes> +<celldesigner:bounds x="55.0" y="37.0" w="152.0" h="105.0"/> +<celldesigner:paint color="ff000000"/> +<celldesigner:font size="11"/> +</celldesigner:layerSpeciesAlias> +</celldesigner:listOfTexts> +<celldesigner:listOfSquares> +<celldesigner:layerCompartmentAlias type="Oval"> +<celldesigner:bounds x="268.0" y="34.0" w="211.0" h="97.0"/> +<celldesigner:paint color="ff000000" scheme="Gradation"/> +<celldesigner:ispaint inner="false"/> +</celldesigner:layerCompartmentAlias> +<celldesigner:layerCompartmentAlias type="Square"> +<celldesigner:bounds x="271.0" y="169.0" w="227.0" h="95.0"/> +<celldesigner:paint color="ff000000" scheme="Gradation"/> +<celldesigner:ispaint inner="false"/> +</celldesigner:layerCompartmentAlias> +</celldesigner:listOfSquares> +<celldesigner:listOfFreeLines> +<celldesigner:layerFreeLine isArrow="false" isDotted="false"> +<celldesigner:bounds sx="75.0" sy="349.0" ex="238.0" ey="279.0"/> +<celldesigner:line width="5.0" color="ff000000"/> +</celldesigner:layerFreeLine> +<celldesigner:layerFreeLine isArrow="true" isDotted="false"> +<celldesigner:bounds sx="56.0" sy="270.0" ex="181.0" ey="193.0"/> +<celldesigner:line width="5.0" color="ff000000"/> +</celldesigner:layerFreeLine> +</celldesigner:listOfFreeLines> +</celldesigner:layer> </celldesigner:listOfLayers> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/layer_line.xml b/converter-CellDesigner/testFiles/invalid/layer_line.xml index 504007efcf..bdfb767316 100644 --- a/converter-CellDesigner/testFiles/invalid/layer_line.xml +++ b/converter-CellDesigner/testFiles/invalid/layer_line.xml @@ -1,5 +1,5 @@ -<celldesigner:layerFreeLine isArrow="true" isDotted="true"> -<inv_content/> -<celldesigner:bounds sx="56.0" sy="270.0" ex="181.0" ey="193.0"/> -<celldesigner:line width="5.0" color="ff000000"/> -</celldesigner:layerFreeLine> +<celldesigner:layerFreeLine isArrow="true" isDotted="true"> +<inv_content/> +<celldesigner:bounds sx="56.0" sy="270.0" ex="181.0" ey="193.0"/> +<celldesigner:line width="5.0" color="ff000000"/> +</celldesigner:layerFreeLine> diff --git a/converter-CellDesigner/testFiles/invalid/layer_oval.xml b/converter-CellDesigner/testFiles/invalid/layer_oval.xml index a1543f5376..836be26362 100644 --- a/converter-CellDesigner/testFiles/invalid/layer_oval.xml +++ b/converter-CellDesigner/testFiles/invalid/layer_oval.xml @@ -1,6 +1,6 @@ -<celldesigner:layerCompartmentAlias type="Oval"> -<inv_tag/> -<celldesigner:bounds x="268.0" y="34.0" w="211.0" h="97.0"/> -<celldesigner:paint color="ff000000" scheme="Gradation"/> -<celldesigner:ispaint inner="false"/> -</celldesigner:layerCompartmentAlias> +<celldesigner:layerCompartmentAlias type="Oval"> +<inv_tag/> +<celldesigner:bounds x="268.0" y="34.0" w="211.0" h="97.0"/> +<celldesigner:paint color="ff000000" scheme="Gradation"/> +<celldesigner:ispaint inner="false"/> +</celldesigner:layerCompartmentAlias> diff --git a/converter-CellDesigner/testFiles/invalid/layer_square.xml b/converter-CellDesigner/testFiles/invalid/layer_square.xml index 64bdda46f6..ec6a623786 100644 --- a/converter-CellDesigner/testFiles/invalid/layer_square.xml +++ b/converter-CellDesigner/testFiles/invalid/layer_square.xml @@ -1,6 +1,6 @@ -<celldesigner:layerCompartmentAlias type="Square"> -<inv_element/> -<celldesigner:bounds x="271.0" y="169.0" w="227.0" h="95.0"/> -<celldesigner:paint color="ff000000" scheme="Gradation"/> -<celldesigner:ispaint inner="false"/> -</celldesigner:layerCompartmentAlias> +<celldesigner:layerCompartmentAlias type="Square"> +<inv_element/> +<celldesigner:bounds x="271.0" y="169.0" w="227.0" h="95.0"/> +<celldesigner:paint color="ff000000" scheme="Gradation"/> +<celldesigner:ispaint inner="false"/> +</celldesigner:layerCompartmentAlias> diff --git a/converter-CellDesigner/testFiles/invalid/layer_text.xml b/converter-CellDesigner/testFiles/invalid/layer_text.xml index d860055a35..40d6f92c1e 100644 --- a/converter-CellDesigner/testFiles/invalid/layer_text.xml +++ b/converter-CellDesigner/testFiles/invalid/layer_text.xml @@ -1,9 +1,9 @@ -<celldesigner:layerSpeciesAlias x="0.0" y="0.0"> -<inv_tabg/> -<celldesigner:layerNotes> -text node -</celldesigner:layerNotes> -<celldesigner:bounds x="55.0" y="37.0" w="152.0" h="105.0"/> -<celldesigner:paint color="ff000000"/> -<celldesigner:font size="11"/> -</celldesigner:layerSpeciesAlias> +<celldesigner:layerSpeciesAlias x="0.0" y="0.0"> +<inv_tabg/> +<celldesigner:layerNotes> +text node +</celldesigner:layerNotes> +<celldesigner:bounds x="55.0" y="37.0" w="152.0" h="105.0"/> +<celldesigner:paint color="ff000000"/> +<celldesigner:font size="11"/> +</celldesigner:layerSpeciesAlias> diff --git a/converter-CellDesigner/testFiles/invalid/listOfCompartments.xml b/converter-CellDesigner/testFiles/invalid/listOfCompartments.xml index 1fb3bacf9c..e902591a73 100644 --- a/converter-CellDesigner/testFiles/invalid/listOfCompartments.xml +++ b/converter-CellDesigner/testFiles/invalid/listOfCompartments.xml @@ -1,11 +1,11 @@ -<listOfCompartments> -<compartment metaid="default" id="default" size="1" units="volume"/> -<compartment metaid="c1" id="c1" name="c1" size="1" units="volume" outside="default"> -<annotation> -<celldesigner:extension> -<celldesigner:name>c1</celldesigner:name> -</celldesigner:extension> -</annotation> -</compartment> -<compartment2/> -</listOfCompartments> +<listOfCompartments> +<compartment metaid="default" id="default" size="1" units="volume"/> +<compartment metaid="c1" id="c1" name="c1" size="1" units="volume" outside="default"> +<annotation> +<celldesigner:extension> +<celldesigner:name>c1</celldesigner:name> +</celldesigner:extension> +</annotation> +</compartment> +<compartment2/> +</listOfCompartments> diff --git a/converter-CellDesigner/testFiles/invalid/list_of_species_alias.xml b/converter-CellDesigner/testFiles/invalid/list_of_species_alias.xml index 0d760a7628..e22c3d53af 100644 --- a/converter-CellDesigner/testFiles/invalid/list_of_species_alias.xml +++ b/converter-CellDesigner/testFiles/invalid/list_of_species_alias.xml @@ -1,553 +1,553 @@ -<celldesigner:listOfSpeciesAliases> -<celldesigner:speciesAlias id="sa1" species="s1"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="12.0" y="6.0" w="80.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffffffff" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa2" species="s2"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="165.0" y="43.0" w="80.0" h="50.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="50.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffffffcc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa3" species="s3"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="289.0" y="39.0" w="80.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccffff" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa4" species="s4"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="419.0" y="45.0" w="80.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffffcccc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa5" species="s5"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="0.0" y="118.5" w="90.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="90.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ff66ff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa6" species="s6"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="101.0" y="129.5" w="90.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="90.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffff6666" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa7" species="s7"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="213.0" y="128.0" w="80.0" h="30.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="30.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffcc99ff" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa8" species="s8"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="358.5" y="125.5" w="25.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="25.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ff9999ff" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa9" species="s9"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="455.0" y="169.5" w="70.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="70.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa10" species="s10"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="0.0" y="186.0" w="80.0" h="30.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="30.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffff00ff" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa11" species="s11"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="105.0" y="203.5" w="70.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="70.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="7fcccccc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa12" species="s13"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="401.0" y="235.0" w="30.0" h="30.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="30.0" height="30.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffffcccc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa13" species="s14" complexSpeciesAlias="csa1"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="279.0" y="233.0" w="80.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="8.0" y="26.0"/> -<celldesigner:boxSize width="80.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccffcc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa14" species="s15"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="11.0" y="236.0" w="118.0" h="66.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="118.0" height="66.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccffcc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa15" species="s16"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="160.0" y="332.0" w="119.0" h="63.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="119.0" height="63.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccffcc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa22" species="s22"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="712.0" y="384.0" w="80.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccffcc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa23" species="s22"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="918.0" y="427.0" w="80.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccffcc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa24" species="s20"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="849.0" y="309.0" w="70.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="70.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa25" species="s21"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="959.0" y="271.0" w="70.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="70.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa26" species="s23"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="656.0" y="42.0" w="80.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccffcc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa27" species="s23"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="695.0" y="239.0" w="80.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccffcc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa28" species="s24"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="683.0" y="132.0" w="70.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="70.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa29" species="s25"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="819.0" y="134.0" w="70.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="70.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa30" species="s2612"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="1022.7317629179333" y="209.5" w="140.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="2114.4635258358667" y="3282.5"/> -<celldesigner:boxSize width="140.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa31" species="s841"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="1197.2682370820667" y="287.5" w="70.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="2281.0" y="3282.5"/> -<celldesigner:boxSize width="70.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa32" species="s2611"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="1225.7682370820667" y="66.0" w="80.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="2360.5" y="3189.0"/> -<celldesigner:boxSize width="80.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffffffff" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa33" species="s817"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="1243.7682370820667" y="12.50000000000091" w="25.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="2364.5" y="3112.500000000001"/> -<celldesigner:boxSize width="25.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ff9999ff" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa34" species="s815"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="1214.2682370820667" y="128.5000000000009" w="70.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="2267.0" y="3112.500000000001"/> -<celldesigner:boxSize width="70.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa35" species="s4532"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="1044.7317629179333" y="27.50000000000091" w="140.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="2114.4635258358667" y="3112.500000000001"/> -<celldesigner:boxSize width="140.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -</celldesigner:listOfSpeciesAliases> +<celldesigner:listOfSpeciesAliases> +<celldesigner:speciesAlias id="sa1" species="s1"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="12.0" y="6.0" w="80.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffffffff" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa2" species="s2"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="165.0" y="43.0" w="80.0" h="50.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="50.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffffffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa3" species="s3"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="289.0" y="39.0" w="80.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffff" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa4" species="s4"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="419.0" y="45.0" w="80.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffffcccc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa5" species="s5"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="0.0" y="118.5" w="90.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="90.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ff66ff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa6" species="s6"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="101.0" y="129.5" w="90.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="90.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffff6666" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa7" species="s7"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="213.0" y="128.0" w="80.0" h="30.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="30.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffcc99ff" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa8" species="s8"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="358.5" y="125.5" w="25.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="25.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ff9999ff" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa9" species="s9"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="455.0" y="169.5" w="70.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="70.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa10" species="s10"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="0.0" y="186.0" w="80.0" h="30.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="30.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffff00ff" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa11" species="s11"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="105.0" y="203.5" w="70.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="70.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="7fcccccc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa12" species="s13"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="401.0" y="235.0" w="30.0" h="30.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="30.0" height="30.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffffcccc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa13" species="s14" complexSpeciesAlias="csa1"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="279.0" y="233.0" w="80.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="8.0" y="26.0"/> +<celldesigner:boxSize width="80.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa14" species="s15"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="11.0" y="236.0" w="118.0" h="66.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="118.0" height="66.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa15" species="s16"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="160.0" y="332.0" w="119.0" h="63.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="119.0" height="63.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa22" species="s22"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="712.0" y="384.0" w="80.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa23" species="s22"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="918.0" y="427.0" w="80.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa24" species="s20"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="849.0" y="309.0" w="70.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="70.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa25" species="s21"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="959.0" y="271.0" w="70.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="70.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa26" species="s23"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="656.0" y="42.0" w="80.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa27" species="s23"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="695.0" y="239.0" w="80.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa28" species="s24"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="683.0" y="132.0" w="70.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="70.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa29" species="s25"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="819.0" y="134.0" w="70.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="70.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa30" species="s2612"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="1022.7317629179333" y="209.5" w="140.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="2114.4635258358667" y="3282.5"/> +<celldesigner:boxSize width="140.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa31" species="s841"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="1197.2682370820667" y="287.5" w="70.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="2281.0" y="3282.5"/> +<celldesigner:boxSize width="70.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa32" species="s2611"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="1225.7682370820667" y="66.0" w="80.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="2360.5" y="3189.0"/> +<celldesigner:boxSize width="80.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffffffff" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa33" species="s817"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="1243.7682370820667" y="12.50000000000091" w="25.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="2364.5" y="3112.500000000001"/> +<celldesigner:boxSize width="25.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ff9999ff" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa34" species="s815"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="1214.2682370820667" y="128.5000000000009" w="70.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="2267.0" y="3112.500000000001"/> +<celldesigner:boxSize width="70.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa35" species="s4532"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="1044.7317629179333" y="27.50000000000091" w="140.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="2114.4635258358667" y="3112.500000000001"/> +<celldesigner:boxSize width="140.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +</celldesigner:listOfSpeciesAliases> diff --git a/converter-CellDesigner/testFiles/invalid/list_of_species_alias2.xml b/converter-CellDesigner/testFiles/invalid/list_of_species_alias2.xml index 1c27ebdd26..ac07e81a9f 100644 --- a/converter-CellDesigner/testFiles/invalid/list_of_species_alias2.xml +++ b/converter-CellDesigner/testFiles/invalid/list_of_species_alias2.xml @@ -1,554 +1,554 @@ -<celldesigner:listOfSpeciesAliases> -<unk/> -<celldesigner:speciesAlias id="sa1" species="s1"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="12.0" y="6.0" w="80.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffffffff" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa2" species="s2"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="165.0" y="43.0" w="80.0" h="50.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="50.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffffffcc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa3" species="s3"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="289.0" y="39.0" w="80.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccffff" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa4" species="s4"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="419.0" y="45.0" w="80.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffffcccc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa5" species="s5"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="0.0" y="118.5" w="90.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="90.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ff66ff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa6" species="s6"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="101.0" y="129.5" w="90.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="90.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffff6666" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa7" species="s7"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="213.0" y="128.0" w="80.0" h="30.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="30.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffcc99ff" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa8" species="s8"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="358.5" y="125.5" w="25.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="25.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ff9999ff" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa9" species="s9"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="455.0" y="169.5" w="70.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="70.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa10" species="s10"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="0.0" y="186.0" w="80.0" h="30.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="30.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffff00ff" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa11" species="s11"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="105.0" y="203.5" w="70.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="70.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="7fcccccc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa12" species="s13"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="401.0" y="235.0" w="30.0" h="30.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="30.0" height="30.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffffcccc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa13" species="s14" complexSpeciesAlias="csa1"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="279.0" y="233.0" w="80.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="8.0" y="26.0"/> -<celldesigner:boxSize width="80.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccffcc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa14" species="s15"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="11.0" y="236.0" w="118.0" h="66.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="118.0" height="66.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccffcc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa15" species="s16"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="160.0" y="332.0" w="119.0" h="63.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="119.0" height="63.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccffcc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa22" species="s22"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="712.0" y="384.0" w="80.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccffcc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa23" species="s22"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="918.0" y="427.0" w="80.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccffcc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa24" species="s20"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="849.0" y="309.0" w="70.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="70.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa25" species="s21"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="959.0" y="271.0" w="70.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="70.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa26" species="s23"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="656.0" y="42.0" w="80.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccffcc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa27" species="s23"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="695.0" y="239.0" w="80.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccffcc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa28" species="s24"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="683.0" y="132.0" w="70.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="70.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa29" species="s25"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="819.0" y="134.0" w="70.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="70.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa30" species="s2612"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="1022.7317629179333" y="209.5" w="140.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="2114.4635258358667" y="3282.5"/> -<celldesigner:boxSize width="140.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa31" species="s841"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="1197.2682370820667" y="287.5" w="70.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="2281.0" y="3282.5"/> -<celldesigner:boxSize width="70.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa32" species="s2611"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="1225.7682370820667" y="66.0" w="80.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="2360.5" y="3189.0"/> -<celldesigner:boxSize width="80.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffffffff" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa33" species="s817"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="1243.7682370820667" y="12.50000000000091" w="25.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="2364.5" y="3112.500000000001"/> -<celldesigner:boxSize width="25.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ff9999ff" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa34" species="s815"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="1214.2682370820667" y="128.5000000000009" w="70.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="2267.0" y="3112.500000000001"/> -<celldesigner:boxSize width="70.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa35" species="s4532"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="1044.7317629179333" y="27.50000000000091" w="140.0" h="25.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="2114.4635258358667" y="3112.500000000001"/> -<celldesigner:boxSize width="140.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -</celldesigner:listOfSpeciesAliases> +<celldesigner:listOfSpeciesAliases> +<unk/> +<celldesigner:speciesAlias id="sa1" species="s1"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="12.0" y="6.0" w="80.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffffffff" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa2" species="s2"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="165.0" y="43.0" w="80.0" h="50.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="50.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffffffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa3" species="s3"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="289.0" y="39.0" w="80.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffff" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa4" species="s4"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="419.0" y="45.0" w="80.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffffcccc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa5" species="s5"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="0.0" y="118.5" w="90.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="90.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ff66ff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa6" species="s6"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="101.0" y="129.5" w="90.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="90.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffff6666" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa7" species="s7"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="213.0" y="128.0" w="80.0" h="30.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="30.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffcc99ff" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa8" species="s8"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="358.5" y="125.5" w="25.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="25.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ff9999ff" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa9" species="s9"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="455.0" y="169.5" w="70.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="70.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa10" species="s10"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="0.0" y="186.0" w="80.0" h="30.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="30.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffff00ff" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa11" species="s11"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="105.0" y="203.5" w="70.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="70.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="7fcccccc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa12" species="s13"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="401.0" y="235.0" w="30.0" h="30.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="30.0" height="30.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffffcccc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa13" species="s14" complexSpeciesAlias="csa1"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="279.0" y="233.0" w="80.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="8.0" y="26.0"/> +<celldesigner:boxSize width="80.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa14" species="s15"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="11.0" y="236.0" w="118.0" h="66.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="118.0" height="66.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa15" species="s16"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="160.0" y="332.0" w="119.0" h="63.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="119.0" height="63.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa22" species="s22"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="712.0" y="384.0" w="80.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa23" species="s22"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="918.0" y="427.0" w="80.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa24" species="s20"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="849.0" y="309.0" w="70.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="70.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa25" species="s21"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="959.0" y="271.0" w="70.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="70.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa26" species="s23"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="656.0" y="42.0" w="80.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa27" species="s23"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="695.0" y="239.0" w="80.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa28" species="s24"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="683.0" y="132.0" w="70.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="70.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa29" species="s25"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="819.0" y="134.0" w="70.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="70.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa30" species="s2612"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="1022.7317629179333" y="209.5" w="140.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="2114.4635258358667" y="3282.5"/> +<celldesigner:boxSize width="140.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa31" species="s841"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="1197.2682370820667" y="287.5" w="70.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="2281.0" y="3282.5"/> +<celldesigner:boxSize width="70.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa32" species="s2611"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="1225.7682370820667" y="66.0" w="80.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="2360.5" y="3189.0"/> +<celldesigner:boxSize width="80.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffffffff" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa33" species="s817"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="1243.7682370820667" y="12.50000000000091" w="25.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="2364.5" y="3112.500000000001"/> +<celldesigner:boxSize width="25.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ff9999ff" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa34" species="s815"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="1214.2682370820667" y="128.5000000000009" w="70.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="2267.0" y="3112.500000000001"/> +<celldesigner:boxSize width="70.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa35" species="s4532"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="1044.7317629179333" y="27.50000000000091" w="140.0" h="25.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="2114.4635258358667" y="3112.500000000001"/> +<celldesigner:boxSize width="140.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +</celldesigner:listOfSpeciesAliases> diff --git a/converter-CellDesigner/testFiles/invalid/protein.xml b/converter-CellDesigner/testFiles/invalid/protein.xml index 8eb55f9abd..d5e33d960c 100644 --- a/converter-CellDesigner/testFiles/invalid/protein.xml +++ b/converter-CellDesigner/testFiles/invalid/protein.xml @@ -1,16 +1,16 @@ -<celldesigner:protein id="pr23" name="SDHA" type="UNK_TYPE_BLA"> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body> -UniProtKB P31040 SDHA GO:0005749 GO_REF:0000024|UniProtKB:Q0QF01 ISS UniProtKB:Q0QF01 C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20100125 UniProtKB -UniProtKB P31040 SDHA GO:0005749 PMID:7550341 TAS C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20060419 UniProtKB -</body> -</html> -</celldesigner:notes> -<celldesigner:listOfModificationResidues> -<celldesigner:modificationResidue angle="3.141592653589793" name="S176 bla bla" id="rs1" side="none"/> -</celldesigner:listOfModificationResidues> +<celldesigner:protein id="pr23" name="SDHA" type="UNK_TYPE_BLA"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body> +UniProtKB P31040 SDHA GO:0005749 GO_REF:0000024|UniProtKB:Q0QF01 ISS UniProtKB:Q0QF01 C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20100125 UniProtKB +UniProtKB P31040 SDHA GO:0005749 PMID:7550341 TAS C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20060419 UniProtKB +</body> +</html> +</celldesigner:notes> +<celldesigner:listOfModificationResidues> +<celldesigner:modificationResidue angle="3.141592653589793" name="S176 bla bla" id="rs1" side="none"/> +</celldesigner:listOfModificationResidues> </celldesigner:protein> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/protein2.xml b/converter-CellDesigner/testFiles/invalid/protein2.xml index 8b19845e6e..2ecfe74847 100644 --- a/converter-CellDesigner/testFiles/invalid/protein2.xml +++ b/converter-CellDesigner/testFiles/invalid/protein2.xml @@ -1,17 +1,17 @@ -<celldesigner:protein id="pr23" name="SDHA" type="GENERIC"> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body> -UniProtKB P31040 SDHA GO:0005749 GO_REF:0000024|UniProtKB:Q0QF01 ISS UniProtKB:Q0QF01 C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20100125 UniProtKB -UniProtKB P31040 SDHA GO:0005749 PMID:7550341 TAS C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20060419 UniProtKB -</body> -</html> -</celldesigner:notes> -<celldesigner:listOfModificationResidues> -<celldesigner:modificationResidue angle="3.141592653589793" name="S176 bla bla" id="rs1" side="none"/> -<unkNode/> -</celldesigner:listOfModificationResidues> +<celldesigner:protein id="pr23" name="SDHA" type="GENERIC"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body> +UniProtKB P31040 SDHA GO:0005749 GO_REF:0000024|UniProtKB:Q0QF01 ISS UniProtKB:Q0QF01 C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20100125 UniProtKB +UniProtKB P31040 SDHA GO:0005749 PMID:7550341 TAS C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20060419 UniProtKB +</body> +</html> +</celldesigner:notes> +<celldesigner:listOfModificationResidues> +<celldesigner:modificationResidue angle="3.141592653589793" name="S176 bla bla" id="rs1" side="none"/> +<unkNode/> +</celldesigner:listOfModificationResidues> </celldesigner:protein> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/protein3.xml b/converter-CellDesigner/testFiles/invalid/protein3.xml index 0ca56fd5be..674b6a9e85 100644 --- a/converter-CellDesigner/testFiles/invalid/protein3.xml +++ b/converter-CellDesigner/testFiles/invalid/protein3.xml @@ -1,17 +1,17 @@ -<celldesigner:protein id="pr23" name="SDHA" type="GENERIC"> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body> -UniProtKB P31040 SDHA GO:0005749 GO_REF:0000024|UniProtKB:Q0QF01 ISS UniProtKB:Q0QF01 C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20100125 UniProtKB -UniProtKB P31040 SDHA GO:0005749 PMID:7550341 TAS C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20060419 UniProtKB -</body> -</html> -</celldesigner:notes> -<celldesigner:listOfModificationResidues> -<celldesigner:modificationResidue angle="3.141592653589793" name="S176 bla bla" id="rs1" side="none"/> -</celldesigner:listOfModificationResidues> -<xxx/> +<celldesigner:protein id="pr23" name="SDHA" type="GENERIC"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body> +UniProtKB P31040 SDHA GO:0005749 GO_REF:0000024|UniProtKB:Q0QF01 ISS UniProtKB:Q0QF01 C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20100125 UniProtKB +UniProtKB P31040 SDHA GO:0005749 PMID:7550341 TAS C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20060419 UniProtKB +</body> +</html> +</celldesigner:notes> +<celldesigner:listOfModificationResidues> +<celldesigner:modificationResidue angle="3.141592653589793" name="S176 bla bla" id="rs1" side="none"/> +</celldesigner:listOfModificationResidues> +<xxx/> </celldesigner:protein> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/protein4.xml b/converter-CellDesigner/testFiles/invalid/protein4.xml index cfd7e5b23c..f84c2a325f 100644 --- a/converter-CellDesigner/testFiles/invalid/protein4.xml +++ b/converter-CellDesigner/testFiles/invalid/protein4.xml @@ -1,18 +1,18 @@ -<celldesigner:protein id="pr23" name="SDHA" type="GENERIC"> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body> -UniProtKB P31040 SDHA GO:0005749 GO_REF:0000024|UniProtKB:Q0QF01 ISS UniProtKB:Q0QF01 C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20100125 UniProtKB -UniProtKB P31040 SDHA GO:0005749 PMID:7550341 TAS C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20060419 UniProtKB -</body> -</html> -</celldesigner:notes> -<celldesigner:listOfModificationResidues> -<celldesigner:modificationResidue angle="3.141592653589793" name="S176 bla bla" id="rs1" side="none"> -<xxx/> -</celldesigner:modificationResidue> -</celldesigner:listOfModificationResidues> +<celldesigner:protein id="pr23" name="SDHA" type="GENERIC"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body> +UniProtKB P31040 SDHA GO:0005749 GO_REF:0000024|UniProtKB:Q0QF01 ISS UniProtKB:Q0QF01 C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20100125 UniProtKB +UniProtKB P31040 SDHA GO:0005749 PMID:7550341 TAS C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20060419 UniProtKB +</body> +</html> +</celldesigner:notes> +<celldesigner:listOfModificationResidues> +<celldesigner:modificationResidue angle="3.141592653589793" name="S176 bla bla" id="rs1" side="none"> +<xxx/> +</celldesigner:modificationResidue> +</celldesigner:listOfModificationResidues> </celldesigner:protein> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/protein5.xml b/converter-CellDesigner/testFiles/invalid/protein5.xml index cfd7e5b23c..f84c2a325f 100644 --- a/converter-CellDesigner/testFiles/invalid/protein5.xml +++ b/converter-CellDesigner/testFiles/invalid/protein5.xml @@ -1,18 +1,18 @@ -<celldesigner:protein id="pr23" name="SDHA" type="GENERIC"> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body> -UniProtKB P31040 SDHA GO:0005749 GO_REF:0000024|UniProtKB:Q0QF01 ISS UniProtKB:Q0QF01 C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20100125 UniProtKB -UniProtKB P31040 SDHA GO:0005749 PMID:7550341 TAS C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20060419 UniProtKB -</body> -</html> -</celldesigner:notes> -<celldesigner:listOfModificationResidues> -<celldesigner:modificationResidue angle="3.141592653589793" name="S176 bla bla" id="rs1" side="none"> -<xxx/> -</celldesigner:modificationResidue> -</celldesigner:listOfModificationResidues> +<celldesigner:protein id="pr23" name="SDHA" type="GENERIC"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body> +UniProtKB P31040 SDHA GO:0005749 GO_REF:0000024|UniProtKB:Q0QF01 ISS UniProtKB:Q0QF01 C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20100125 UniProtKB +UniProtKB P31040 SDHA GO:0005749 PMID:7550341 TAS C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20060419 UniProtKB +</body> +</html> +</celldesigner:notes> +<celldesigner:listOfModificationResidues> +<celldesigner:modificationResidue angle="3.141592653589793" name="S176 bla bla" id="rs1" side="none"> +<xxx/> +</celldesigner:modificationResidue> +</celldesigner:listOfModificationResidues> </celldesigner:protein> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/protein6.xml b/converter-CellDesigner/testFiles/invalid/protein6.xml index cfd7e5b23c..f84c2a325f 100644 --- a/converter-CellDesigner/testFiles/invalid/protein6.xml +++ b/converter-CellDesigner/testFiles/invalid/protein6.xml @@ -1,18 +1,18 @@ -<celldesigner:protein id="pr23" name="SDHA" type="GENERIC"> -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body> -UniProtKB P31040 SDHA GO:0005749 GO_REF:0000024|UniProtKB:Q0QF01 ISS UniProtKB:Q0QF01 C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20100125 UniProtKB -UniProtKB P31040 SDHA GO:0005749 PMID:7550341 TAS C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20060419 UniProtKB -</body> -</html> -</celldesigner:notes> -<celldesigner:listOfModificationResidues> -<celldesigner:modificationResidue angle="3.141592653589793" name="S176 bla bla" id="rs1" side="none"> -<xxx/> -</celldesigner:modificationResidue> -</celldesigner:listOfModificationResidues> +<celldesigner:protein id="pr23" name="SDHA" type="GENERIC"> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body> +UniProtKB P31040 SDHA GO:0005749 GO_REF:0000024|UniProtKB:Q0QF01 ISS UniProtKB:Q0QF01 C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20100125 UniProtKB +UniProtKB P31040 SDHA GO:0005749 PMID:7550341 TAS C Succinate dehydrogenase [ubiquinone] flavoprotein subunit, mitochondrial A8K5J6|DHSA_HUMAN|IPI00305166|Q16395|Q9UMY5|SDH2|SDHA|SDHF protein taxon:9606 20060419 UniProtKB +</body> +</html> +</celldesigner:notes> +<celldesigner:listOfModificationResidues> +<celldesigner:modificationResidue angle="3.141592653589793" name="S176 bla bla" id="rs1" side="none"> +<xxx/> +</celldesigner:modificationResidue> +</celldesigner:listOfModificationResidues> </celldesigner:protein> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/protein_collection.xml b/converter-CellDesigner/testFiles/invalid/protein_collection.xml index 653c678b4e..b64c6eb849 100644 --- a/converter-CellDesigner/testFiles/invalid/protein_collection.xml +++ b/converter-CellDesigner/testFiles/invalid/protein_collection.xml @@ -1,3 +1,3 @@ -<celldesigner:listOfProteins> -<unkproteinnode/> +<celldesigner:listOfProteins> +<unkproteinnode/> </celldesigner:listOfProteins> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/rna.xml b/converter-CellDesigner/testFiles/invalid/rna.xml index 62e29d7ee2..15e15b96b1 100644 --- a/converter-CellDesigner/testFiles/invalid/rna.xml +++ b/converter-CellDesigner/testFiles/invalid/rna.xml @@ -1,6 +1,6 @@ -<celldesigner:RNA id="rn49" name="TRNAU1" type="RNA"> -<celldesigner:listOfRegions> -<celldesigner:region id="tr1" size="0.0" pos="0.10569105691056911" type="Modification Site"/> -<unknode/> -</celldesigner:listOfRegions> +<celldesigner:RNA id="rn49" name="TRNAU1" type="RNA"> +<celldesigner:listOfRegions> +<celldesigner:region id="tr1" size="0.0" pos="0.10569105691056911" type="Modification Site"/> +<unknode/> +</celldesigner:listOfRegions> </celldesigner:RNA> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/rna2.xml b/converter-CellDesigner/testFiles/invalid/rna2.xml index 84be995a07..1217e85424 100644 --- a/converter-CellDesigner/testFiles/invalid/rna2.xml +++ b/converter-CellDesigner/testFiles/invalid/rna2.xml @@ -1,6 +1,6 @@ -<celldesigner:RNA id="rn49" name="TRNAU1" type="RNA"> -<celldesigner:listOfRegions> -<celldesigner:region id="tr1" size="0.0" pos="0.10569105691056911" type="Modification Site"/> -</celldesigner:listOfRegions> -<unknode/> +<celldesigner:RNA id="rn49" name="TRNAU1" type="RNA"> +<celldesigner:listOfRegions> +<celldesigner:region id="tr1" size="0.0" pos="0.10569105691056911" type="Modification Site"/> +</celldesigner:listOfRegions> +<unknode/> </celldesigner:RNA> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/rna3.xml b/converter-CellDesigner/testFiles/invalid/rna3.xml index 4a5d2d45f1..8ff8c125aa 100644 --- a/converter-CellDesigner/testFiles/invalid/rna3.xml +++ b/converter-CellDesigner/testFiles/invalid/rna3.xml @@ -1,7 +1,7 @@ -<celldesigner:RNA id="rn49" name="TRNAU1" type="RNA"> -<celldesigner:listOfRegions> -<celldesigner:region id="tr1" size="0.0" pos="0.10569105691056911" type="Modification Site"> -<unknode/> -</celldesigner:region > -</celldesigner:listOfRegions> +<celldesigner:RNA id="rn49" name="TRNAU1" type="RNA"> +<celldesigner:listOfRegions> +<celldesigner:region id="tr1" size="0.0" pos="0.10569105691056911" type="Modification Site"> +<unknode/> +</celldesigner:region > +</celldesigner:listOfRegions> </celldesigner:RNA> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/rna_collection.xml b/converter-CellDesigner/testFiles/invalid/rna_collection.xml index 04081ecf74..d3ffb5f3e8 100644 --- a/converter-CellDesigner/testFiles/invalid/rna_collection.xml +++ b/converter-CellDesigner/testFiles/invalid/rna_collection.xml @@ -1,5 +1,5 @@ -<celldesigner:listOfRNAs> -<unknown_node/> -<celldesigner:RNA id="rn1" name="s5" type="RNA"/> -<celldesigner:RNA id="rn2" name="s7" type="RNA"/> +<celldesigner:listOfRNAs> +<unknown_node/> +<celldesigner:RNA id="rn1" name="s5" type="RNA"/> +<celldesigner:RNA id="rn2" name="s7" type="RNA"/> </celldesigner:listOfRNAs> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/sbml_collection.xml b/converter-CellDesigner/testFiles/invalid/sbml_collection.xml index 64fb5055e7..9dc20a3fd8 100644 --- a/converter-CellDesigner/testFiles/invalid/sbml_collection.xml +++ b/converter-CellDesigner/testFiles/invalid/sbml_collection.xml @@ -1,102 +1,102 @@ -<listOfSpecies> -<unknode/> -<species metaid="s1" id="s1" name="s1" compartment="default" initialAmount="0"> -<annotation> -<celldesigner:extension> -<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> -<celldesigner:speciesIdentity> -<celldesigner:class>PROTEIN</celldesigner:class> -<celldesigner:proteinReference>pr1</celldesigner:proteinReference> -</celldesigner:speciesIdentity> -</celldesigner:extension> -</annotation> -</species> -<species metaid="s2" id="s2" name="s2" compartment="default" initialAmount="0"> -<annotation> -<celldesigner:extension> -<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> -<celldesigner:speciesIdentity> -<celldesigner:class>PROTEIN</celldesigner:class> -<celldesigner:proteinReference>pr2</celldesigner:proteinReference> -</celldesigner:speciesIdentity> -</celldesigner:extension> -</annotation> -</species> -<species metaid="s3" id="s3" name="s3" compartment="default" initialAmount="0"> -<annotation> -<celldesigner:extension> -<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> -<celldesigner:speciesIdentity> -<celldesigner:class>GENE</celldesigner:class> -<celldesigner:geneReference>gn1</celldesigner:geneReference> -</celldesigner:speciesIdentity> -</celldesigner:extension> -</annotation> -</species> -<species metaid="s4" id="s4" name="s4" compartment="default" initialAmount="0"> -<annotation> -<celldesigner:extension> -<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> -<celldesigner:speciesIdentity> -<celldesigner:class>GENE</celldesigner:class> -<celldesigner:geneReference>gn2</celldesigner:geneReference> -</celldesigner:speciesIdentity> -</celldesigner:extension> -</annotation> -</species> -<species metaid="s5" id="s5" name="s5" compartment="default" initialAmount="0"> -<annotation> -<celldesigner:extension> -<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> -<celldesigner:speciesIdentity> -<celldesigner:class>RNA</celldesigner:class> -<celldesigner:rnaReference>rn1</celldesigner:rnaReference> -</celldesigner:speciesIdentity> -</celldesigner:extension> -</annotation> -</species> -<species metaid="s6" id="s6" name="s6" compartment="default" initialAmount="0"> -<annotation> -<celldesigner:extension> -<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> -<celldesigner:speciesIdentity> -<celldesigner:class>ANTISENSE_RNA</celldesigner:class> -<celldesigner:antisensernaReference>arn1</celldesigner:antisensernaReference> -</celldesigner:speciesIdentity> -</celldesigner:extension> -</annotation> -</species> -<species metaid="s7" id="s7" name="s7" compartment="default" initialAmount="0"> -<annotation> -<celldesigner:extension> -<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> -<celldesigner:speciesIdentity> -<celldesigner:class>RNA</celldesigner:class> -<celldesigner:rnaReference>rn2</celldesigner:rnaReference> -</celldesigner:speciesIdentity> -</celldesigner:extension> -</annotation> -</species> -<species metaid="s8" id="s8" name="s8" compartment="default" initialAmount="0"> -<annotation> -<celldesigner:extension> -<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> -<celldesigner:speciesIdentity> -<celldesigner:class>ANTISENSE_RNA</celldesigner:class> -<celldesigner:antisensernaReference>arn2</celldesigner:antisensernaReference> -</celldesigner:speciesIdentity> -</celldesigner:extension> -</annotation> -</species> -<species metaid="s9" id="s9" name="s9" compartment="default" initialAmount="0"> -<annotation> -<celldesigner:extension> -<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> -<celldesigner:speciesIdentity> -<celldesigner:class>COMPLEX</celldesigner:class> -<celldesigner:name>s9</celldesigner:name> -</celldesigner:speciesIdentity> -</celldesigner:extension> -</annotation> -</species> +<listOfSpecies> +<unknode/> +<species metaid="s1" id="s1" name="s1" compartment="default" initialAmount="0"> +<annotation> +<celldesigner:extension> +<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> +<celldesigner:speciesIdentity> +<celldesigner:class>PROTEIN</celldesigner:class> +<celldesigner:proteinReference>pr1</celldesigner:proteinReference> +</celldesigner:speciesIdentity> +</celldesigner:extension> +</annotation> +</species> +<species metaid="s2" id="s2" name="s2" compartment="default" initialAmount="0"> +<annotation> +<celldesigner:extension> +<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> +<celldesigner:speciesIdentity> +<celldesigner:class>PROTEIN</celldesigner:class> +<celldesigner:proteinReference>pr2</celldesigner:proteinReference> +</celldesigner:speciesIdentity> +</celldesigner:extension> +</annotation> +</species> +<species metaid="s3" id="s3" name="s3" compartment="default" initialAmount="0"> +<annotation> +<celldesigner:extension> +<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> +<celldesigner:speciesIdentity> +<celldesigner:class>GENE</celldesigner:class> +<celldesigner:geneReference>gn1</celldesigner:geneReference> +</celldesigner:speciesIdentity> +</celldesigner:extension> +</annotation> +</species> +<species metaid="s4" id="s4" name="s4" compartment="default" initialAmount="0"> +<annotation> +<celldesigner:extension> +<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> +<celldesigner:speciesIdentity> +<celldesigner:class>GENE</celldesigner:class> +<celldesigner:geneReference>gn2</celldesigner:geneReference> +</celldesigner:speciesIdentity> +</celldesigner:extension> +</annotation> +</species> +<species metaid="s5" id="s5" name="s5" compartment="default" initialAmount="0"> +<annotation> +<celldesigner:extension> +<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> +<celldesigner:speciesIdentity> +<celldesigner:class>RNA</celldesigner:class> +<celldesigner:rnaReference>rn1</celldesigner:rnaReference> +</celldesigner:speciesIdentity> +</celldesigner:extension> +</annotation> +</species> +<species metaid="s6" id="s6" name="s6" compartment="default" initialAmount="0"> +<annotation> +<celldesigner:extension> +<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> +<celldesigner:speciesIdentity> +<celldesigner:class>ANTISENSE_RNA</celldesigner:class> +<celldesigner:antisensernaReference>arn1</celldesigner:antisensernaReference> +</celldesigner:speciesIdentity> +</celldesigner:extension> +</annotation> +</species> +<species metaid="s7" id="s7" name="s7" compartment="default" initialAmount="0"> +<annotation> +<celldesigner:extension> +<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> +<celldesigner:speciesIdentity> +<celldesigner:class>RNA</celldesigner:class> +<celldesigner:rnaReference>rn2</celldesigner:rnaReference> +</celldesigner:speciesIdentity> +</celldesigner:extension> +</annotation> +</species> +<species metaid="s8" id="s8" name="s8" compartment="default" initialAmount="0"> +<annotation> +<celldesigner:extension> +<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> +<celldesigner:speciesIdentity> +<celldesigner:class>ANTISENSE_RNA</celldesigner:class> +<celldesigner:antisensernaReference>arn2</celldesigner:antisensernaReference> +</celldesigner:speciesIdentity> +</celldesigner:extension> +</annotation> +</species> +<species metaid="s9" id="s9" name="s9" compartment="default" initialAmount="0"> +<annotation> +<celldesigner:extension> +<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> +<celldesigner:speciesIdentity> +<celldesigner:class>COMPLEX</celldesigner:class> +<celldesigner:name>s9</celldesigner:name> +</celldesigner:speciesIdentity> +</celldesigner:extension> +</annotation> +</species> </listOfSpecies> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/species_alias.xml b/converter-CellDesigner/testFiles/invalid/species_alias.xml index 49e4039690..beec5151a7 100644 --- a/converter-CellDesigner/testFiles/invalid/species_alias.xml +++ b/converter-CellDesigner/testFiles/invalid/species_alias.xml @@ -1,19 +1,19 @@ -<celldesigner:speciesAlias id="sa36" species="ss78" compartmentAlias="ca1"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="11813.0" y="2840.5" w="80.0" h="25.0"/> -<celldesigner:font size="16"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="10416.0" y="2424.5"/> -<celldesigner:boxSize width="80.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> +<celldesigner:speciesAlias id="sa36" species="ss78" compartmentAlias="ca1"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="11813.0" y="2840.5" w="80.0" h="25.0"/> +<celldesigner:font size="16"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="10416.0" y="2424.5"/> +<celldesigner:boxSize width="80.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> </celldesigner:speciesAlias> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/species_alias2.xml b/converter-CellDesigner/testFiles/invalid/species_alias2.xml index 9ae72330ea..45c1c2f61a 100644 --- a/converter-CellDesigner/testFiles/invalid/species_alias2.xml +++ b/converter-CellDesigner/testFiles/invalid/species_alias2.xml @@ -1,20 +1,20 @@ -<celldesigner:speciesAlias id="sa36" species="s78" compartmentAlias="ca1"> -<unk/> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="11813.0" y="2840.5" w="80.0" h="25.0"/> -<celldesigner:font size="16"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="10416.0" y="2424.5"/> -<celldesigner:boxSize width="80.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> +<celldesigner:speciesAlias id="sa36" species="s78" compartmentAlias="ca1"> +<unk/> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="11813.0" y="2840.5" w="80.0" h="25.0"/> +<celldesigner:font size="16"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="10416.0" y="2424.5"/> +<celldesigner:boxSize width="80.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> </celldesigner:speciesAlias> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/species_alias3.xml b/converter-CellDesigner/testFiles/invalid/species_alias3.xml index c082780aa1..a9e14fad3e 100644 --- a/converter-CellDesigner/testFiles/invalid/species_alias3.xml +++ b/converter-CellDesigner/testFiles/invalid/species_alias3.xml @@ -1,19 +1,19 @@ -<celldesigner:speciesAlias id="sa36" species="s78" compartmentAlias="ca1"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="11813.0" y="2840.5" w="80.0" h="25.0"/> -<celldesigner:font size="16"/> -<celldesigner:view state="unusual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="10416.0" y="2424.5"/> -<celldesigner:boxSize width="80.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> +<celldesigner:speciesAlias id="sa36" species="s78" compartmentAlias="ca1"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="11813.0" y="2840.5" w="80.0" h="25.0"/> +<celldesigner:font size="16"/> +<celldesigner:view state="unusual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="10416.0" y="2424.5"/> +<celldesigner:boxSize width="80.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> </celldesigner:speciesAlias> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/species_alias4.xml b/converter-CellDesigner/testFiles/invalid/species_alias4.xml index ec93873ff7..0a65186bf8 100644 --- a/converter-CellDesigner/testFiles/invalid/species_alias4.xml +++ b/converter-CellDesigner/testFiles/invalid/species_alias4.xml @@ -1,19 +1,19 @@ -<celldesigner:speciesAlias id="sa36" species="s78" compartmentAlias="ccca1"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="11813.0" y="2840.5" w="80.0" h="25.0"/> -<celldesigner:font size="16"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="10416.0" y="2424.5"/> -<celldesigner:boxSize width="80.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> +<celldesigner:speciesAlias id="sa36" species="s78" compartmentAlias="ccca1"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="11813.0" y="2840.5" w="80.0" h="25.0"/> +<celldesigner:font size="16"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="10416.0" y="2424.5"/> +<celldesigner:boxSize width="80.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> </celldesigner:speciesAlias> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/species_alias5.xml b/converter-CellDesigner/testFiles/invalid/species_alias5.xml index fe54056792..f8c77a3503 100644 --- a/converter-CellDesigner/testFiles/invalid/species_alias5.xml +++ b/converter-CellDesigner/testFiles/invalid/species_alias5.xml @@ -1,19 +1,19 @@ -<celldesigner:speciesAlias id="sa36" species="s78" complexSpeciesAlias="ccca1"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="11813.0" y="2840.5" w="80.0" h="25.0"/> -<celldesigner:font size="16"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="10416.0" y="2424.5"/> -<celldesigner:boxSize width="80.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> +<celldesigner:speciesAlias id="sa36" species="s78" complexSpeciesAlias="ccca1"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="11813.0" y="2840.5" w="80.0" h="25.0"/> +<celldesigner:font size="16"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="10416.0" y="2424.5"/> +<celldesigner:boxSize width="80.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> </celldesigner:speciesAlias> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/species_alias6.xml b/converter-CellDesigner/testFiles/invalid/species_alias6.xml index 6dfcf60c59..9f5bd07fde 100644 --- a/converter-CellDesigner/testFiles/invalid/species_alias6.xml +++ b/converter-CellDesigner/testFiles/invalid/species_alias6.xml @@ -1,19 +1,19 @@ -<celldesigner:speciesAlias id="sa36" species="s78" > -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="11813.0" y="2840.5" w="80.0" h="25.0"/> -<celldesigner:font size="16"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="10416.0" y="2424.5"/> -<celldesigner:boxSize width="80.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="unknown" angle="-1.5707963267948966"/> +<celldesigner:speciesAlias id="sa36" species="s78" > +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="11813.0" y="2840.5" w="80.0" h="25.0"/> +<celldesigner:font size="16"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="10416.0" y="2424.5"/> +<celldesigner:boxSize width="80.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="unknown" angle="-1.5707963267948966"/> </celldesigner:speciesAlias> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/invalid/species_alias_collection.xml b/converter-CellDesigner/testFiles/invalid/species_alias_collection.xml index fd531560a8..9d3b3607e2 100644 --- a/converter-CellDesigner/testFiles/invalid/species_alias_collection.xml +++ b/converter-CellDesigner/testFiles/invalid/species_alias_collection.xml @@ -1,79 +1,79 @@ -<celldesigner:listOfSpeciesAliases> -<unk/> -<celldesigner:speciesAlias id="sa8" species="s2594"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="510.83547998986796" y="449.34999999999997" w="261.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="1459.6161980749753" y="5346.0"/> -<celldesigner:boxSize width="261.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa9" species="s2506"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="506.33547998986796" y="613.8499999999999" w="262.0" h="40.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="1459.1161980749753" y="5539.5"/> -<celldesigner:boxSize width="262.0" height="40.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa10" species="s2595"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="282.0" y="75.0" w="134.0" h="94.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="134.0" height="94.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccffcc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="0.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -<celldesigner:speciesAlias id="sa11" species="s2596"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="483.0" y="76.0" w="82.0" h="96.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="82.0" height="96.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccffcc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="0.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> -</celldesigner:listOfSpeciesAliases> +<celldesigner:listOfSpeciesAliases> +<unk/> +<celldesigner:speciesAlias id="sa8" species="s2594"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="510.83547998986796" y="449.34999999999997" w="261.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="1459.6161980749753" y="5346.0"/> +<celldesigner:boxSize width="261.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa9" species="s2506"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="506.33547998986796" y="613.8499999999999" w="262.0" h="40.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="1459.1161980749753" y="5539.5"/> +<celldesigner:boxSize width="262.0" height="40.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa10" species="s2595"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="282.0" y="75.0" w="134.0" h="94.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="134.0" height="94.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="0.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa11" species="s2596"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="483.0" y="76.0" w="82.0" h="96.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="82.0" height="96.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="0.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> +</celldesigner:listOfSpeciesAliases> diff --git a/converter-CellDesigner/testFiles/xmlNodeTestExamples/block_diagrams.xml b/converter-CellDesigner/testFiles/xmlNodeTestExamples/block_diagrams.xml index 9d55f16950..15d462cb5d 100644 --- a/converter-CellDesigner/testFiles/xmlNodeTestExamples/block_diagrams.xml +++ b/converter-CellDesigner/testFiles/xmlNodeTestExamples/block_diagrams.xml @@ -1,15 +1,15 @@ -<celldesigner:listOfBlockDiagrams> -<celldesigner:blockDiagram protein="pr1"> -<celldesigner:canvas height="312" width="476"/> -<celldesigner:block height="90" nameOffsetX="-8.0" nameOffsetY="-8.0" width="140" x="100" y="50"/> -<celldesigner:halo height="150" width="200" x="70" y="20"/> -<celldesigner:listOfResiduesInBlockDiagram> -<celldesigner:residueInBlockDiagram id="0" offsetX="-27.0" type="dontcare"/> -</celldesigner:listOfResiduesInBlockDiagram> -<celldesigner:listOfExternalNamesForResidue/> -<celldesigner:listOfBindingSitesInBlockDiagram/> -<celldesigner:listOfEffectSitesInBlockDiagram/> -<celldesigner:listOfInternalOperatorsInBlockDiagram/> -<celldesigner:listOfInternalLinksInBlockDiagram/> -</celldesigner:blockDiagram> -</celldesigner:listOfBlockDiagrams> +<celldesigner:listOfBlockDiagrams> +<celldesigner:blockDiagram protein="pr1"> +<celldesigner:canvas height="312" width="476"/> +<celldesigner:block height="90" nameOffsetX="-8.0" nameOffsetY="-8.0" width="140" x="100" y="50"/> +<celldesigner:halo height="150" width="200" x="70" y="20"/> +<celldesigner:listOfResiduesInBlockDiagram> +<celldesigner:residueInBlockDiagram id="0" offsetX="-27.0" type="dontcare"/> +</celldesigner:listOfResiduesInBlockDiagram> +<celldesigner:listOfExternalNamesForResidue/> +<celldesigner:listOfBindingSitesInBlockDiagram/> +<celldesigner:listOfEffectSitesInBlockDiagram/> +<celldesigner:listOfInternalOperatorsInBlockDiagram/> +<celldesigner:listOfInternalLinksInBlockDiagram/> +</celldesigner:blockDiagram> +</celldesigner:listOfBlockDiagrams> diff --git a/converter-CellDesigner/testFiles/xmlNodeTestExamples/cd_complex_alias_with_empty_state.xml b/converter-CellDesigner/testFiles/xmlNodeTestExamples/cd_complex_alias_with_empty_state.xml index d9f1852510..bf37613db8 100644 --- a/converter-CellDesigner/testFiles/xmlNodeTestExamples/cd_complex_alias_with_empty_state.xml +++ b/converter-CellDesigner/testFiles/xmlNodeTestExamples/cd_complex_alias_with_empty_state.xml @@ -1,21 +1,21 @@ -<celldesigner:complexSpeciesAlias id="csa1" species="s2597"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="744.0" y="0.0" w="100.0" h="120.0"/> -<celldesigner:font size="12"/> -<celldesigner:view state="usual"/> -<celldesigner:backupSize w="0.0" h="0.0"/> -<celldesigner:backupView state="none"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="100.0" height="120.0"/> -<celldesigner:singleLine width="2.0"/> -<celldesigner:paint color="fff7f7f7" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="2.0"/> -<celldesigner:paint color="fff7f7f7" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="" angle="-1.5707963267948966"/> -</celldesigner:complexSpeciesAlias> +<celldesigner:complexSpeciesAlias id="csa1" species="s2597"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="744.0" y="0.0" w="100.0" h="120.0"/> +<celldesigner:font size="12"/> +<celldesigner:view state="usual"/> +<celldesigner:backupSize w="0.0" h="0.0"/> +<celldesigner:backupView state="none"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="100.0" height="120.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="2.0"/> +<celldesigner:paint color="fff7f7f7" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="" angle="-1.5707963267948966"/> +</celldesigner:complexSpeciesAlias> diff --git a/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes.xml b/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes.xml index 11d122e7e9..07e958faee 100644 --- a/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes.xml +++ b/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes.xml @@ -1,10 +1,10 @@ -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body> -Description: some notes -</body> -</html> -</celldesigner:notes> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body> +Description: some notes +</body> +</html> +</celldesigner:notes> diff --git a/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes2.xml b/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes2.xml index c16aea799b..fe5db406a2 100644 --- a/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes2.xml +++ b/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes2.xml @@ -1,23 +1,23 @@ -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body> -Symbol: SNCA -Previous Symbols: X1, X2, X3 -Synonyms: Y1, Y2, Y3 -Name: Synuclein alpha (or something) -Abbreviation: SN -Formula: form -MechanicalConfidenceScore: 2 -LowerBound: 2 -UpperBound: 2 -Subsystem: 2 -GeneProteinReaction: 1 -ChargedFormula: 1 -Charge:15 -some notes -</body> -</html> -</celldesigner:notes> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body> +Symbol: SNCA +Previous Symbols: X1, X2, X3 +Synonyms: Y1, Y2, Y3 +Name: Synuclein alpha (or something) +Abbreviation: SN +Formula: form +MechanicalConfidenceScore: 2 +LowerBound: 2 +UpperBound: 2 +Subsystem: 2 +GeneProteinReaction: 1 +ChargedFormula: 1 +Charge:15 +some notes +</body> +</html> +</celldesigner:notes> diff --git a/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes3.xml b/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes3.xml index 8a9da0796e..68f0aadbf7 100644 --- a/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes3.xml +++ b/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes3.xml @@ -1,11 +1,11 @@ -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body> -Description: some notes -some notes -</body> -</html> -</celldesigner:notes> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body> +Description: some notes +some notes +</body> +</html> +</celldesigner:notes> diff --git a/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes4.xml b/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes4.xml index aae1b31a33..444dade224 100644 --- a/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes4.xml +++ b/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes4.xml @@ -1,11 +1,11 @@ -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body> -Description: some notes some notes Symbol: strange2 -some notes some notes Symbol: strange3 -</body> -</html> -</celldesigner:notes> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body> +Description: some notes some notes Symbol: strange2 +some notes some notes Symbol: strange3 +</body> +</html> +</celldesigner:notes> diff --git a/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes5.xml b/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes5.xml index f416ace968..b4d6531235 100644 --- a/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes5.xml +++ b/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes5.xml @@ -1,43 +1,43 @@ -<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> -<rdfa:Description rdf:about="#s6095"> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:hgnc:18429"/></rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:panther.family:PTHR11695"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_036344.2"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_001139580.1"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:panther.family:ADH_Sf_Zn"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:kegg.genes:hsa:22949"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_001139581.1"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:ncbigene:22949"/> -</rdf:Bag> -</bqbiol:hasVersion> -</rdf:Description> +<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> +<rdfa:Description rdf:about="#s6095"> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:hgnc:18429"/></rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:panther.family:PTHR11695"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_036344.2"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_001139580.1"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:panther.family:ADH_Sf_Zn"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:kegg.genes:hsa:22949"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_001139581.1"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:ncbigene:22949"/> +</rdf:Bag> +</bqbiol:hasVersion> +</rdf:Description> </rdf:RDF> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes_invalid_charge.xml b/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes_invalid_charge.xml index 1df09c4a02..8e2a9d5f76 100644 --- a/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes_invalid_charge.xml +++ b/converter-CellDesigner/testFiles/xmlNodeTestExamples/notes_invalid_charge.xml @@ -1,11 +1,11 @@ -<celldesigner:notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body> -Charge:a15 -some notes -</body> -</html> -</celldesigner:notes> +<celldesigner:notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body> +Charge:a15 +some notes +</body> +</html> +</celldesigner:notes> diff --git a/converter-CellDesigner/testFiles/xmlNodeTestExamples/sbml_gene.xml b/converter-CellDesigner/testFiles/xmlNodeTestExamples/sbml_gene.xml index 0c05a8d203..3d176259f8 100644 --- a/converter-CellDesigner/testFiles/xmlNodeTestExamples/sbml_gene.xml +++ b/converter-CellDesigner/testFiles/xmlNodeTestExamples/sbml_gene.xml @@ -1,73 +1,73 @@ -<species metaid="s5916" id="s5916" name="Ptgr1" compartment="c20" initialAmount="0" charge="0"> -<notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body> -Symbol: PTGR1 -Name: prostaglandin reductase 1 -Description: RecName: Full=Prostaglandin reductase 1; Short=PRG-1; EC=1.3.1.-; AltName: Full=15-oxoprostaglandin 13-reductase; EC=1.3.1.48; AltName: Full=NADP-dependent leukotriene B4 12-hydroxydehydrogenase; EC=1.3.1.74; -Previous Symbols: LTB4DH -Synonyms: LTB4DH -<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> -<rdf:Description rdf:about="#s6095"> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:ncbigene:22949"/> -</rdf:Bag> -</bqbiol:hasVersion> -</rdf:Description> -</rdf:RDF> -</body> -</html> -</notes> -<annotation> -<celldesigner:extension> -<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> -<celldesigner:speciesIdentity> -<celldesigner:class>GENE</celldesigner:class> -<celldesigner:geneReference>gn95</celldesigner:geneReference> -</celldesigner:speciesIdentity> -</celldesigner:extension> -<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> -<rdf:Description rdf:about="#s5916"> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:hgnc:18429"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:panther.family%3APTHR11695"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_036344.2"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_001139580.1"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:panther.family%3AADH_Sf_Zn"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:kegg.genes:hsa%3A22949"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_001139581.1"/> -</rdf:Bag> -</bqbiol:hasVersion> -</rdf:Description> -</rdf:RDF> -</annotation> +<species metaid="s5916" id="s5916" name="Ptgr1" compartment="c20" initialAmount="0" charge="0"> +<notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body> +Symbol: PTGR1 +Name: prostaglandin reductase 1 +Description: RecName: Full=Prostaglandin reductase 1; Short=PRG-1; EC=1.3.1.-; AltName: Full=15-oxoprostaglandin 13-reductase; EC=1.3.1.48; AltName: Full=NADP-dependent leukotriene B4 12-hydroxydehydrogenase; EC=1.3.1.74; +Previous Symbols: LTB4DH +Synonyms: LTB4DH +<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> +<rdf:Description rdf:about="#s6095"> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:ncbigene:22949"/> +</rdf:Bag> +</bqbiol:hasVersion> +</rdf:Description> +</rdf:RDF> +</body> +</html> +</notes> +<annotation> +<celldesigner:extension> +<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> +<celldesigner:speciesIdentity> +<celldesigner:class>GENE</celldesigner:class> +<celldesigner:geneReference>gn95</celldesigner:geneReference> +</celldesigner:speciesIdentity> +</celldesigner:extension> +<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> +<rdf:Description rdf:about="#s5916"> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:hgnc:18429"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:panther.family%3APTHR11695"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_036344.2"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_001139580.1"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:panther.family%3AADH_Sf_Zn"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:kegg.genes:hsa%3A22949"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_001139581.1"/> +</rdf:Bag> +</bqbiol:hasVersion> +</rdf:Description> +</rdf:RDF> +</annotation> </species> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/xmlNodeTestExamples/sbml_ion.xml b/converter-CellDesigner/testFiles/xmlNodeTestExamples/sbml_ion.xml index 0562f1e849..5c2222a435 100644 --- a/converter-CellDesigner/testFiles/xmlNodeTestExamples/sbml_ion.xml +++ b/converter-CellDesigner/testFiles/xmlNodeTestExamples/sbml_ion.xml @@ -1,124 +1,124 @@ -<species metaid="s6029" id="s6029" name="Pi" compartment="c1" initialConcentration="0" charge="0"> -<notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body> -Long Name: PiSynonym: Synonym not specifiedAccession: U02720 -Symbol: SERPINA1 -Name: serpin peptidase inhibitor, clade A (alpha-1 antiproteinase, antitrypsin), member 1 -Description: RecName: Full=Alpha-1-antitrypsin; AltName: Full=Alpha-1 protease inhibitor; AltName: Full=Alpha-1-antiproteinase; AltName: Full=Serpin A1; Contains: RecName: Full=Short peptide from AAT; Short=SPAAT; Flags: Precursor; -Previous Symbols: PI -Synonyms: AAT, PI -<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> -<rdf:Description rdf:about="#s6095"> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:ncbigene:5265"/> -</rdf:Bag> -</bqbiol:hasVersion> -</rdf:Description> -</rdf:RDF> -</body> -</html> -</notes> -<annotation> -<celldesigner:extension> -<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> -<celldesigner:speciesIdentity> -<celldesigner:class>ION</celldesigner:class> -<celldesigner:name>Pi</celldesigner:name> -</celldesigner:speciesIdentity> -</celldesigner:extension> -<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> -<rdf:Description rdf:about="#s6029"> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_001121172.1"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:panther.family%3AProt_inh_serpin"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:pharmgkb.pathways:PA35509"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:panther.family%3APTHR11461"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_001121174.1"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:hgnc:8941"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_001002235.1"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_001121175.1"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_001121176.1"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_001121179.1"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_001121173.1"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_001121177.1"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:reactome:REACT_3705"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_001121178.1"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_001002236.1"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_000286.3"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:kegg.genes:hsa%3A5265"/> -</rdf:Bag> -</bqbiol:hasVersion> -</rdf:Description> -</rdf:RDF> -</annotation> +<species metaid="s6029" id="s6029" name="Pi" compartment="c1" initialConcentration="0" charge="0"> +<notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body> +Long Name: PiSynonym: Synonym not specifiedAccession: U02720 +Symbol: SERPINA1 +Name: serpin peptidase inhibitor, clade A (alpha-1 antiproteinase, antitrypsin), member 1 +Description: RecName: Full=Alpha-1-antitrypsin; AltName: Full=Alpha-1 protease inhibitor; AltName: Full=Alpha-1-antiproteinase; AltName: Full=Serpin A1; Contains: RecName: Full=Short peptide from AAT; Short=SPAAT; Flags: Precursor; +Previous Symbols: PI +Synonyms: AAT, PI +<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> +<rdf:Description rdf:about="#s6095"> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:ncbigene:5265"/> +</rdf:Bag> +</bqbiol:hasVersion> +</rdf:Description> +</rdf:RDF> +</body> +</html> +</notes> +<annotation> +<celldesigner:extension> +<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> +<celldesigner:speciesIdentity> +<celldesigner:class>ION</celldesigner:class> +<celldesigner:name>Pi</celldesigner:name> +</celldesigner:speciesIdentity> +</celldesigner:extension> +<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> +<rdf:Description rdf:about="#s6029"> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_001121172.1"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:panther.family%3AProt_inh_serpin"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:pharmgkb.pathways:PA35509"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:panther.family%3APTHR11461"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_001121174.1"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:hgnc:8941"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_001002235.1"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_001121175.1"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_001121176.1"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_001121179.1"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_001121173.1"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_001121177.1"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:reactome:REACT_3705"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_001121178.1"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_001002236.1"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_000286.3"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:kegg.genes:hsa%3A5265"/> +</rdf:Bag> +</bqbiol:hasVersion> +</rdf:Description> +</rdf:RDF> +</annotation> </species> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/xmlNodeTestExamples/sbml_protein.xml b/converter-CellDesigner/testFiles/xmlNodeTestExamples/sbml_protein.xml index 586c93a1cb..0f8d55a9f6 100644 --- a/converter-CellDesigner/testFiles/xmlNodeTestExamples/sbml_protein.xml +++ b/converter-CellDesigner/testFiles/xmlNodeTestExamples/sbml_protein.xml @@ -1,63 +1,63 @@ -<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> -<notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body>protein tyrosine phosphatase, receptor type, C -also known as CED45 -Symbol: PTPRC -Name: protein tyrosine phosphatase, receptor type, C -Description: RecName: Full=Receptor-type tyrosine-protein phosphatase C; EC=3.1.3.48; AltName: Full=Leukocyte common antigen; Short=L-CA; AltName: Full=T200; AltName: CD_antigen=CD45; Flags: Precursor; -Previous Symbols: CD45 -Synonyms: CD45 -<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> -<rdf:Description rdf:about="#s5456"> -<bqbiol:is> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:entrez.gene:5788"/></rdf:Bag> -</bqbiol:is> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_002829.2"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:reactome:REACT_13296"/> -</rdf:Bag> -</bqbiol:hasVersion> -</rdf:Description> -</rdf:RDF> -</body> -</html> -</notes> -<annotation> -<celldesigner:extension> -<celldesigner:positionToCompartment>transmembrane</celldesigner:positionToCompartment> -<celldesigner:speciesIdentity> -<celldesigner:class>PROTEIN</celldesigner:class> -<celldesigner:proteinReference>pr1116</celldesigner:proteinReference> -</celldesigner:speciesIdentity> -</celldesigner:extension> -<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> -<rdf:Description rdf:about="#s5456"> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_563578.1"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:pharmgkb.pathways:PA34011"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:hgnc:9666"/> -</rdf:Bag> -</bqbiol:hasVersion> -</rdf:Description> -</rdf:RDF> -</annotation> +<species metaid="s5456" id="s5456" name="PTPRC" compartment="c27" initialAmount="0" charge="0"> +<notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body>protein tyrosine phosphatase, receptor type, C +also known as CED45 +Symbol: PTPRC +Name: protein tyrosine phosphatase, receptor type, C +Description: RecName: Full=Receptor-type tyrosine-protein phosphatase C; EC=3.1.3.48; AltName: Full=Leukocyte common antigen; Short=L-CA; AltName: Full=T200; AltName: CD_antigen=CD45; Flags: Precursor; +Previous Symbols: CD45 +Synonyms: CD45 +<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> +<rdf:Description rdf:about="#s5456"> +<bqbiol:is> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:entrez.gene:5788"/></rdf:Bag> +</bqbiol:is> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_002829.2"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:reactome:REACT_13296"/> +</rdf:Bag> +</bqbiol:hasVersion> +</rdf:Description> +</rdf:RDF> +</body> +</html> +</notes> +<annotation> +<celldesigner:extension> +<celldesigner:positionToCompartment>transmembrane</celldesigner:positionToCompartment> +<celldesigner:speciesIdentity> +<celldesigner:class>PROTEIN</celldesigner:class> +<celldesigner:proteinReference>pr1116</celldesigner:proteinReference> +</celldesigner:speciesIdentity> +</celldesigner:extension> +<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> +<rdf:Description rdf:about="#s5456"> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_563578.1"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:pharmgkb.pathways:PA34011"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:hgnc:9666"/> +</rdf:Bag> +</bqbiol:hasVersion> +</rdf:Description> +</rdf:RDF> +</annotation> </species> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/xmlNodeTestExamples/sbml_rna.xml b/converter-CellDesigner/testFiles/xmlNodeTestExamples/sbml_rna.xml index 2531787c25..a848f327dc 100644 --- a/converter-CellDesigner/testFiles/xmlNodeTestExamples/sbml_rna.xml +++ b/converter-CellDesigner/testFiles/xmlNodeTestExamples/sbml_rna.xml @@ -1,78 +1,78 @@ -<species metaid="s5914" id="s5914" name="Fmo3" compartment="c20" initialAmount="0" charge="0"> -<notes> -<html xmlns="http://www.w3.org/1999/xhtml"> -<head> -<title/> -</head> -<body> -Symbol: FMO3 -Name: flavin containing monooxygenase 3 -Description: RecName: Full=Dimethylaniline monooxygenase [N-oxide-forming] 3; EC=1.14.13.8; AltName: Full=Dimethylaniline oxidase 3; AltName: Full=FMO II; AltName: Full=FMO form 2; AltName: Full=Hepatic flavin-containing monooxygenase 3; Short=FMO 3; -Previous Symbols: -Synonyms: -<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> -<rdf:Description rdf:about="#s6095"> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:ncbigene:2328"/> -</rdf:Bag> -</bqbiol:hasVersion> -</rdf:Description> -</rdf:RDF> -</body> -</html> -</notes> -<annotation> -<celldesigner:extension> -<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> -<celldesigner:speciesIdentity> -<celldesigner:class>RNA</celldesigner:class> -<celldesigner:rnaReference>rn101</celldesigner:rnaReference> -</celldesigner:speciesIdentity> -</celldesigner:extension> -<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> -<rdf:Description rdf:about="#s5914"> -<bqbiol:isVersionOf> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:pubmed:8486388"/> -</rdf:Bag> -</bqbiol:isVersionOf> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_001002294.1"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:reactome:REACT_5740"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:pharmgkb.pathways:PA166"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:kegg.genes:hsa%3A2328"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:refseq:NP_008825.4"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:hasVersion> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:hgnc:3771"/> -</rdf:Bag> -</bqbiol:hasVersion> -<bqbiol:isVersionOf> -<rdf:Bag> -<rdf:li rdf:resource="urn:miriam:pubmed:9417913"/> -</rdf:Bag> -</bqbiol:isVersionOf> -</rdf:Description> -</rdf:RDF> -</annotation> +<species metaid="s5914" id="s5914" name="Fmo3" compartment="c20" initialAmount="0" charge="0"> +<notes> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title/> +</head> +<body> +Symbol: FMO3 +Name: flavin containing monooxygenase 3 +Description: RecName: Full=Dimethylaniline monooxygenase [N-oxide-forming] 3; EC=1.14.13.8; AltName: Full=Dimethylaniline oxidase 3; AltName: Full=FMO II; AltName: Full=FMO form 2; AltName: Full=Hepatic flavin-containing monooxygenase 3; Short=FMO 3; +Previous Symbols: +Synonyms: +<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> +<rdf:Description rdf:about="#s6095"> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:ncbigene:2328"/> +</rdf:Bag> +</bqbiol:hasVersion> +</rdf:Description> +</rdf:RDF> +</body> +</html> +</notes> +<annotation> +<celldesigner:extension> +<celldesigner:positionToCompartment>inside</celldesigner:positionToCompartment> +<celldesigner:speciesIdentity> +<celldesigner:class>RNA</celldesigner:class> +<celldesigner:rnaReference>rn101</celldesigner:rnaReference> +</celldesigner:speciesIdentity> +</celldesigner:extension> +<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:vCard="http://www.w3.org/2001/vcard-rdf/3.0#" xmlns:bqbiol="http://biomodels.net/biology-qualifiers/" xmlns:bqmodel="http://biomodels.net/model-qualifiers/"> +<rdf:Description rdf:about="#s5914"> +<bqbiol:isVersionOf> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:pubmed:8486388"/> +</rdf:Bag> +</bqbiol:isVersionOf> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_001002294.1"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:reactome:REACT_5740"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:pharmgkb.pathways:PA166"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:kegg.genes:hsa%3A2328"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:refseq:NP_008825.4"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:hasVersion> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:hgnc:3771"/> +</rdf:Bag> +</bqbiol:hasVersion> +<bqbiol:isVersionOf> +<rdf:Bag> +<rdf:li rdf:resource="urn:miriam:pubmed:9417913"/> +</rdf:Bag> +</bqbiol:isVersionOf> +</rdf:Description> +</rdf:RDF> +</annotation> </species> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/xmlNodeTestExamples/species_alias.xml b/converter-CellDesigner/testFiles/xmlNodeTestExamples/species_alias.xml index fa35a946eb..f3e98a7910 100644 --- a/converter-CellDesigner/testFiles/xmlNodeTestExamples/species_alias.xml +++ b/converter-CellDesigner/testFiles/xmlNodeTestExamples/species_alias.xml @@ -1,19 +1,19 @@ -<celldesigner:speciesAlias id="sa36" species="s78" compartmentAlias="ca1"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="11813.0" y="2840.5" w="80.0" h="25.0"/> -<celldesigner:font size="16"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="10416.0" y="2424.5"/> -<celldesigner:boxSize width="80.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info angle="-1.5707963267948966"/> +<celldesigner:speciesAlias id="sa36" species="s78" compartmentAlias="ca1"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="11813.0" y="2840.5" w="80.0" h="25.0"/> +<celldesigner:font size="16"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="10416.0" y="2424.5"/> +<celldesigner:boxSize width="80.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info angle="-1.5707963267948966"/> </celldesigner:speciesAlias> \ No newline at end of file diff --git a/converter-CellDesigner/testFiles/xmlNodeTestExamples/species_alias_with_font.xml b/converter-CellDesigner/testFiles/xmlNodeTestExamples/species_alias_with_font.xml index b689e984c9..893947c964 100644 --- a/converter-CellDesigner/testFiles/xmlNodeTestExamples/species_alias_with_font.xml +++ b/converter-CellDesigner/testFiles/xmlNodeTestExamples/species_alias_with_font.xml @@ -1,19 +1,19 @@ -<celldesigner:speciesAlias id="sa1" species="s78"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="78.0" y="207.0" w="307.0" h="110.0"/> -<celldesigner:font size="30"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="307.0" height="110.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccffcc" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="0.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> -</celldesigner:speciesAlias> +<celldesigner:speciesAlias id="sa1" species="s78"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="78.0" y="207.0" w="307.0" h="110.0"/> +<celldesigner:font size="30"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="307.0" height="110.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccffcc" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="0.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> +</celldesigner:speciesAlias> diff --git a/converter-CellDesigner/testFiles/xmlNodeTestExamples/species_alias_without_state.xml b/converter-CellDesigner/testFiles/xmlNodeTestExamples/species_alias_without_state.xml index 0c4992aaf3..267d16430a 100644 --- a/converter-CellDesigner/testFiles/xmlNodeTestExamples/species_alias_without_state.xml +++ b/converter-CellDesigner/testFiles/xmlNodeTestExamples/species_alias_without_state.xml @@ -1,19 +1,19 @@ -<celldesigner:speciesAlias id="sa36" species="s78" compartmentAlias="ca1"> -<celldesigner:activity>inactive</celldesigner:activity> -<celldesigner:bounds x="11813.0" y="2840.5" w="80.0" h="25.0"/> -<celldesigner:font size="16"/> -<celldesigner:view state="usual"/> -<celldesigner:usualView> -<celldesigner:innerPosition x="10416.0" y="2424.5"/> -<celldesigner:boxSize width="80.0" height="25.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="ffccff66" scheme="Color"/> -</celldesigner:usualView> -<celldesigner:briefView> -<celldesigner:innerPosition x="0.0" y="0.0"/> -<celldesigner:boxSize width="80.0" height="60.0"/> -<celldesigner:singleLine width="1.0"/> -<celldesigner:paint color="3fff0000" scheme="Color"/> -</celldesigner:briefView> -<celldesigner:info state="empty" angle="-1.5707963267948966"/> +<celldesigner:speciesAlias id="sa36" species="s78" compartmentAlias="ca1"> +<celldesigner:activity>inactive</celldesigner:activity> +<celldesigner:bounds x="11813.0" y="2840.5" w="80.0" h="25.0"/> +<celldesigner:font size="16"/> +<celldesigner:view state="usual"/> +<celldesigner:usualView> +<celldesigner:innerPosition x="10416.0" y="2424.5"/> +<celldesigner:boxSize width="80.0" height="25.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="ffccff66" scheme="Color"/> +</celldesigner:usualView> +<celldesigner:briefView> +<celldesigner:innerPosition x="0.0" y="0.0"/> +<celldesigner:boxSize width="80.0" height="60.0"/> +<celldesigner:singleLine width="1.0"/> +<celldesigner:paint color="3fff0000" scheme="Color"/> +</celldesigner:briefView> +<celldesigner:info state="empty" angle="-1.5707963267948966"/> </celldesigner:speciesAlias> \ No newline at end of file diff --git a/converter/src/main/java/lcsb/mapviewer/converter/ComplexZipConverter.java b/converter/src/main/java/lcsb/mapviewer/converter/ComplexZipConverter.java index 6e3adb813d..c6ec75fd87 100644 --- a/converter/src/main/java/lcsb/mapviewer/converter/ComplexZipConverter.java +++ b/converter/src/main/java/lcsb/mapviewer/converter/ComplexZipConverter.java @@ -1,421 +1,421 @@ -package lcsb.mapviewer.converter; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.lang.reflect.Modifier; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.Set; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; - -import org.apache.commons.io.FilenameUtils; -import org.apache.commons.io.IOUtils; -import org.apache.log4j.Logger; - -import lcsb.mapviewer.common.exception.InvalidArgumentException; -import lcsb.mapviewer.common.exception.InvalidClassException; -import lcsb.mapviewer.common.exception.NotImplementedException; -import lcsb.mapviewer.converter.zip.DataMiningZipEntryFile; -import lcsb.mapviewer.converter.zip.ImageZipEntryFile; -import lcsb.mapviewer.converter.zip.LayoutZipEntryFile; -import lcsb.mapviewer.converter.zip.ModelZipEntryFile; -import lcsb.mapviewer.converter.zip.ZipEntryFile; -import lcsb.mapviewer.model.cache.UploadedFileEntry; -import lcsb.mapviewer.model.map.Element; -import lcsb.mapviewer.model.map.graph.DataMiningSet; -import lcsb.mapviewer.model.map.layout.Layout; -import lcsb.mapviewer.model.map.layout.alias.Alias; -import lcsb.mapviewer.model.map.layout.alias.ComplexAlias; -import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; -import lcsb.mapviewer.model.map.model.AliasSubmodelConnection; -import lcsb.mapviewer.model.map.model.Model; -import lcsb.mapviewer.model.map.model.ModelSubmodelConnection; -import lcsb.mapviewer.model.map.model.SubmodelType; -import lcsb.mapviewer.model.map.reaction.Reaction; -import lcsb.mapviewer.model.map.species.Phenotype; -import lcsb.mapviewer.model.map.species.Protein; -import lcsb.mapviewer.model.map.species.Species; - -/** - * This class allows to create complex {@link Model} that contains submaps. It's - * written in generic way and use {@link IConverter} as a class to parse single - * submap. - * - * @author Piotr Gawron - * - * @param <T> - * class used to create single submap from a file - */ -public class ComplexZipConverter<T extends IConverter> { - - /** - * Size of the buffer used for accessing single chunk of data from input - * stream. - */ - private static final int BUFFER_SIZE = 1024; - /** - * Default class logger. - */ - @SuppressWarnings("unused") - private static Logger logger = Logger.getLogger(ComplexZipConverter.class); - /** - * Class used to create single submap from a file. - */ - private Class<T> converterClazz; - - /** - * Default constructor. Checks if the class given in the parameter is proper - * {@link IConverter} implementation. - * - * @param clazz - * {@link IConverter} class used for creation of the single submap - */ - public ComplexZipConverter(Class<T> clazz) { - if (Modifier.isAbstract(clazz.getModifiers())) { - throw new InvalidClassException("Param class cannot be abstract"); - } - - if (Modifier.isInterface(clazz.getModifiers())) { - throw new InvalidClassException("Param class cannot be an interface"); - } - - converterClazz = clazz; - } - - /** - * Creates complex {@link Model} that contains submaps. - * - * @param params - * {@link ComplexZipConverterParams object} with information about - * data from which result is going to be created - * @return complex {@link Model} created from input data - * @throws InvalidInputDataExecption - * thrown when there is a problem with accessing input data - */ - public Model createModel(ComplexZipConverterParams params) throws InvalidInputDataExecption { - try { - ZipFile zipFile = params.getZipFile(); - Enumeration<? extends ZipEntry> entries; - String mapping = validateSubmodelInformation(params, zipFile); - - IConverter converter = createConverterInstance(); - Map<String, Model> filenameModelMap = new HashMap<String, Model>(); - Map<String, Model> nameModelMap = new HashMap<String, Model>(); - - entries = zipFile.entries(); - Model result = null; - List<Layout> layouts = new ArrayList<Layout>(); - List<ImageZipEntryFile> imageEntries = new ArrayList<ImageZipEntryFile>(); - List<DataMiningSet> dataMiningSets = new ArrayList<DataMiningSet>(); - while (entries.hasMoreElements()) { - ZipEntry entry = entries.nextElement(); - if (!entry.isDirectory()) { - ZipEntryFile zef = params.getEntry(entry.getName()); - if (zef instanceof ModelZipEntryFile) { - ModelZipEntryFile modelEntryFile = (ModelZipEntryFile) zef; - InputStream is = zipFile.getInputStream(entry); - ConverterParams cParams = new ConverterParams(); - cParams.inputStream(is); - Model model = converter.createModel(cParams); - model.setName(modelEntryFile.getName()); - filenameModelMap.put(entry.getName(), model); - nameModelMap.put(FilenameUtils.getBaseName(modelEntryFile.getFilename()), model); - if (modelEntryFile.isRoot()) { - result = model; - } - } else if (zef instanceof LayoutZipEntryFile) { - layouts.add(layoutZipEntryFileToLayout(params, zipFile, entry, (LayoutZipEntryFile) zef)); - } else if (zef instanceof ImageZipEntryFile) { - imageEntries.add((ImageZipEntryFile) zef); - } else if (zef instanceof DataMiningZipEntryFile) { - dataMiningSets.add(dataMiningZipEntryToDataMiningSet(zipFile, entry, (DataMiningZipEntryFile) zef)); - } else { - throw new NotImplementedException("Unknwon entry type: " + zef.getClass()); - } - } - } - - if (imageEntries.size() > 0) { - OverviewParser parser = new OverviewParser(); - result.setOverviewImages(parser.parseOverviewLinks(filenameModelMap, imageEntries, params.getVisualizationDir())); - } - result.addDataMiningSets(dataMiningSets); - - for (Entry<String, Model> entry : filenameModelMap.entrySet()) { - String filename = entry.getKey(); - Model model = entry.getValue(); - ZipEntryFile zef = params.getEntry(filename); - if (zef instanceof ModelZipEntryFile) { - ModelZipEntryFile modelEntryFile = (ModelZipEntryFile) zef; - if (!modelEntryFile.isRoot() && !modelEntryFile.isMappingFile()) { - ModelSubmodelConnection submodel = new ModelSubmodelConnection(model, modelEntryFile.getType()); - submodel.setName(modelEntryFile.getName()); - result.addSubmodelConnection(submodel); - } - } - } - for (Layout layout : layouts) { - Layout topLayout = new Layout(layout); - result.addLayout(topLayout); - int modelId = 0; - topLayout.setDirectory(topLayout.getDirectory() + modelId); - modelId++; - for (ModelSubmodelConnection connection : result.getSubmodelConnections()) { - Layout childLayout = new Layout(layout); - // we need to set separate directory names for different submodels - childLayout.setDirectory(childLayout.getDirectory() + modelId); - modelId++; - childLayout.setParentLayout(topLayout); - connection.getSubmodel().addLayout(childLayout); - } - } - Model mappingModel = filenameModelMap.get(mapping); - if (mappingModel != null) { - for (Reaction reaction : mappingModel.getReactions()) { - processReaction(mapping, nameModelMap, result, reaction); - } - } - return result; - } catch (IOException e) { - throw new InvalidArgumentException(e); - } - } - - /** - * Process a single reaction in mapping file (transfomring reaction into - * connection between submodels). - * - * @param mapping - * name of the mapping file - * @param nameModelMap - * mapping between file names and models - * @param topModel - * top model - * @param reaction - * reaction to transform into connection - */ - public void processReaction(String mapping, Map<String, Model> nameModelMap, Model topModel, Reaction reaction) { - if (reaction.getReactants().size() > 1) { - topModel.addCreationWarning( - "[SUBMODEL MAPPING] Reaction " + reaction.getIdReaction() + " in mapping file (" + mapping + ") contains too many reactants. Skipped"); - } else if (reaction.getProducts().size() > 1) { - topModel.addCreationWarning( - "[SUBMODEL MAPPING] Reaction " + reaction.getIdReaction() + " in mapping file (" + mapping + ") contains too many products. Skipped"); - } else if (reaction.getModifiers().size() > 0) { - topModel - .addCreationWarning("[SUBMODEL MAPPING] Reaction " + reaction.getIdReaction() + " in mapping file (" + mapping + ") contains modifiers. Skipped"); - } else { - Alias fromAlias = reaction.getReactants().get(0).getAlias(); - Element fromElement = fromAlias.getElement(); - Alias toAlias = reaction.getProducts().get(0).getAlias(); - Element toElement = toAlias.getElement(); - if (!(fromAlias instanceof SpeciesAlias)) { - topModel.addCreationWarning( - "[SUBMODEL MAPPING] Reaction " + reaction.getIdReaction() + " in mapping file (" + mapping + ") contains doesn't start in species. Skipped"); - } else if (!(toAlias instanceof SpeciesAlias)) { - topModel.addCreationWarning( - "[SUBMODEL MAPPING] Reaction " + reaction.getIdReaction() + " in mapping file (" + mapping + ") contains doesn't end in species. Skipped"); - } else { - Species from = (Species) fromElement; - ComplexAlias complexFrom = ((SpeciesAlias) fromAlias).getComplexAlias(); - Species to = (Species) toElement; - ComplexAlias complexTo = ((SpeciesAlias) toAlias).getComplexAlias(); - if (complexFrom == null) { - topModel.addCreationWarning( - "[SUBMODEL MAPPING] Reaction " + reaction.getIdReaction() + " in mapping file (" + mapping + ") contains doesn't start inside complex. Skipped"); - } else if (complexTo == null && (!(toAlias instanceof ComplexAlias))) { - topModel.addCreationWarning( - "[SUBMODEL MAPPING] Reaction " + reaction.getIdReaction() + " in mapping file (" + mapping + ") contains doesn't end inside complex. Skipped"); - } else { - if (complexTo == null) { - complexTo = (ComplexAlias) toAlias; - } - String fromName = complexFrom.getElement().getName(); - String toName = complexTo.getElement().getName(); - Model fromModel = nameModelMap.get(fromName); - Model toModel = nameModelMap.get(toName); - if (fromModel == null) { - throw new InvalidArgumentException("Mapping file references to " + fromName + " submodel. But such model doesn't exist"); - } else if (toModel == null) { - throw new InvalidArgumentException("Mapping file references to " + toName + " submodel. But such model doesn't exist"); - } - Alias source = fromModel.getAliasByAliasId(from.getName()); - if (source == null) { - throw new InvalidArgumentException("Mapping file references to element with alias: " + from.getName() + ". But such element doesn't exist"); - } - Alias dest = null; - if (!(toAlias instanceof ComplexAlias)) { - dest = fromModel.getAliasByAliasId(to.getName()); - } - SubmodelType type = SubmodelType.UNKNOWN; - if (from instanceof Protein) { - type = SubmodelType.DOWNSTREAM_TARGETS; - } else if (from instanceof Phenotype) { - type = SubmodelType.PATHWAY; - } - AliasSubmodelConnection connection = new AliasSubmodelConnection(toModel, type); - connection.setFromAlias(source); - connection.setToAlias(dest); - connection.setName(toModel.getName()); - source.setSubmodel(connection); - } - } - } - } - - /** - * This method validates if information about model and submodels in the - * params are sufficient. If not then apropriate exception will be thrown. - * - * @param params - * parameters to validate - * @param zipFile - * original {@link ZipFile} - * @return name of the file containg mapping between submodels - */ - protected String validateSubmodelInformation(ComplexZipConverterParams params, ZipFile zipFile) { - Enumeration<? extends ZipEntry> entries = zipFile.entries(); - Set<String> processed = new HashSet<String>(); - - String root = null; - String mapping = null; - while (entries.hasMoreElements()) { - ZipEntry entry = entries.nextElement(); - if (!entry.isDirectory()) { - String name = entry.getName(); - ZipEntryFile zef = params.getEntry(name); - if (zef == null) { - throw new InvalidArgumentException("No information found in params about file: " + name); - } - if (zef instanceof ModelZipEntryFile) { - ModelZipEntryFile modelEntryFile = (ModelZipEntryFile) zef; - if (modelEntryFile.isRoot()) { - if (root != null) { - throw new InvalidArgumentException("Two roots found: " + name + ", " + root + ". There can be only one."); - } - root = name; - } - if (modelEntryFile.isMappingFile()) { - if (mapping != null) { - throw new InvalidArgumentException("Two mapping files found: " + name + ", " + mapping + ". There can be only one."); - } - mapping = name; - } - } - processed.add(name); - } - } - if (root == null) { - throw new InvalidArgumentException("No root map found."); - } - for (String entryName : params.getFilenames()) { - if (!processed.contains(entryName)) { - throw new InvalidArgumentException("Entry " + entryName + " doesn't exists in the zip file."); - } - } - return mapping; - } - - /** - * Transforms {@link DataMiningZipEntryFile} into {@link DataMiningSet}. - * - * @param zipFile - * original {@link ZipFile} - * @param entry - * entry in a zip file - * @param dmEntry - * {@link DataMiningZipEntryFile} to transform - * @return {@link DataMiningSet} for a given {@link DataMiningZipEntryFile} - * @throws IOException - * thrown when there is a problem with accessing {@link ZipFile} - */ - protected DataMiningSet dataMiningZipEntryToDataMiningSet(ZipFile zipFile, ZipEntry entry, DataMiningZipEntryFile dmEntry) throws IOException { - DataMiningSet dmSet = new DataMiningSet(); - dmSet.setName(dmEntry.getName()); - dmSet.setInputData(IOUtils.toByteArray(zipFile.getInputStream(entry))); - dmSet.setDescription(dmEntry.getDescription()); - dmSet.setSource(dmEntry.getSource()); - dmSet.setType(dmEntry.getType()); - return dmSet; - } - - /** - * Transforms {@link LayoutZipEntryFile} into {@link Layout}. - * - * @param zipFile - * original {@link ZipFile} - * @param entry - * entry in a zip file - * @param params - * parameters used to make general conversion (we use directory where - * layout should be stored) - * @param layoutEntry - * {@link LayoutZipEntryFile} to transform - * @return {@link LAyout} for a given {@link LayoutZipEntryFile} - * @throws IOException - * thrown when there is a problem with accessing {@link ZipFile} - */ - protected Layout layoutZipEntryFileToLayout(ComplexZipConverterParams params, ZipFile zipFile, ZipEntry entry, LayoutZipEntryFile layoutEntry) - throws IOException { - Layout layout = new Layout(); - layout.setDescription(layoutEntry.getDescription()); - layout.setDirectory(params.getVisualizationDir() + "/" + layoutEntry.getName().replaceAll(" ", "_")); - UploadedFileEntry fileEntry = new UploadedFileEntry(); - fileEntry.setFileContent(IOUtils.toByteArray(zipFile.getInputStream(entry))); - fileEntry.setOriginalFileName(entry.getName()); - layout.setInputData(fileEntry); - layout.setPublicLayout(true); - layout.setTitle(layoutEntry.getName()); - return layout; - } - - /** - * Copy file from zip entry into temporary file. - * - * @param zipFile - * input zip file - * @param entry - * entry in the zip file - * @return {@link File} with a copy of data from zip entry - * @throws IOException - * thrown when there is a problem with input or output file - */ - protected File saveFileFromZipFile(ZipFile zipFile, ZipEntry entry) throws IOException { - InputStream is = zipFile.getInputStream(entry); - File result = File.createTempFile("temp-file-name", ".png"); - FileOutputStream fos = new FileOutputStream(result); - byte[] bytes = new byte[BUFFER_SIZE]; - int length; - while ((length = is.read(bytes)) >= 0) { - fos.write(bytes, 0, length); - } - fos.close(); - return result; - } - - /** - * Creates inctance of {@link IConverter} used as a template parameter for - * this class instatiation. - * - * @return inctance of {@link IConverter} - */ - protected IConverter createConverterInstance() { - IConverter converter; - try { - converter = converterClazz.newInstance(); - } catch (InstantiationException e) { - throw new InvalidClassException("Problem with instantation of the class: " + converterClazz, e); - } catch (IllegalAccessException e) { - throw new InvalidClassException("Problem with instantation of the class: " + converterClazz, e); - } - return converter; - } -} +package lcsb.mapviewer.converter; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.Set; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; + +import org.apache.commons.io.FilenameUtils; +import org.apache.commons.io.IOUtils; +import org.apache.log4j.Logger; + +import lcsb.mapviewer.common.exception.InvalidArgumentException; +import lcsb.mapviewer.common.exception.InvalidClassException; +import lcsb.mapviewer.common.exception.NotImplementedException; +import lcsb.mapviewer.converter.zip.DataMiningZipEntryFile; +import lcsb.mapviewer.converter.zip.ImageZipEntryFile; +import lcsb.mapviewer.converter.zip.LayoutZipEntryFile; +import lcsb.mapviewer.converter.zip.ModelZipEntryFile; +import lcsb.mapviewer.converter.zip.ZipEntryFile; +import lcsb.mapviewer.model.cache.UploadedFileEntry; +import lcsb.mapviewer.model.map.Element; +import lcsb.mapviewer.model.map.graph.DataMiningSet; +import lcsb.mapviewer.model.map.layout.Layout; +import lcsb.mapviewer.model.map.layout.alias.Alias; +import lcsb.mapviewer.model.map.layout.alias.ComplexAlias; +import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; +import lcsb.mapviewer.model.map.model.AliasSubmodelConnection; +import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.model.map.model.ModelSubmodelConnection; +import lcsb.mapviewer.model.map.model.SubmodelType; +import lcsb.mapviewer.model.map.reaction.Reaction; +import lcsb.mapviewer.model.map.species.Phenotype; +import lcsb.mapviewer.model.map.species.Protein; +import lcsb.mapviewer.model.map.species.Species; + +/** + * This class allows to create complex {@link Model} that contains submaps. It's + * written in generic way and use {@link IConverter} as a class to parse single + * submap. + * + * @author Piotr Gawron + * + * @param <T> + * class used to create single submap from a file + */ +public class ComplexZipConverter<T extends IConverter> { + + /** + * Size of the buffer used for accessing single chunk of data from input + * stream. + */ + private static final int BUFFER_SIZE = 1024; + /** + * Default class logger. + */ + @SuppressWarnings("unused") + private static Logger logger = Logger.getLogger(ComplexZipConverter.class); + /** + * Class used to create single submap from a file. + */ + private Class<T> converterClazz; + + /** + * Default constructor. Checks if the class given in the parameter is proper + * {@link IConverter} implementation. + * + * @param clazz + * {@link IConverter} class used for creation of the single submap + */ + public ComplexZipConverter(Class<T> clazz) { + if (Modifier.isAbstract(clazz.getModifiers())) { + throw new InvalidClassException("Param class cannot be abstract"); + } + + if (Modifier.isInterface(clazz.getModifiers())) { + throw new InvalidClassException("Param class cannot be an interface"); + } + + converterClazz = clazz; + } + + /** + * Creates complex {@link Model} that contains submaps. + * + * @param params + * {@link ComplexZipConverterParams object} with information about + * data from which result is going to be created + * @return complex {@link Model} created from input data + * @throws InvalidInputDataExecption + * thrown when there is a problem with accessing input data + */ + public Model createModel(ComplexZipConverterParams params) throws InvalidInputDataExecption { + try { + ZipFile zipFile = params.getZipFile(); + Enumeration<? extends ZipEntry> entries; + String mapping = validateSubmodelInformation(params, zipFile); + + IConverter converter = createConverterInstance(); + Map<String, Model> filenameModelMap = new HashMap<String, Model>(); + Map<String, Model> nameModelMap = new HashMap<String, Model>(); + + entries = zipFile.entries(); + Model result = null; + List<Layout> layouts = new ArrayList<Layout>(); + List<ImageZipEntryFile> imageEntries = new ArrayList<ImageZipEntryFile>(); + List<DataMiningSet> dataMiningSets = new ArrayList<DataMiningSet>(); + while (entries.hasMoreElements()) { + ZipEntry entry = entries.nextElement(); + if (!entry.isDirectory()) { + ZipEntryFile zef = params.getEntry(entry.getName()); + if (zef instanceof ModelZipEntryFile) { + ModelZipEntryFile modelEntryFile = (ModelZipEntryFile) zef; + InputStream is = zipFile.getInputStream(entry); + ConverterParams cParams = new ConverterParams(); + cParams.inputStream(is); + Model model = converter.createModel(cParams); + model.setName(modelEntryFile.getName()); + filenameModelMap.put(entry.getName(), model); + nameModelMap.put(FilenameUtils.getBaseName(modelEntryFile.getFilename()), model); + if (modelEntryFile.isRoot()) { + result = model; + } + } else if (zef instanceof LayoutZipEntryFile) { + layouts.add(layoutZipEntryFileToLayout(params, zipFile, entry, (LayoutZipEntryFile) zef)); + } else if (zef instanceof ImageZipEntryFile) { + imageEntries.add((ImageZipEntryFile) zef); + } else if (zef instanceof DataMiningZipEntryFile) { + dataMiningSets.add(dataMiningZipEntryToDataMiningSet(zipFile, entry, (DataMiningZipEntryFile) zef)); + } else { + throw new NotImplementedException("Unknwon entry type: " + zef.getClass()); + } + } + } + + if (imageEntries.size() > 0) { + OverviewParser parser = new OverviewParser(); + result.setOverviewImages(parser.parseOverviewLinks(filenameModelMap, imageEntries, params.getVisualizationDir())); + } + result.addDataMiningSets(dataMiningSets); + + for (Entry<String, Model> entry : filenameModelMap.entrySet()) { + String filename = entry.getKey(); + Model model = entry.getValue(); + ZipEntryFile zef = params.getEntry(filename); + if (zef instanceof ModelZipEntryFile) { + ModelZipEntryFile modelEntryFile = (ModelZipEntryFile) zef; + if (!modelEntryFile.isRoot() && !modelEntryFile.isMappingFile()) { + ModelSubmodelConnection submodel = new ModelSubmodelConnection(model, modelEntryFile.getType()); + submodel.setName(modelEntryFile.getName()); + result.addSubmodelConnection(submodel); + } + } + } + for (Layout layout : layouts) { + Layout topLayout = new Layout(layout); + result.addLayout(topLayout); + int modelId = 0; + topLayout.setDirectory(topLayout.getDirectory() + modelId); + modelId++; + for (ModelSubmodelConnection connection : result.getSubmodelConnections()) { + Layout childLayout = new Layout(layout); + // we need to set separate directory names for different submodels + childLayout.setDirectory(childLayout.getDirectory() + modelId); + modelId++; + childLayout.setParentLayout(topLayout); + connection.getSubmodel().addLayout(childLayout); + } + } + Model mappingModel = filenameModelMap.get(mapping); + if (mappingModel != null) { + for (Reaction reaction : mappingModel.getReactions()) { + processReaction(mapping, nameModelMap, result, reaction); + } + } + return result; + } catch (IOException e) { + throw new InvalidArgumentException(e); + } + } + + /** + * Process a single reaction in mapping file (transfomring reaction into + * connection between submodels). + * + * @param mapping + * name of the mapping file + * @param nameModelMap + * mapping between file names and models + * @param topModel + * top model + * @param reaction + * reaction to transform into connection + */ + public void processReaction(String mapping, Map<String, Model> nameModelMap, Model topModel, Reaction reaction) { + if (reaction.getReactants().size() > 1) { + topModel.addCreationWarning( + "[SUBMODEL MAPPING] Reaction " + reaction.getIdReaction() + " in mapping file (" + mapping + ") contains too many reactants. Skipped"); + } else if (reaction.getProducts().size() > 1) { + topModel.addCreationWarning( + "[SUBMODEL MAPPING] Reaction " + reaction.getIdReaction() + " in mapping file (" + mapping + ") contains too many products. Skipped"); + } else if (reaction.getModifiers().size() > 0) { + topModel + .addCreationWarning("[SUBMODEL MAPPING] Reaction " + reaction.getIdReaction() + " in mapping file (" + mapping + ") contains modifiers. Skipped"); + } else { + Alias fromAlias = reaction.getReactants().get(0).getAlias(); + Element fromElement = fromAlias.getElement(); + Alias toAlias = reaction.getProducts().get(0).getAlias(); + Element toElement = toAlias.getElement(); + if (!(fromAlias instanceof SpeciesAlias)) { + topModel.addCreationWarning( + "[SUBMODEL MAPPING] Reaction " + reaction.getIdReaction() + " in mapping file (" + mapping + ") contains doesn't start in species. Skipped"); + } else if (!(toAlias instanceof SpeciesAlias)) { + topModel.addCreationWarning( + "[SUBMODEL MAPPING] Reaction " + reaction.getIdReaction() + " in mapping file (" + mapping + ") contains doesn't end in species. Skipped"); + } else { + Species from = (Species) fromElement; + ComplexAlias complexFrom = ((SpeciesAlias) fromAlias).getComplexAlias(); + Species to = (Species) toElement; + ComplexAlias complexTo = ((SpeciesAlias) toAlias).getComplexAlias(); + if (complexFrom == null) { + topModel.addCreationWarning( + "[SUBMODEL MAPPING] Reaction " + reaction.getIdReaction() + " in mapping file (" + mapping + ") contains doesn't start inside complex. Skipped"); + } else if (complexTo == null && (!(toAlias instanceof ComplexAlias))) { + topModel.addCreationWarning( + "[SUBMODEL MAPPING] Reaction " + reaction.getIdReaction() + " in mapping file (" + mapping + ") contains doesn't end inside complex. Skipped"); + } else { + if (complexTo == null) { + complexTo = (ComplexAlias) toAlias; + } + String fromName = complexFrom.getElement().getName(); + String toName = complexTo.getElement().getName(); + Model fromModel = nameModelMap.get(fromName); + Model toModel = nameModelMap.get(toName); + if (fromModel == null) { + throw new InvalidArgumentException("Mapping file references to " + fromName + " submodel. But such model doesn't exist"); + } else if (toModel == null) { + throw new InvalidArgumentException("Mapping file references to " + toName + " submodel. But such model doesn't exist"); + } + Alias source = fromModel.getAliasByAliasId(from.getName()); + if (source == null) { + throw new InvalidArgumentException("Mapping file references to element with alias: " + from.getName() + ". But such element doesn't exist"); + } + Alias dest = null; + if (!(toAlias instanceof ComplexAlias)) { + dest = fromModel.getAliasByAliasId(to.getName()); + } + SubmodelType type = SubmodelType.UNKNOWN; + if (from instanceof Protein) { + type = SubmodelType.DOWNSTREAM_TARGETS; + } else if (from instanceof Phenotype) { + type = SubmodelType.PATHWAY; + } + AliasSubmodelConnection connection = new AliasSubmodelConnection(toModel, type); + connection.setFromAlias(source); + connection.setToAlias(dest); + connection.setName(toModel.getName()); + source.setSubmodel(connection); + } + } + } + } + + /** + * This method validates if information about model and submodels in the + * params are sufficient. If not then apropriate exception will be thrown. + * + * @param params + * parameters to validate + * @param zipFile + * original {@link ZipFile} + * @return name of the file containg mapping between submodels + */ + protected String validateSubmodelInformation(ComplexZipConverterParams params, ZipFile zipFile) { + Enumeration<? extends ZipEntry> entries = zipFile.entries(); + Set<String> processed = new HashSet<String>(); + + String root = null; + String mapping = null; + while (entries.hasMoreElements()) { + ZipEntry entry = entries.nextElement(); + if (!entry.isDirectory()) { + String name = entry.getName(); + ZipEntryFile zef = params.getEntry(name); + if (zef == null) { + throw new InvalidArgumentException("No information found in params about file: " + name); + } + if (zef instanceof ModelZipEntryFile) { + ModelZipEntryFile modelEntryFile = (ModelZipEntryFile) zef; + if (modelEntryFile.isRoot()) { + if (root != null) { + throw new InvalidArgumentException("Two roots found: " + name + ", " + root + ". There can be only one."); + } + root = name; + } + if (modelEntryFile.isMappingFile()) { + if (mapping != null) { + throw new InvalidArgumentException("Two mapping files found: " + name + ", " + mapping + ". There can be only one."); + } + mapping = name; + } + } + processed.add(name); + } + } + if (root == null) { + throw new InvalidArgumentException("No root map found."); + } + for (String entryName : params.getFilenames()) { + if (!processed.contains(entryName)) { + throw new InvalidArgumentException("Entry " + entryName + " doesn't exists in the zip file."); + } + } + return mapping; + } + + /** + * Transforms {@link DataMiningZipEntryFile} into {@link DataMiningSet}. + * + * @param zipFile + * original {@link ZipFile} + * @param entry + * entry in a zip file + * @param dmEntry + * {@link DataMiningZipEntryFile} to transform + * @return {@link DataMiningSet} for a given {@link DataMiningZipEntryFile} + * @throws IOException + * thrown when there is a problem with accessing {@link ZipFile} + */ + protected DataMiningSet dataMiningZipEntryToDataMiningSet(ZipFile zipFile, ZipEntry entry, DataMiningZipEntryFile dmEntry) throws IOException { + DataMiningSet dmSet = new DataMiningSet(); + dmSet.setName(dmEntry.getName()); + dmSet.setInputData(IOUtils.toByteArray(zipFile.getInputStream(entry))); + dmSet.setDescription(dmEntry.getDescription()); + dmSet.setSource(dmEntry.getSource()); + dmSet.setType(dmEntry.getType()); + return dmSet; + } + + /** + * Transforms {@link LayoutZipEntryFile} into {@link Layout}. + * + * @param zipFile + * original {@link ZipFile} + * @param entry + * entry in a zip file + * @param params + * parameters used to make general conversion (we use directory where + * layout should be stored) + * @param layoutEntry + * {@link LayoutZipEntryFile} to transform + * @return {@link LAyout} for a given {@link LayoutZipEntryFile} + * @throws IOException + * thrown when there is a problem with accessing {@link ZipFile} + */ + protected Layout layoutZipEntryFileToLayout(ComplexZipConverterParams params, ZipFile zipFile, ZipEntry entry, LayoutZipEntryFile layoutEntry) + throws IOException { + Layout layout = new Layout(); + layout.setDescription(layoutEntry.getDescription()); + layout.setDirectory(params.getVisualizationDir() + "/" + layoutEntry.getName().replaceAll(" ", "_")); + UploadedFileEntry fileEntry = new UploadedFileEntry(); + fileEntry.setFileContent(IOUtils.toByteArray(zipFile.getInputStream(entry))); + fileEntry.setOriginalFileName(entry.getName()); + layout.setInputData(fileEntry); + layout.setPublicLayout(true); + layout.setTitle(layoutEntry.getName()); + return layout; + } + + /** + * Copy file from zip entry into temporary file. + * + * @param zipFile + * input zip file + * @param entry + * entry in the zip file + * @return {@link File} with a copy of data from zip entry + * @throws IOException + * thrown when there is a problem with input or output file + */ + protected File saveFileFromZipFile(ZipFile zipFile, ZipEntry entry) throws IOException { + InputStream is = zipFile.getInputStream(entry); + File result = File.createTempFile("temp-file-name", ".png"); + FileOutputStream fos = new FileOutputStream(result); + byte[] bytes = new byte[BUFFER_SIZE]; + int length; + while ((length = is.read(bytes)) >= 0) { + fos.write(bytes, 0, length); + } + fos.close(); + return result; + } + + /** + * Creates inctance of {@link IConverter} used as a template parameter for + * this class instatiation. + * + * @return inctance of {@link IConverter} + */ + protected IConverter createConverterInstance() { + IConverter converter; + try { + converter = converterClazz.newInstance(); + } catch (InstantiationException e) { + throw new InvalidClassException("Problem with instantation of the class: " + converterClazz, e); + } catch (IllegalAccessException e) { + throw new InvalidClassException("Problem with instantation of the class: " + converterClazz, e); + } + return converter; + } +} diff --git a/converter/src/main/java/lcsb/mapviewer/converter/IConverter.java b/converter/src/main/java/lcsb/mapviewer/converter/IConverter.java index f1e0095ad6..bcc0546a33 100644 --- a/converter/src/main/java/lcsb/mapviewer/converter/IConverter.java +++ b/converter/src/main/java/lcsb/mapviewer/converter/IConverter.java @@ -1,82 +1,82 @@ -package lcsb.mapviewer.converter; - -import java.io.File; -import java.io.IOException; -import java.io.InputStream; - -import lcsb.mapviewer.common.MimeType; -import lcsb.mapviewer.model.map.InconsistentModelException; -import lcsb.mapviewer.model.map.model.Model; - -/** - * Interface used for reading data from file and putting it into {@link Model} - * object. - * - * @author Piotr Gawron - * - */ -public interface IConverter { - - /** - * Parse input source and transformes it into a model object. - * - * @param params - * input params used for reading data - * @return model obtained from inut source - * @throws InvalidInputDataExecption - * thrown when input parameters are invalid - */ - - Model createModel(ConverterParams params) throws InvalidInputDataExecption; - - /** - * Export model to {@link InputStream}. - * - * @param model - * model to be exported - * @return {@link InputStream} with exported data - * @throws InconsistentModelException - * thrown when given model is inconsistent and unable to be exported - * @throws ConverterException - * thrown when there is unknown problem in a converter - */ - InputStream exportModelToInputStream(Model model) throws ConverterException, InconsistentModelException; - - /** - * Export model to {@link File}. - * - * @param model - * model to be exported - * @param filePath - * exported file path - * @return {@link File} with exported data - * @throws InconsistentModelException - * thrown when given model is inconsistent and unable to be exported - * @throws ConverterException - * thrown when there is unknown problem in a converter - * @throws IOException thrown when there is a problem with writing to file - */ - File exportModelToFile(Model model, String filePath) throws ConverterException, InconsistentModelException, IOException; - - /** - * Returns a common name of data format used in the converter. - * - * @return common name of data format used in the converter - */ - String getCommonName(); - - /** - * Returns {@link MimeType} of the exported data. - * - * @return {@link MimeType} of the exported data - */ - MimeType getMimeType(); - - /** - * Returns extension of the exported file. - * - * @return extension of the exported file - */ - String getFileExtension(); - -} +package lcsb.mapviewer.converter; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; + +import lcsb.mapviewer.common.MimeType; +import lcsb.mapviewer.model.map.InconsistentModelException; +import lcsb.mapviewer.model.map.model.Model; + +/** + * Interface used for reading data from file and putting it into {@link Model} + * object. + * + * @author Piotr Gawron + * + */ +public interface IConverter { + + /** + * Parse input source and transformes it into a model object. + * + * @param params + * input params used for reading data + * @return model obtained from inut source + * @throws InvalidInputDataExecption + * thrown when input parameters are invalid + */ + + Model createModel(ConverterParams params) throws InvalidInputDataExecption; + + /** + * Export model to {@link InputStream}. + * + * @param model + * model to be exported + * @return {@link InputStream} with exported data + * @throws InconsistentModelException + * thrown when given model is inconsistent and unable to be exported + * @throws ConverterException + * thrown when there is unknown problem in a converter + */ + InputStream exportModelToInputStream(Model model) throws ConverterException, InconsistentModelException; + + /** + * Export model to {@link File}. + * + * @param model + * model to be exported + * @param filePath + * exported file path + * @return {@link File} with exported data + * @throws InconsistentModelException + * thrown when given model is inconsistent and unable to be exported + * @throws ConverterException + * thrown when there is unknown problem in a converter + * @throws IOException thrown when there is a problem with writing to file + */ + File exportModelToFile(Model model, String filePath) throws ConverterException, InconsistentModelException, IOException; + + /** + * Returns a common name of data format used in the converter. + * + * @return common name of data format used in the converter + */ + String getCommonName(); + + /** + * Returns {@link MimeType} of the exported data. + * + * @return {@link MimeType} of the exported data + */ + MimeType getMimeType(); + + /** + * Returns extension of the exported file. + * + * @return extension of the exported file + */ + String getFileExtension(); + +} diff --git a/converter/src/test/java/lcsb/mapviewer/converter/AllTests.java b/converter/src/test/java/lcsb/mapviewer/converter/AllTests.java index ceed4f3913..19a555096a 100644 --- a/converter/src/test/java/lcsb/mapviewer/converter/AllTests.java +++ b/converter/src/test/java/lcsb/mapviewer/converter/AllTests.java @@ -1,13 +1,13 @@ -package lcsb.mapviewer.converter; - -import org.junit.runner.RunWith; -import org.junit.runners.Suite; -import org.junit.runners.Suite.SuiteClasses; - -@RunWith(Suite.class) -@SuiteClasses({ ComplexZipConverterTest.class, // - OverviewParserTest.class,// -}) -public class AllTests { - -} +package lcsb.mapviewer.converter; + +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; + +@RunWith(Suite.class) +@SuiteClasses({ ComplexZipConverterTest.class, // + OverviewParserTest.class,// +}) +public class AllTests { + +} diff --git a/converter/src/test/java/lcsb/mapviewer/converter/ComplexZipConverterTest.java b/converter/src/test/java/lcsb/mapviewer/converter/ComplexZipConverterTest.java index f6a8929e55..9d328c20fb 100644 --- a/converter/src/test/java/lcsb/mapviewer/converter/ComplexZipConverterTest.java +++ b/converter/src/test/java/lcsb/mapviewer/converter/ComplexZipConverterTest.java @@ -1,610 +1,610 @@ -package lcsb.mapviewer.converter; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import java.awt.geom.Point2D; -import java.io.File; -import java.io.InputStream; -import java.util.Enumeration; -import java.util.List; -import java.util.zip.ZipEntry; -import java.util.zip.ZipFile; - -import lcsb.mapviewer.common.MimeType; -import lcsb.mapviewer.common.exception.InvalidArgumentException; -import lcsb.mapviewer.common.exception.InvalidClassException; -import lcsb.mapviewer.converter.zip.ModelZipEntryFile; -import lcsb.mapviewer.converter.zip.ZipEntryFileFactory; -import lcsb.mapviewer.model.map.InconsistentModelException; -import lcsb.mapviewer.model.map.OverviewImage; -import lcsb.mapviewer.model.map.OverviewLink; -import lcsb.mapviewer.model.map.OverviewModelLink; -import lcsb.mapviewer.model.map.layout.alias.Alias; -import lcsb.mapviewer.model.map.layout.alias.ComplexAlias; -import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; -import lcsb.mapviewer.model.map.model.Model; -import lcsb.mapviewer.model.map.model.ModelFullIndexed; -import lcsb.mapviewer.model.map.model.ModelSubmodelConnection; -import lcsb.mapviewer.model.map.model.SubmodelType; -import lcsb.mapviewer.model.map.reaction.Product; -import lcsb.mapviewer.model.map.reaction.Reactant; -import lcsb.mapviewer.model.map.reaction.Reaction; -import lcsb.mapviewer.model.map.reaction.type.TransportReaction; -import lcsb.mapviewer.model.map.species.ComplexSpecies; -import lcsb.mapviewer.model.map.species.GenericProtein; -import lcsb.mapviewer.model.map.species.Phenotype; -import lcsb.mapviewer.model.map.species.Protein; - -import org.apache.log4j.Logger; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -public class ComplexZipConverterTest { - private static Logger logger = Logger.getLogger(ComplexZipConverterTest.class); - - private abstract class AbstractConverter implements IConverter { - - } - - private interface InterfaceConverter extends IConverter { - - } - - public static class MockConverter implements IConverter { - - @Override - public Model createModel(ConverterParams params) { - Model result = new ModelFullIndexed(null); - - Protein s1 = new GenericProtein(); - s1.setElementId("s1"); - SpeciesAlias sa1 = new SpeciesAlias(s1); - sa1.setAliasId("sa1"); - result.addAlias(sa1); - result.addElement(s1); - - Protein s2 = new GenericProtein(); - s2.setElementId("s2"); - SpeciesAlias sa2 = new SpeciesAlias(s2); - sa2.setAliasId("sa2"); - result.addAlias(sa2); - result.addElement(s2); - - Protein s3 = new GenericProtein(); - s3.setElementId("s3"); - SpeciesAlias sa3 = new SpeciesAlias(s3); - sa3.setAliasId("sa3"); - result.addAlias(sa3); - result.addElement(s3); - - Phenotype s4 = new Phenotype(); - s4.setElementId("s4"); - SpeciesAlias sa4 = new SpeciesAlias(s4); - sa4.setAliasId("sa4"); - result.addAlias(sa4); - result.addElement(s4); - - ComplexSpecies cs1 = new ComplexSpecies(); - ComplexAlias ca1 = new ComplexAlias(cs1); - ca1.setAliasId("ca1"); - cs1.setElementId("cs1"); - cs1.setName("main"); - result.addAlias(ca1); - result.addElement(cs1); - Protein s5 = new GenericProtein(); - s5.setElementId("s5"); - s5.setName("sa1"); - SpeciesAlias sa5 = new SpeciesAlias(s5); - sa5.setAliasId("sa5"); - result.addAlias(sa5); - result.addElement(s5); - ca1.addAlias(sa5); - cs1.addElement(s5); - Phenotype s6 = new Phenotype(); - s6.setElementId("s6"); - s6.setName("sa4"); - SpeciesAlias sa6 = new SpeciesAlias(s6); - sa6.setAliasId("sa6"); - result.addAlias(sa6); - result.addElement(s6); - ca1.addAlias(sa6); - cs1.addElement(s6); - - ComplexSpecies cs2 = new ComplexSpecies(); - ComplexAlias ca2 = new ComplexAlias(cs2); - ca2.setAliasId("ca2"); - cs2.setElementId("cs2"); - cs2.setName("s1"); - result.addAlias(ca2); - result.addElement(cs2); - Protein s7 = new GenericProtein(); - s7.setElementId("s7"); - s7.setName("sa1"); - SpeciesAlias sa7 = new SpeciesAlias(s7); - sa7.setAliasId("sa7"); - result.addAlias(sa7); - result.addElement(s7); - ca2.addAlias(sa7); - cs2.addElement(s7); - - ComplexSpecies cs3 = new ComplexSpecies(); - ComplexAlias ca3 = new ComplexAlias(cs3); - ca3.setAliasId("ca3"); - cs3.setElementId("cs3"); - cs3.setName("s2"); - result.addAlias(ca3); - result.addElement(cs3); - - ComplexSpecies cs4 = new ComplexSpecies(); - ComplexAlias ca4 = new ComplexAlias(cs4); - ca4.setAliasId("ca4"); - cs4.setElementId("cs4"); - cs4.setName("s3"); - result.addAlias(ca4); - result.addElement(cs4); - - Reaction r1 = new TransportReaction(); - r1.addReactant(new Reactant(sa5, s5)); - r1.addProduct(new Product(sa7, s7)); - result.addReaction(r1); - - Reaction r2 = new TransportReaction(); - r2.addReactant(new Reactant(sa6, s6)); - r2.addProduct(new Product(ca3, cs3)); - result.addReaction(r2); - - Reaction r3 = new TransportReaction(); - r3.addReactant(new Reactant(sa7, s7)); - r3.addProduct(new Product(ca4, cs4)); - result.addReaction(r3); - return result; - } - - @Override - public InputStream exportModelToInputStream(Model model) throws InconsistentModelException { - // TODO Auto-generated method stub - return null; - } - - @Override - public File exportModelToFile(Model model, String filePath) throws InconsistentModelException { - // TODO Auto-generated method stub - return null; - } - - @Override - public String getCommonName() { - // TODO Auto-generated method stub - return null; - } - - @Override - public MimeType getMimeType() { - // TODO Auto-generated method stub - return null; - } - - @Override - public String getFileExtension() { - // TODO Auto-generated method stub - return null; - } - - } - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testConstructor() throws Exception { - try { - try { - new ComplexZipConverter<AbstractConverter>(AbstractConverter.class); - fail("Exception expected"); - } catch (InvalidClassException e) { - - } - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testConstructor2() throws Exception { - try { - try { - new ComplexZipConverter<InterfaceConverter>(InterfaceConverter.class); - fail("Exception expected"); - } catch (InvalidClassException e) { - - } - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testConstructor3() throws Exception { - try { - new ComplexZipConverter<MockConverter>(MockConverter.class); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testParamsOk() throws Exception { - try { - ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); - ComplexZipConverterParams params = new ComplexZipConverterParams(); - params.zipFile(new ZipFile("testFiles/complex_model.zip")); - params.entry(new ModelZipEntryFile("main.xml", "main", true, false, null)); - params.entry(new ModelZipEntryFile("s1.xml", "s1", false, false, SubmodelType.DOWNSTREAM_TARGETS)); - params.entry(new ModelZipEntryFile("s2.xml", "s2", false, false, SubmodelType.PATHWAY)); - params.entry(new ModelZipEntryFile("s3.xml", "s3", false, false, SubmodelType.UNKNOWN)); - params.entry(new ModelZipEntryFile("mapping.xml", null, false, true, null)); - Model model = converter.createModel(params); - assertNotNull(model); - assertEquals("main", model.getName()); - assertEquals(3, model.getSubmodelConnections().size()); - - Model s1Model = null; - Model s2Model = null; - Model s3Model = null; - - for (ModelSubmodelConnection submodel : model.getSubmodelConnections()) { - if (submodel.getName().equals("s1")) { - s1Model = submodel.getSubmodel().getModel(); - } - if (submodel.getName().equals("s2")) { - s2Model = submodel.getSubmodel().getModel(); - } - if (submodel.getName().equals("s3")) { - s3Model = submodel.getSubmodel().getModel(); - } - } - assertNotNull(s1Model); - assertNotNull(s2Model); - assertNotNull(s3Model); - - Alias al1 = model.getAliasByAliasId("sa1"); - assertNotNull(al1.getSubmodel()); - assertEquals(SubmodelType.DOWNSTREAM_TARGETS, al1.getSubmodel().getType()); - assertEquals(s1Model, al1.getSubmodel().getSubmodel().getModel()); - - Alias al2 = model.getAliasByAliasId("sa2"); - assertNull(al2.getSubmodel()); - - Alias al4 = model.getAliasByAliasId("sa4"); - assertNotNull(al4.getSubmodel()); - assertEquals(SubmodelType.PATHWAY, al4.getSubmodel().getType()); - assertEquals(s2Model, al4.getSubmodel().getSubmodel().getModel()); - - Alias s1_al1 = s1Model.getAliasByAliasId("sa1"); - assertNotNull(s1_al1.getSubmodel()); - assertEquals(SubmodelType.DOWNSTREAM_TARGETS, s1_al1.getSubmodel().getType()); - assertEquals(s3Model, s1_al1.getSubmodel().getSubmodel().getModel()); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testChangeModelZipEntry() throws Exception { - try { - ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); - ComplexZipConverterParams params = new ComplexZipConverterParams(); - params.zipFile(new ZipFile("testFiles/complex_model.zip")); - params.entry(new ModelZipEntryFile("main.xml", "main", true, false, null)); - params.entry(new ModelZipEntryFile("s1.xml", "s12", false, false, SubmodelType.DOWNSTREAM_TARGETS)); - params.entry(new ModelZipEntryFile("s2.xml", "s2", false, false, SubmodelType.PATHWAY)); - params.entry(new ModelZipEntryFile("s3.xml", "s3", false, false, SubmodelType.UNKNOWN)); - params.entry(new ModelZipEntryFile("mapping.xml", null, false, true, null)); - Model model = converter.createModel(params); - assertNotNull(model); - assertEquals("main", model.getName()); - assertEquals(3, model.getSubmodelConnections().size()); - - Model s1Model = null; - Model s2Model = null; - Model s3Model = null; - - for (ModelSubmodelConnection submodel : model.getSubmodelConnections()) { - if (submodel.getName().equals("s12")) { - s1Model = submodel.getSubmodel().getModel(); - } - if (submodel.getName().equals("s2")) { - s2Model = submodel.getSubmodel().getModel(); - } - if (submodel.getName().equals("s3")) { - s3Model = submodel.getSubmodel().getModel(); - } - } - assertNotNull(s1Model); - assertNotNull(s2Model); - assertNotNull(s3Model); - - Alias al1 = model.getAliasByAliasId("sa1"); - assertNotNull(al1.getSubmodel()); - assertEquals(SubmodelType.DOWNSTREAM_TARGETS, al1.getSubmodel().getType()); - assertEquals(s1Model, al1.getSubmodel().getSubmodel().getModel()); - - Alias al2 = model.getAliasByAliasId("sa2"); - assertNull(al2.getSubmodel()); - - Alias al4 = model.getAliasByAliasId("sa4"); - assertNotNull(al4.getSubmodel()); - assertEquals(SubmodelType.PATHWAY, al4.getSubmodel().getType()); - assertEquals(s2Model, al4.getSubmodel().getSubmodel().getModel()); - - Alias s1_al1 = s1Model.getAliasByAliasId("sa1"); - assertNotNull(s1_al1.getSubmodel()); - assertEquals(SubmodelType.DOWNSTREAM_TARGETS, s1_al1.getSubmodel().getType()); - assertEquals(s3Model, s1_al1.getSubmodel().getSubmodel().getModel()); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testParamsMissing() throws Exception { - try { - ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); - ComplexZipConverterParams params = new ComplexZipConverterParams(); - params.zipFile(new ZipFile("testFiles/complex_model.zip")); - params.entry(new ModelZipEntryFile("main.xml", "main", true, false, null)); - params.entry(new ModelZipEntryFile("s1.xml", "s1", false, false, SubmodelType.DOWNSTREAM_TARGETS)); - params.entry(new ModelZipEntryFile("s3.xml", "s3", false, false, SubmodelType.UNKNOWN)); - params.entry(new ModelZipEntryFile("mapping.xml", null, false, true, null)); - try { - converter.createModel(params); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - - } - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testParamsInvalid1() throws Exception { - try { - // two mains - ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); - ComplexZipConverterParams params = new ComplexZipConverterParams(); - params.zipFile(new ZipFile("testFiles/complex_model.zip")); - params.entry(new ModelZipEntryFile("main.xml", "main", true, false, null)); - params.entry(new ModelZipEntryFile("s1.xml", "s1", true, false, SubmodelType.DOWNSTREAM_TARGETS)); - params.entry(new ModelZipEntryFile("s2.xml", "s2", false, false, SubmodelType.PATHWAY)); - params.entry(new ModelZipEntryFile("s3.xml", "s3", false, false, SubmodelType.UNKNOWN)); - params.entry(new ModelZipEntryFile("mapping.xml", null, false, true, null)); - try { - converter.createModel(params); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - - } - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testParamsInvalid2() throws Exception { - try { - // zero mains - ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); - ComplexZipConverterParams params = new ComplexZipConverterParams(); - params.zipFile(new ZipFile("testFiles/complex_model.zip")); - params.entry(new ModelZipEntryFile("main.xml", "main", false, false, null)); - params.entry(new ModelZipEntryFile("s1.xml", "s1", false, false, SubmodelType.DOWNSTREAM_TARGETS)); - params.entry(new ModelZipEntryFile("s2.xml", "s2", false, false, SubmodelType.PATHWAY)); - params.entry(new ModelZipEntryFile("s3.xml", "s3", false, false, SubmodelType.UNKNOWN)); - params.entry(new ModelZipEntryFile("mapping.xml", null, false, true, null)); - try { - converter.createModel(params); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - - } - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testParamsInvalid3() throws Exception { - try { - // two mappings - ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); - ComplexZipConverterParams params = new ComplexZipConverterParams(); - params.zipFile(new ZipFile("testFiles/complex_model.zip")); - params.entry(new ModelZipEntryFile("main.xml", "main", true, false, null)); - params.entry(new ModelZipEntryFile("s1.xml", "s1", false, true, SubmodelType.DOWNSTREAM_TARGETS)); - params.entry(new ModelZipEntryFile("s2.xml", "s2", false, false, SubmodelType.PATHWAY)); - params.entry(new ModelZipEntryFile("s3.xml", "s3", false, false, SubmodelType.UNKNOWN)); - params.entry(new ModelZipEntryFile("mapping.xml", null, false, true, null)); - try { - converter.createModel(params); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - - } - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testParamsMissingMapping() throws Exception { - try { - // zero mappings (should be ok) - ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); - ComplexZipConverterParams params = new ComplexZipConverterParams(); - params.zipFile(new ZipFile("testFiles/complex_model.zip")); - params.entry(new ModelZipEntryFile("main.xml", "main", true, false, null)); - params.entry(new ModelZipEntryFile("s1.xml", "s1", false, false, SubmodelType.DOWNSTREAM_TARGETS)); - params.entry(new ModelZipEntryFile("s2.xml", "s2", false, false, SubmodelType.PATHWAY)); - params.entry(new ModelZipEntryFile("s3.xml", "s3", false, false, SubmodelType.UNKNOWN)); - params.entry(new ModelZipEntryFile("mapping.xml", "", false, false, null)); - Model model = converter.createModel(params); - - assertNotNull(model); - - assertEquals(4, model.getSubmodelConnections().size()); - - for (ModelSubmodelConnection submodel : model.getSubmodelConnections()) { - if (submodel.getName().equals("s1")) { - assertEquals(SubmodelType.DOWNSTREAM_TARGETS, submodel.getType()); - } else if (submodel.getName().equals("s2")) { - assertEquals(SubmodelType.PATHWAY, submodel.getType()); - } else if (submodel.getName().equals("s3")) { - assertEquals(SubmodelType.UNKNOWN, submodel.getType()); - } else if (submodel.getName().equals("mapping")) { - assertEquals(SubmodelType.UNKNOWN, submodel.getType()); - } - } - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - - @Test - public void testTooManyParams() throws Exception { - try { - // zero mappings (should be ok) - ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); - ComplexZipConverterParams params = new ComplexZipConverterParams(); - params.zipFile(new ZipFile("testFiles/complex_model.zip")); - params.entry(new ModelZipEntryFile("main.xml", "main", true, false, null)); - params.entry(new ModelZipEntryFile("s1.xml", "s1", false, false, SubmodelType.DOWNSTREAM_TARGETS)); - params.entry(new ModelZipEntryFile("s2.xml", "s2", false, false, SubmodelType.PATHWAY)); - params.entry(new ModelZipEntryFile("s3.xml", "s3", false, false, SubmodelType.UNKNOWN)); - params.entry(new ModelZipEntryFile("mapping.xml", "", false, false, null)); - params.entry(new ModelZipEntryFile("blabla.xml", "s3", false, false, SubmodelType.UNKNOWN)); - try { - converter.createModel(params); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - - } - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testInvalidMappingFile() throws Exception { - try { - // zero mappings (should be ok) - ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); - ComplexZipConverterParams params = new ComplexZipConverterParams(); - params.zipFile(new ZipFile("testFiles/invalid_mapping.zip")); - params.entry(new ModelZipEntryFile("main.xml", "main", true, false, null)); - params.entry(new ModelZipEntryFile("mapping.xml", null, false, true, null)); - try { - Model model = converter.createModel(params); - for (String string : model.getCreationWarnings()) { - logger.debug(string); - } - fail("Exception expected"); - } catch (InvalidArgumentException e) { - - } - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testOverviewImageLink() throws Exception { - try { - ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); - ZipFile zipFile = new ZipFile("testFiles/complex_model_with_img.zip"); - ComplexZipConverterParams params = new ComplexZipConverterParams(); - params.zipFile(zipFile); - - ZipEntryFileFactory factory = new ZipEntryFileFactory(); - Enumeration<? extends ZipEntry> entries = zipFile.entries(); - while (entries.hasMoreElements()) { - ZipEntry entry = entries.nextElement(); - if (!entry.isDirectory()) { - params.entry(factory.createZipEntryFile(entry, zipFile)); - } - } - - Model model = converter.createModel(params); - assertNotNull(model); - assertEquals("main", model.getName()); - - List<OverviewImage> result = model.getOverviewImages(); - - assertNotNull(result); - assertEquals(1, result.size()); - - OverviewImage img = result.get(0); - - assertEquals("test.png", img.getFilename()); - assertEquals((Integer) 639, img.getHeight()); - assertEquals((Integer) 963, img.getWidth()); - assertEquals(2, img.getLinks().size()); - - OverviewLink link = img.getLinks().get(0); - List<Point2D> polygon = link.getPolygonCoordinates(); - assertEquals(4, polygon.size()); - - assertTrue(link instanceof OverviewModelLink); - - OverviewModelLink mLink = (OverviewModelLink) link; - assertEquals((Integer) 10, mLink.getxCoord()); - assertEquals((Integer) 10, mLink.getyCoord()); - assertEquals((Integer) 3, mLink.getZoomLevel()); - assertEquals(model, mLink.getLinkedModel()); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - -} +package lcsb.mapviewer.converter; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.awt.geom.Point2D; +import java.io.File; +import java.io.InputStream; +import java.util.Enumeration; +import java.util.List; +import java.util.zip.ZipEntry; +import java.util.zip.ZipFile; + +import lcsb.mapviewer.common.MimeType; +import lcsb.mapviewer.common.exception.InvalidArgumentException; +import lcsb.mapviewer.common.exception.InvalidClassException; +import lcsb.mapviewer.converter.zip.ModelZipEntryFile; +import lcsb.mapviewer.converter.zip.ZipEntryFileFactory; +import lcsb.mapviewer.model.map.InconsistentModelException; +import lcsb.mapviewer.model.map.OverviewImage; +import lcsb.mapviewer.model.map.OverviewLink; +import lcsb.mapviewer.model.map.OverviewModelLink; +import lcsb.mapviewer.model.map.layout.alias.Alias; +import lcsb.mapviewer.model.map.layout.alias.ComplexAlias; +import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; +import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.model.map.model.ModelFullIndexed; +import lcsb.mapviewer.model.map.model.ModelSubmodelConnection; +import lcsb.mapviewer.model.map.model.SubmodelType; +import lcsb.mapviewer.model.map.reaction.Product; +import lcsb.mapviewer.model.map.reaction.Reactant; +import lcsb.mapviewer.model.map.reaction.Reaction; +import lcsb.mapviewer.model.map.reaction.type.TransportReaction; +import lcsb.mapviewer.model.map.species.ComplexSpecies; +import lcsb.mapviewer.model.map.species.GenericProtein; +import lcsb.mapviewer.model.map.species.Phenotype; +import lcsb.mapviewer.model.map.species.Protein; + +import org.apache.log4j.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class ComplexZipConverterTest { + private static Logger logger = Logger.getLogger(ComplexZipConverterTest.class); + + private abstract class AbstractConverter implements IConverter { + + } + + private interface InterfaceConverter extends IConverter { + + } + + public static class MockConverter implements IConverter { + + @Override + public Model createModel(ConverterParams params) { + Model result = new ModelFullIndexed(null); + + Protein s1 = new GenericProtein(); + s1.setElementId("s1"); + SpeciesAlias sa1 = new SpeciesAlias(s1); + sa1.setAliasId("sa1"); + result.addAlias(sa1); + result.addElement(s1); + + Protein s2 = new GenericProtein(); + s2.setElementId("s2"); + SpeciesAlias sa2 = new SpeciesAlias(s2); + sa2.setAliasId("sa2"); + result.addAlias(sa2); + result.addElement(s2); + + Protein s3 = new GenericProtein(); + s3.setElementId("s3"); + SpeciesAlias sa3 = new SpeciesAlias(s3); + sa3.setAliasId("sa3"); + result.addAlias(sa3); + result.addElement(s3); + + Phenotype s4 = new Phenotype(); + s4.setElementId("s4"); + SpeciesAlias sa4 = new SpeciesAlias(s4); + sa4.setAliasId("sa4"); + result.addAlias(sa4); + result.addElement(s4); + + ComplexSpecies cs1 = new ComplexSpecies(); + ComplexAlias ca1 = new ComplexAlias(cs1); + ca1.setAliasId("ca1"); + cs1.setElementId("cs1"); + cs1.setName("main"); + result.addAlias(ca1); + result.addElement(cs1); + Protein s5 = new GenericProtein(); + s5.setElementId("s5"); + s5.setName("sa1"); + SpeciesAlias sa5 = new SpeciesAlias(s5); + sa5.setAliasId("sa5"); + result.addAlias(sa5); + result.addElement(s5); + ca1.addAlias(sa5); + cs1.addElement(s5); + Phenotype s6 = new Phenotype(); + s6.setElementId("s6"); + s6.setName("sa4"); + SpeciesAlias sa6 = new SpeciesAlias(s6); + sa6.setAliasId("sa6"); + result.addAlias(sa6); + result.addElement(s6); + ca1.addAlias(sa6); + cs1.addElement(s6); + + ComplexSpecies cs2 = new ComplexSpecies(); + ComplexAlias ca2 = new ComplexAlias(cs2); + ca2.setAliasId("ca2"); + cs2.setElementId("cs2"); + cs2.setName("s1"); + result.addAlias(ca2); + result.addElement(cs2); + Protein s7 = new GenericProtein(); + s7.setElementId("s7"); + s7.setName("sa1"); + SpeciesAlias sa7 = new SpeciesAlias(s7); + sa7.setAliasId("sa7"); + result.addAlias(sa7); + result.addElement(s7); + ca2.addAlias(sa7); + cs2.addElement(s7); + + ComplexSpecies cs3 = new ComplexSpecies(); + ComplexAlias ca3 = new ComplexAlias(cs3); + ca3.setAliasId("ca3"); + cs3.setElementId("cs3"); + cs3.setName("s2"); + result.addAlias(ca3); + result.addElement(cs3); + + ComplexSpecies cs4 = new ComplexSpecies(); + ComplexAlias ca4 = new ComplexAlias(cs4); + ca4.setAliasId("ca4"); + cs4.setElementId("cs4"); + cs4.setName("s3"); + result.addAlias(ca4); + result.addElement(cs4); + + Reaction r1 = new TransportReaction(); + r1.addReactant(new Reactant(sa5, s5)); + r1.addProduct(new Product(sa7, s7)); + result.addReaction(r1); + + Reaction r2 = new TransportReaction(); + r2.addReactant(new Reactant(sa6, s6)); + r2.addProduct(new Product(ca3, cs3)); + result.addReaction(r2); + + Reaction r3 = new TransportReaction(); + r3.addReactant(new Reactant(sa7, s7)); + r3.addProduct(new Product(ca4, cs4)); + result.addReaction(r3); + return result; + } + + @Override + public InputStream exportModelToInputStream(Model model) throws InconsistentModelException { + // TODO Auto-generated method stub + return null; + } + + @Override + public File exportModelToFile(Model model, String filePath) throws InconsistentModelException { + // TODO Auto-generated method stub + return null; + } + + @Override + public String getCommonName() { + // TODO Auto-generated method stub + return null; + } + + @Override + public MimeType getMimeType() { + // TODO Auto-generated method stub + return null; + } + + @Override + public String getFileExtension() { + // TODO Auto-generated method stub + return null; + } + + } + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testConstructor() throws Exception { + try { + try { + new ComplexZipConverter<AbstractConverter>(AbstractConverter.class); + fail("Exception expected"); + } catch (InvalidClassException e) { + + } + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testConstructor2() throws Exception { + try { + try { + new ComplexZipConverter<InterfaceConverter>(InterfaceConverter.class); + fail("Exception expected"); + } catch (InvalidClassException e) { + + } + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testConstructor3() throws Exception { + try { + new ComplexZipConverter<MockConverter>(MockConverter.class); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testParamsOk() throws Exception { + try { + ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); + ComplexZipConverterParams params = new ComplexZipConverterParams(); + params.zipFile(new ZipFile("testFiles/complex_model.zip")); + params.entry(new ModelZipEntryFile("main.xml", "main", true, false, null)); + params.entry(new ModelZipEntryFile("s1.xml", "s1", false, false, SubmodelType.DOWNSTREAM_TARGETS)); + params.entry(new ModelZipEntryFile("s2.xml", "s2", false, false, SubmodelType.PATHWAY)); + params.entry(new ModelZipEntryFile("s3.xml", "s3", false, false, SubmodelType.UNKNOWN)); + params.entry(new ModelZipEntryFile("mapping.xml", null, false, true, null)); + Model model = converter.createModel(params); + assertNotNull(model); + assertEquals("main", model.getName()); + assertEquals(3, model.getSubmodelConnections().size()); + + Model s1Model = null; + Model s2Model = null; + Model s3Model = null; + + for (ModelSubmodelConnection submodel : model.getSubmodelConnections()) { + if (submodel.getName().equals("s1")) { + s1Model = submodel.getSubmodel().getModel(); + } + if (submodel.getName().equals("s2")) { + s2Model = submodel.getSubmodel().getModel(); + } + if (submodel.getName().equals("s3")) { + s3Model = submodel.getSubmodel().getModel(); + } + } + assertNotNull(s1Model); + assertNotNull(s2Model); + assertNotNull(s3Model); + + Alias al1 = model.getAliasByAliasId("sa1"); + assertNotNull(al1.getSubmodel()); + assertEquals(SubmodelType.DOWNSTREAM_TARGETS, al1.getSubmodel().getType()); + assertEquals(s1Model, al1.getSubmodel().getSubmodel().getModel()); + + Alias al2 = model.getAliasByAliasId("sa2"); + assertNull(al2.getSubmodel()); + + Alias al4 = model.getAliasByAliasId("sa4"); + assertNotNull(al4.getSubmodel()); + assertEquals(SubmodelType.PATHWAY, al4.getSubmodel().getType()); + assertEquals(s2Model, al4.getSubmodel().getSubmodel().getModel()); + + Alias s1_al1 = s1Model.getAliasByAliasId("sa1"); + assertNotNull(s1_al1.getSubmodel()); + assertEquals(SubmodelType.DOWNSTREAM_TARGETS, s1_al1.getSubmodel().getType()); + assertEquals(s3Model, s1_al1.getSubmodel().getSubmodel().getModel()); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testChangeModelZipEntry() throws Exception { + try { + ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); + ComplexZipConverterParams params = new ComplexZipConverterParams(); + params.zipFile(new ZipFile("testFiles/complex_model.zip")); + params.entry(new ModelZipEntryFile("main.xml", "main", true, false, null)); + params.entry(new ModelZipEntryFile("s1.xml", "s12", false, false, SubmodelType.DOWNSTREAM_TARGETS)); + params.entry(new ModelZipEntryFile("s2.xml", "s2", false, false, SubmodelType.PATHWAY)); + params.entry(new ModelZipEntryFile("s3.xml", "s3", false, false, SubmodelType.UNKNOWN)); + params.entry(new ModelZipEntryFile("mapping.xml", null, false, true, null)); + Model model = converter.createModel(params); + assertNotNull(model); + assertEquals("main", model.getName()); + assertEquals(3, model.getSubmodelConnections().size()); + + Model s1Model = null; + Model s2Model = null; + Model s3Model = null; + + for (ModelSubmodelConnection submodel : model.getSubmodelConnections()) { + if (submodel.getName().equals("s12")) { + s1Model = submodel.getSubmodel().getModel(); + } + if (submodel.getName().equals("s2")) { + s2Model = submodel.getSubmodel().getModel(); + } + if (submodel.getName().equals("s3")) { + s3Model = submodel.getSubmodel().getModel(); + } + } + assertNotNull(s1Model); + assertNotNull(s2Model); + assertNotNull(s3Model); + + Alias al1 = model.getAliasByAliasId("sa1"); + assertNotNull(al1.getSubmodel()); + assertEquals(SubmodelType.DOWNSTREAM_TARGETS, al1.getSubmodel().getType()); + assertEquals(s1Model, al1.getSubmodel().getSubmodel().getModel()); + + Alias al2 = model.getAliasByAliasId("sa2"); + assertNull(al2.getSubmodel()); + + Alias al4 = model.getAliasByAliasId("sa4"); + assertNotNull(al4.getSubmodel()); + assertEquals(SubmodelType.PATHWAY, al4.getSubmodel().getType()); + assertEquals(s2Model, al4.getSubmodel().getSubmodel().getModel()); + + Alias s1_al1 = s1Model.getAliasByAliasId("sa1"); + assertNotNull(s1_al1.getSubmodel()); + assertEquals(SubmodelType.DOWNSTREAM_TARGETS, s1_al1.getSubmodel().getType()); + assertEquals(s3Model, s1_al1.getSubmodel().getSubmodel().getModel()); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testParamsMissing() throws Exception { + try { + ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); + ComplexZipConverterParams params = new ComplexZipConverterParams(); + params.zipFile(new ZipFile("testFiles/complex_model.zip")); + params.entry(new ModelZipEntryFile("main.xml", "main", true, false, null)); + params.entry(new ModelZipEntryFile("s1.xml", "s1", false, false, SubmodelType.DOWNSTREAM_TARGETS)); + params.entry(new ModelZipEntryFile("s3.xml", "s3", false, false, SubmodelType.UNKNOWN)); + params.entry(new ModelZipEntryFile("mapping.xml", null, false, true, null)); + try { + converter.createModel(params); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + + } + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testParamsInvalid1() throws Exception { + try { + // two mains + ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); + ComplexZipConverterParams params = new ComplexZipConverterParams(); + params.zipFile(new ZipFile("testFiles/complex_model.zip")); + params.entry(new ModelZipEntryFile("main.xml", "main", true, false, null)); + params.entry(new ModelZipEntryFile("s1.xml", "s1", true, false, SubmodelType.DOWNSTREAM_TARGETS)); + params.entry(new ModelZipEntryFile("s2.xml", "s2", false, false, SubmodelType.PATHWAY)); + params.entry(new ModelZipEntryFile("s3.xml", "s3", false, false, SubmodelType.UNKNOWN)); + params.entry(new ModelZipEntryFile("mapping.xml", null, false, true, null)); + try { + converter.createModel(params); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + + } + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testParamsInvalid2() throws Exception { + try { + // zero mains + ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); + ComplexZipConverterParams params = new ComplexZipConverterParams(); + params.zipFile(new ZipFile("testFiles/complex_model.zip")); + params.entry(new ModelZipEntryFile("main.xml", "main", false, false, null)); + params.entry(new ModelZipEntryFile("s1.xml", "s1", false, false, SubmodelType.DOWNSTREAM_TARGETS)); + params.entry(new ModelZipEntryFile("s2.xml", "s2", false, false, SubmodelType.PATHWAY)); + params.entry(new ModelZipEntryFile("s3.xml", "s3", false, false, SubmodelType.UNKNOWN)); + params.entry(new ModelZipEntryFile("mapping.xml", null, false, true, null)); + try { + converter.createModel(params); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + + } + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testParamsInvalid3() throws Exception { + try { + // two mappings + ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); + ComplexZipConverterParams params = new ComplexZipConverterParams(); + params.zipFile(new ZipFile("testFiles/complex_model.zip")); + params.entry(new ModelZipEntryFile("main.xml", "main", true, false, null)); + params.entry(new ModelZipEntryFile("s1.xml", "s1", false, true, SubmodelType.DOWNSTREAM_TARGETS)); + params.entry(new ModelZipEntryFile("s2.xml", "s2", false, false, SubmodelType.PATHWAY)); + params.entry(new ModelZipEntryFile("s3.xml", "s3", false, false, SubmodelType.UNKNOWN)); + params.entry(new ModelZipEntryFile("mapping.xml", null, false, true, null)); + try { + converter.createModel(params); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + + } + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testParamsMissingMapping() throws Exception { + try { + // zero mappings (should be ok) + ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); + ComplexZipConverterParams params = new ComplexZipConverterParams(); + params.zipFile(new ZipFile("testFiles/complex_model.zip")); + params.entry(new ModelZipEntryFile("main.xml", "main", true, false, null)); + params.entry(new ModelZipEntryFile("s1.xml", "s1", false, false, SubmodelType.DOWNSTREAM_TARGETS)); + params.entry(new ModelZipEntryFile("s2.xml", "s2", false, false, SubmodelType.PATHWAY)); + params.entry(new ModelZipEntryFile("s3.xml", "s3", false, false, SubmodelType.UNKNOWN)); + params.entry(new ModelZipEntryFile("mapping.xml", "", false, false, null)); + Model model = converter.createModel(params); + + assertNotNull(model); + + assertEquals(4, model.getSubmodelConnections().size()); + + for (ModelSubmodelConnection submodel : model.getSubmodelConnections()) { + if (submodel.getName().equals("s1")) { + assertEquals(SubmodelType.DOWNSTREAM_TARGETS, submodel.getType()); + } else if (submodel.getName().equals("s2")) { + assertEquals(SubmodelType.PATHWAY, submodel.getType()); + } else if (submodel.getName().equals("s3")) { + assertEquals(SubmodelType.UNKNOWN, submodel.getType()); + } else if (submodel.getName().equals("mapping")) { + assertEquals(SubmodelType.UNKNOWN, submodel.getType()); + } + } + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + + @Test + public void testTooManyParams() throws Exception { + try { + // zero mappings (should be ok) + ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); + ComplexZipConverterParams params = new ComplexZipConverterParams(); + params.zipFile(new ZipFile("testFiles/complex_model.zip")); + params.entry(new ModelZipEntryFile("main.xml", "main", true, false, null)); + params.entry(new ModelZipEntryFile("s1.xml", "s1", false, false, SubmodelType.DOWNSTREAM_TARGETS)); + params.entry(new ModelZipEntryFile("s2.xml", "s2", false, false, SubmodelType.PATHWAY)); + params.entry(new ModelZipEntryFile("s3.xml", "s3", false, false, SubmodelType.UNKNOWN)); + params.entry(new ModelZipEntryFile("mapping.xml", "", false, false, null)); + params.entry(new ModelZipEntryFile("blabla.xml", "s3", false, false, SubmodelType.UNKNOWN)); + try { + converter.createModel(params); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + + } + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testInvalidMappingFile() throws Exception { + try { + // zero mappings (should be ok) + ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); + ComplexZipConverterParams params = new ComplexZipConverterParams(); + params.zipFile(new ZipFile("testFiles/invalid_mapping.zip")); + params.entry(new ModelZipEntryFile("main.xml", "main", true, false, null)); + params.entry(new ModelZipEntryFile("mapping.xml", null, false, true, null)); + try { + Model model = converter.createModel(params); + for (String string : model.getCreationWarnings()) { + logger.debug(string); + } + fail("Exception expected"); + } catch (InvalidArgumentException e) { + + } + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testOverviewImageLink() throws Exception { + try { + ComplexZipConverter<MockConverter> converter = new ComplexZipConverter<MockConverter>(MockConverter.class); + ZipFile zipFile = new ZipFile("testFiles/complex_model_with_img.zip"); + ComplexZipConverterParams params = new ComplexZipConverterParams(); + params.zipFile(zipFile); + + ZipEntryFileFactory factory = new ZipEntryFileFactory(); + Enumeration<? extends ZipEntry> entries = zipFile.entries(); + while (entries.hasMoreElements()) { + ZipEntry entry = entries.nextElement(); + if (!entry.isDirectory()) { + params.entry(factory.createZipEntryFile(entry, zipFile)); + } + } + + Model model = converter.createModel(params); + assertNotNull(model); + assertEquals("main", model.getName()); + + List<OverviewImage> result = model.getOverviewImages(); + + assertNotNull(result); + assertEquals(1, result.size()); + + OverviewImage img = result.get(0); + + assertEquals("test.png", img.getFilename()); + assertEquals((Integer) 639, img.getHeight()); + assertEquals((Integer) 963, img.getWidth()); + assertEquals(2, img.getLinks().size()); + + OverviewLink link = img.getLinks().get(0); + List<Point2D> polygon = link.getPolygonCoordinates(); + assertEquals(4, polygon.size()); + + assertTrue(link instanceof OverviewModelLink); + + OverviewModelLink mLink = (OverviewModelLink) link; + assertEquals((Integer) 10, mLink.getxCoord()); + assertEquals((Integer) 10, mLink.getyCoord()); + assertEquals((Integer) 3, mLink.getZoomLevel()); + assertEquals(model, mLink.getLinkedModel()); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + +} diff --git a/converter/tmp/test.png b/converter/tmp/test.png new file mode 100644 index 0000000000000000000000000000000000000000..adbe702689a43364dc6f0a6cebedcc9277388a9c GIT binary patch literal 10796 zcmeHNdmvQ#+dnR$3(`$Vqs9tLri)UGnJ(^aA!W$5v@t1{6qDOfTP{<Hl&DNGrEM6A z8Vp7xl{BIGwIvNon8FM*VQ$_t$L`x4Kl|?c`}ckKFUND9@8@}*&vQB7Gv}M)veRCD zmd-2y0Ms2FY<2;FQau1D64VqyNn6n6cJPlv#4h`-0QIGAKlqPw;FcX*0H7pows_wR z@c)@%4xSMJpaHJZs8?tVy>kEnj2}7LY}t+X9eB4R!wVO6-BtbZppn(Ab6Y;X!oL=* zetqwAw+ma{9zTcV+2H2+NhNz`Rc%8Y(>l0e(BX#>)u&2UPArT>2>|fdGE{(sg-$vE z;BJHi0FRqw1;GFGKf?d7gd`xO;~1$x#387>yiHcPk(hQ?>LF1GLl~$7>Na+SLh0g- zr!rI$RFF3U1X&5AyIO%)o5>?6EMXyD8`3c++!w0W@-oc<^SKq`9u7&t9#Z;sctVJo zkhFIbPSAyowQC@S6md0KV18}8qta$2twzjc{%C_=xli2k&g0N+Pu(SwlCfYKMN_rv zBxE&N|3&~WD-^4@0Dm45oYucis2DQ@Rn!Y1J2qi9BZfo*o-S0b{Rp9qFRc)dce6iG z(W>0#kdGoe6L#sC8jZqKe!oLz+qK&D*(eJAa)2|U5al9^i66q}<rC8)>B7R=0tn{T z(qF0`j$Hv4sf*9ZZ0CjNr;t2jKee;4z<X%X>m#qZBg8ZUUHDUi9@tMo%PTkhG`5Gx zJW3ZHO28P)B&i!_jXfYTkJE)Y{#KATO?Dzg$=F#MrFf2to6Pp^!@GyViOd+fQ0V^y zq{6TpLR61^1y$yqah0iL24@b&Eb^-#-~^wZq_SD(oaki(7POSQ4}caG*>%(qc!KxT znvimHNK#<;CilVE-4LvwwRa{If=hl7(<k-_jWVQQW-nu+<#x+`OVgUVc2<<4cAl&P z?zG<dJ#LX-?*K=XxP6kFApVySV)3^~fzOr*aCYb<&pUUtBZ9Y{O|7vAf|A*CqovRi zRWl62sHsD7bJiU?KGE<7<OY3nA>>VzT|uO0tTt$SQ4WN=AaKE<{00j!gflmlAe9ii z+=pJVmNZJ}(r-{Xsx_;%-6n=|A_dL$)X5TB;`lC_SJXj8DE^)Xm4unT9qQhgN+?!S z`KygAru0kcH?urruhJ+<O5bkCVp4mq_KLWw=50Iclwu&nIr#v&*Fc*+Jixh`I0B^( zxi)X4ju<MA6abHwOcv7OiWB1vGy*;PN@q1B=~{eq(*fS{_f&-GALYN+ZvXkcRtrE= zbIupYOeHrYHzg8PKSc^^AEiT!vKM=9isan`7oj&og@l}|Z<K^WTm!vPD~7^!sCRG_ zJ;W!6U^NY@CJTL*K5`&{w;7Dn1wR8KN5c-i*Azi*XVuSQLPhbb|F8Lyqr4lSj<?4x znQ@0&2RqRL-YZbDUpDK(zLg>u4Ky_<;px#gy0oC=eI@=}W~r_Dae&ixMg)a^5~bLJ z*lPvWy6UnTs0bXY9kzLSSdqcF5b@43QngNKoqqTbzdID0hW?`;xOr*=*$n|P^k|LF z$qpIFn=vrnpdU+*UfHP%8M{lIRfb)K=xt|>C=j5A<$Lo<)seg)HZ^zQ6DSv%-kGFj zCHNPiSf=_ZsCabDa+v46tcGcnz~o611&ba8+M^H?AkO2}5ON6dW$CDC?&)?`X~SYj zvY%L28fBJCY-dG00U(Jx@nPvGDmT5IwXX3Ng#6>GyDwkvwL;M-y=lZre?0luuG8_6 zAy_6dD__Q<QK`|U_I*6v4r=apGpM3k4zz?lWOip)`dH_CLz5}*N#2LUw1$!6^k`q) zPN<XiwH$fa+wDpBv8I<n*)Y0iw4wb3?>&eUpaa<|!<OX?Fz{flGR=!1>hGHT*j#Cv z+X%+BV?N~bhg5W_FEMZ=QczfG4J96Do9)@y5D`s}9(;QRYU7f;XN5!E+0{N0<$DH@ zj*sm*&(VevaE5I1UkBk(Q#DFwo91@6v(gkTp?a~|V{^slAkT(PjbHxz<Ww&}GQRF7 z7KkDR0gv87)w*I~*DqP#R{b=Jp2kav4u?AqW^``%Zwwzva+nHa&C2%h+a7HU04go` z01bfj9qFDM4)6lP=)&+W9|-Bug2Z3)7h&drN;;Fh;c&~rWNG<Wdby9JFKlws{b0NM z?e7hmPX;)u$pH`}!%x57WTk0MHinvhsXZ3sST#AlQePl^BtP(WLGk^#Hs+Y%;^XaL zTKiViJ^d<WG3Uw_P1(=fcrYQR5h~v>#3BL<qnLnoY2A#{B#&rkt_Q$2@{8#ZMFzeJ zI!|TZ>b4YD&^g<__I%OQP}_JmLt00Wh#0SfdH81b*-GsOh9odfzpYA?LT^<X==pN$ zvWi9?8Pj{c&pvMH$63se<(cSFM|xd7c+WmyBGk3h!$}w+^~=W`5(QrmwmNsp$^WWh z;b_1hct74mU3aS^;rY<9_<xm|n9W<T&dI<2>K9>c%(yVy&q>MNrIj>nd7UJPHK}xR z@n(=MYG~&%Lf@MB+vG%jqkiWTCc^9tblZdN(W1cL*!4p_Ujm(UHlECoX43LV#{KJj z%E?~3d+CkrrZ>z?^Dt!tiE*ec#;rB5@{l8~;(my8LRK-!7}u%hBy_{#?qOZQI|tN` zMIWuaRQBI@BH}3{`L`JhsvTUsOO$dtu(X2OrZ;I+;Y6Fl&f8$@w4X4C-W`2|pI5Bi zS{&;;h(G3g;ZjGg63P!#`C*2FmrJW3*Oz~Dp!k>>SJ#*O28Y7CU)H<CVs=m)s$%1~ zOL3jcorJ+sKQbXmJo|c5L>;PFWAs3GHD^gQ_o1cKA3rWUbx}nlpG+I>qvx_q-*0ma z?M<n&?0!};+Qd7>Ge-H<+Bij<d`LZigKSYMp4}fnx`JYu_I}$We`j>K&v`s*Na#87 zi4qY)8X2DPGnq{5F6vWriZ%>pT!<fW8~(D5AHjpIvbaC5)lhP!cfGJ=>|_?oA8Am% zFw_=IjmTqWzZ>a%8tQk=hODYsh55$)MR=2+PG)>~veiMfB(%Osdv$uohg4b~n5rXI zLZ!iqzQ^)1AGQANFem1xP0*I*rtE})J+5bDd>iRVl{bAAUrx5xD#DK|uH4n?#dANV zY*3w)L{i0ksD{Z@4dTLmYZ6j2`R-K<mu+zz>S`f{U_Lbe&q`Yy{jSMdi-D}cks)jB zDYC}x?=<ly@&-e@Tl9uP#lKo~_sqWH;27HA)uNTjU%4pWc;HzOjEo(om&){pH^4$~ z*y|L7&f&`EX=$1?VWL4ZT2<c4P{8_Ik~<ci@;2-)yS;N3eS_gWn{Paz8XqdZG_>cp zOzD%-QWJQga7V(M)|KhY3!_H97T=oq<oWKLJU8tp9u?nWjO;!F3r4-V@D_s?JMc(8 z-K(na-(rN%E`X)n4HeRlDNmk%LOzwn_Jr=Ck7hf&<O6!CG1kEMvq~H4`7YHs{6PQ3 z7e+w*8i}_3u-W&(ZhATr^l$qyQFk<ZzpD!`@t=ORMBiqFuTdTT&Z_$M=)U<PYT)w@ z-Ma4%o16AOnpjom6~A6$_-16k9Cm;sGyWhO+a?wDYs<knRp!&s!H7Yue8MV=M$yOP zttGnOseDyJw(VelIyV11Bv^5^UL>2S2XZW$o8p|m7F$OzXL1QIte$^&jBkR|8vTtX zC=*2|e@{h_du#4%QPpn+*2|*g7}m@x^P4%!J3q1RS$0R`cMzlgFP1{>*JcA6@?JQH z_o41AYsbo04dU}XKNr!XvCQwbTw3*)wYHfJ!XnW8HayW;-z>Q-ulKQ<KiWnew2%k< ztXV7)l+i^7-zm949_Qw<cZ#&eXTXHdOyV~U@I&N_qxoEK@H=NmdERsUqWSMnewi&F z$%v(ML)nNZTi%)2?vyK$1Pt$c=ACk!izY1EG`RM#wWoV7f6E^R=lA!iI^Mc}JH1v< zesDA|Ls-`gi3`Qea<t+GOZdS!!!Zl_#T8AvoJ9M^<@?io)YB1%G1Y?+voj6RX%WIb zCGYfmTvt}>RGFhAMt-{D2FYZSe6yHG?KS#$bSL2w-x_!E2tiEAmXueXL;pDzBMQLD zHB;K$^d>b(Z5^e(4}88rlgd0Qnh#v>Osk45N<Oo?RDOxxM0lgyH1e#|7a|ie+~EgE zow^sC4MLYc=5w<T!kQ5(z9R;oovA^|6QgWt(%Z6zg|CnBZ~pNR%860yH#{-ES4&;% z^u7)I!e<;`8fWy!Gv#ye><L_w2ux`4!j`$Nix19Ugms~{B>nMx!PS&;XXARcA%~Ld zR$skWep1d`(%?{mKU44RB|isx&8MDVTXUNQXWsq_vo1V9bFTGG<L<JztXT^3WV6j? z-<2I6-dj5C^!|LdG6h!~30Zm{?9-@YD=NDF0?3;r-AxjEpbnOi(*1ZcCXlo057%|i zlA|N;t|dZxG5&nkx_4cYjOl~wck7tgCVANySDkmgV+cPzF=$qOb2Ptxg3H{-{mA<( z$DIXXjuSls=lW80i7G~y(eoFs?`|@XbdBqc^fJzL+kXW6dm0+Jscf5E>X4g+lQi+c zzWWz}*kYLk+=7_ot;k#bVx=kdMo7Nq<R+oq#*xs*fBTK=JUv%f#|o<Rr~*Sb9>X{< z&6$=4@7v^Ce8&TPpTEj&(Q&7yzL;t2rtY{?WhiU?5uEBbwP_s$t20QuEq;k)`Cr^_ z@7vX;5qx?&&$b=wr=fg4j(-sMb18j$rsXR9Qf5u-NcG1EWFDz|I?k8B8Pl{f8#^{M z{5Ysj8)_R^v7F!+JrzwzBE`%40;sx(f`t!qVwU}zuUSbaw<=o|hVD!|ai7g!@LRbO zSS@p5ZL}(G&-}Fs3cga}A>Ow|zBLF~m*H-t*c1GUuD$hzb%sKxF09#95+Y!2p#!{x z!vGuY{{i@i1KdA#0KUfmQwRSSIq2$;_D)C{Z0y9k)q7yWuB!;WcJI$hu!(twwyU)^ zDJa=!PU%dd$sO6&s@@Cy#bFzKWgIe}Q7oNv#Spet;G$bzv9Sb|7xU#uISx+>>Kme9 zls>1Nk=yE+S2-&4(<lsuIa9PR-s#oD5|kFNgk!ICWn!pOmDNAPJz0jl9*QMsUiks8 zt<lm<qcBu|o(K0Nsqb?;i><U0?uo8h-gp*;F>8wUMsJ&uA$P*k#riPpuyUi%>>}xg z)pl@CJkpy;g;Is-#Klte)l(SsXn9VWM!Z?;xgS-!WU4kO9xap_tlkVaxf%Q-^1l}w zr9X|LO4m#U0mY-mQtPne@IuJ9(PJ}&qqQts`HiKHhE}-v6=xfO)rK*<(dIEPpOU8N zy%+A`T-PUQRP?Mc931=&(bU%i{DjmB+k>eWYkO8b6nfMihuic;<=~G9N)o=L!VAbl znK#U-S9r4!<_f+<t-FVnq(n7=rH#8^>oKzsjSO>zyMj$!5Pwv#C6PD<d>5H}k)k=v zdpA6wOUTnCzc}yCRJiA;`C8%(R+0+U2yS$()+3Z>T+nptcUktTW>Xqyt!r)Z-ne6( zN8#wjTH~TRmLV`zT_>GU>=UQaxp%7ifao2o7oZxzol(@PLHWh$OjSqC?Gg>M3KXVM zw=YD`4_g5zEYNlsQ6@Z4dm6sA%3b&@<`w6ng7%b_bN^u|oWfM~hQGsf8Ees#sAz*Q z_}kH$0-LXhN?~U0o+;q-N@Dn&QpGITCK2bMoh>@UGE^~J0Sok=+1gQcit`-rt+3qf z^EoiM)Sa}r{8#vV%L{r>D?(ep@`G!;Di5~1lMsC<IJS}E=n;yuCLdn^9$LpmpIO=p z=2OME|3FMNReW9JZ5>wY1&cmso$ZsiJy>TeZUM~kh@2qPrT3$S3I<1RllOTlUsm_D zmLz0saBID1s@Qa<FgJd)<5goE-p>58PrTr<5&>S}hQ!wUvx{?&cA{YUJvckvJF<k; zHb-m<3;ZkcU6Wa9^vT4faCLoG|Hwp^+ibBDjJ~(qk6n4-YyDeoC_I*Bwii6<tobuz ze}thQ{_*(>oub^WohEQ}zm~v%?H7Dfh)RaFKAq@NdIamdIE)5kq;2zpt4GSC?<Uy8 zjUw{e4^vndm9602S*9g8c(pJW(HRaidOQ2+M$2$PCP0C;)ecNcMC5bMGawgUgnLu( zmRc0&s&sCGqm(?gjH&0`RP}`yCx6lPz$7Z-Sf?!<J;pUA@)f5`#TPyjytkN>s$&J4 zl~C|0N7e6U`reNYOH_h~x;<r9nITrwB<w7VnTYi*Cm&WtZ%(X-s|TkVl_j}rBE#;% z)jeI4B6~SqO6TGAOf}VMnXW>=5IxG+MF>=<4=ku=we+)#C`mK%#W3`Bwq^Nog^1;y z190u-t{1)?5xfEd;mQ7J<8<D~TDSHDT-&B4QwjWh9CjCuy*sn#4r?25Z56D(&Mr#X zv`=tdX(=4K%{IsvFHl!%hl|f9_Y2(<ufwR)k<RTnQNpsAd3egkgr@dtc45sL|Lw5! zpP8o~oz0@Deubyg1-ThjD*Topfnz%<_x<9|M%*L8VyV~5L!%xFS0*;YwWV|Wr}ZSs zfk`Z?ar9pY_XJ}T?R!|TL-8tn*W+yk?%`_o_#48s!Ec4v;QO5$<V5&ebWVTXMpTvX zOyUukTRHtmi@y<H@s#~IC9n90q$O`XiXnWMXl=9YPYKfeZzUCZYm*9VP5_-ar<@Ap zn!mlinTN73LMQ^Ao1AiPBF(0~PRTP>r6SaT&Y4a*DM*vQy$;VaZloeK0RKxF2d}9; zA1$sqU&_c3B7uZGPC4O7BX*S#DV;|Uz61}T0O0AD7xUJSgV$UWo(21%kPp<(GiWwV z&j|I36S9eniCk8%3UJv7cQ7S0mdS}A7)V*NM;73bN6t3bHQdJvjI)XTbsLs6PbOOO z!%vXNJN6nR0*?<Iypa6#qdRG6CQl*FD-I2GhCAhKK_WHx#@)vzr^P<ztWyBe+**Iu znsEYrT37Fk73;f`W&-#N83$9JHf9y0o7Z$lR7VOn0ST(cxZBCGu>+h4U1Rje*;o>I z7Hv`uTZ9&RJuZl6aq^V_&0Vc$=MId4+ZjUfn2zs#;VYn4Khs>_W+R#*EH_L+eI92u z&HxZM$xBw$@t(0%t-WIR$aZ1?SIwYVV7ne&A-oZjTs)A?vR4KMZ<8x(9G-w1xb~l8 z)0@CkMF4pGCn7HWY%nG50cGrvw!5AhP<}Pzvk<vN&nGT(pdm}r$H@nPD7RK`Z+<tp z3vIQJm1q{Bm4PrlgXRWXQ*@bdZpY)O@CgoE2^e(+)gE_Wrx4z|$6CrZ#E{x0TjLKE z!bVBM=y4{;PZ0o57<qdh=+2@LB3JO#<12)LK<%<jbL^t*v2hODduQxb+4da>Q#EM5 zWV=!tBA}sG)%3{T3n1Aqw)!%eYI3MJio#F_Vr?BGJhhS;-V&B$w-)#<-5TgLamr~* z-F%kir(=vr^^h1qlHk;zWD--v1xVuNloOn4F7}YDA*8DI1_&Af*-5823vgp`f<W<d zM4s%$3P9f?SKM}}52au_u~zQDz0IJpO704T8Gr{r!vAx4@IO5`iGPog@+K7UdS6As T6ag1J;R!g}?zEw9^*{Mvpf}H# literal 0 HcmV?d00001 diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/ColorModelCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/ColorModelCommand.java index adbf07b637..73e2aa0ff7 100644 --- a/model-command/src/main/java/lcsb/mapviewer/commands/ColorModelCommand.java +++ b/model-command/src/main/java/lcsb/mapviewer/commands/ColorModelCommand.java @@ -1,356 +1,356 @@ -package lcsb.mapviewer.commands; - -import java.awt.Color; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.apache.log4j.Logger; - -import lcsb.mapviewer.common.Pair; -import lcsb.mapviewer.common.exception.NotImplementedException; -import lcsb.mapviewer.model.graphics.ArrowTypeData; -import lcsb.mapviewer.model.map.MiriamData; -import lcsb.mapviewer.model.map.MiriamRelationType; -import lcsb.mapviewer.model.map.MiriamType; -import lcsb.mapviewer.model.map.layout.ColorSchema; -import lcsb.mapviewer.model.map.layout.InvalidColorSchemaException; -import lcsb.mapviewer.model.map.layout.alias.Alias; -import lcsb.mapviewer.model.map.layout.alias.CompartmentAlias; -import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; -import lcsb.mapviewer.model.map.model.Model; -import lcsb.mapviewer.model.map.model.ModelSubmodelConnection; -import lcsb.mapviewer.model.map.reaction.AbstractNode; -import lcsb.mapviewer.model.map.reaction.Product; -import lcsb.mapviewer.model.map.reaction.Reactant; -import lcsb.mapviewer.model.map.reaction.Reaction; -import lcsb.mapviewer.model.map.species.Species; - -/** - * This {@link ModelCommand} colors a model (nodes and reactions) according to - * set of {@link ColorSchema rules}. - * - * @author Piotr Gawron - * - */ -public class ColorModelCommand extends ModelCommand { - - /** - * Default class logger. - */ - @SuppressWarnings("unused") - private Logger logger = Logger.getLogger(ColorModelCommand.class); - - /** - * Set of color schemas used in this command to color model. - */ - private Collection<ColorSchema> schemas; - - /** - * Default constructor. - * - * @param model - * original model - * @param schemas - * set of color schemas used in this command to color model. - */ - public ColorModelCommand(Model model, Collection<ColorSchema> schemas) { - super(model); - this.schemas = schemas; - } - - /** - * Applies color schema into the reaction. - * - * @param reaction - * object to be colored - * @param schema - * color schema to be used - * @throws InvalidColorSchemaException - * thrown when alias was already colored by other schema - */ - private void applyColor(Reaction reaction, ColorSchema schema) throws InvalidColorSchemaException { - if (!reaction.getReactants().get(0).getLine().getColor().equals(Color.BLACK)) { - throw new InvalidColorSchemaException("At least two rows try to set color to reaction: " + reaction.getIdReaction()); - } - - Color color = schema.getNormalizedColor(); - for (AbstractNode node : reaction.getNodes()) { - node.getLine().setColor(color); - if (schema.getLineWidth() != null) { - node.getLine().setWidth(schema.getLineWidth()); - } - } - if (schema.getReverseReaction() != null && schema.getReverseReaction()) { - ArrowTypeData atdBegining = reaction.getReactants().get(0).getLine().getBeginAtd(); - ArrowTypeData atdEnd = reaction.getProducts().get(0).getLine().getEndAtd(); - for (Reactant reactant : reaction.getReactants()) { - reactant.getLine().setBeginAtd(atdEnd); - } - for (Product product : reaction.getProducts()) { - product.getLine().setEndAtd(atdBegining); - } - } - } - - /** - * Checks if the coloring schema should be used for the reaction. - * - * @param reaction - * reaction to which coloring schema is checked - * @param schema - * coloring schema - * @return <code>true</code> if coloring schema should be used for alias, - * <code>false</code> otherwise - */ - private boolean match(Reaction reaction, ColorSchema schema) { - if (schema.getName() != null) { - return false; - } - - if (schema.getReactionIdentifier() != null && schema.getReactionIdentifier().equalsIgnoreCase(reaction.getIdReaction())) { - return true; - } - if (schema.getGeneralIdentifier() != null && !schema.getGeneralIdentifier().equals("")) { - MiriamData md = MiriamType.getMiriamDataFromIdentifier(schema.getGeneralIdentifier()); - - if (reaction.getMiriamData().contains(md)) { - return true; - } - } - for (Pair<MiriamType, String> pair : schema.getIdentifierColumns()) { - if (pair.getRight() != null && !pair.getRight().equals("")) { - - MiriamData md = new MiriamData(MiriamRelationType.BQ_BIOL_IS_DESCRIBED_BY, pair.getLeft(), pair.getRight()); - if (reaction.getMiriamData().contains(md)) { - return true; - } - } - } - - return false; - } - - /** - * Applies color schema into the alias. - * - * @param alias - * object to be colored - * @param schema - * color schema to be used - * @throws InvalidColorSchemaException - * thrown when alias was already colored by other schema - */ - private void applyColor(Alias alias, ColorSchema schema) throws InvalidColorSchemaException { - if (alias instanceof SpeciesAlias) { - Species species = ((SpeciesAlias) alias).getSpecies(); - - if (!alias.getColor().equals(Color.WHITE)) { - throw new InvalidColorSchemaException("At least two rows try to set color to element: " + species.getName()); - } - - alias.setColor(schema.getNormalizedColor()); - } - - } - - /** - * Checks if the coloring schema should be used for the alias. - * - * @param alias - * alias to which coloring schema is checked - * @param schema - * coloring schema - * @return <code>true</code> if coloring schema should be used for alias, - * <code>false</code> otherwise - */ - protected boolean match(Alias alias, ColorSchema schema) { - if (alias instanceof SpeciesAlias) { - Species species = ((SpeciesAlias) alias).getSpecies(); - if (schema.getName() != null) { - if (!species.getName().equalsIgnoreCase(schema.getName())) { - return false; - } - } - if (schema.getTypes().size() > 0) { - if (!schema.getTypes().contains(species.getClass())) { - return false; - } - } - if (schema.getGeneralIdentifier() != null && !schema.getGeneralIdentifier().equals("")) { - MiriamData md = MiriamType.getMiriamDataFromIdentifier(schema.getGeneralIdentifier()); - - if (!species.getMiriamData().contains(md)) { - return false; - } - } - for (Pair<MiriamType, String> pair : schema.getIdentifierColumns()) { - if (pair.getRight() != null && !pair.getRight().equals("")) { - MiriamData md = new MiriamData(MiriamRelationType.BQ_BIOL_IS_DESCRIBED_BY, pair.getLeft(), pair.getRight()); - if (!species.getMiriamData().contains(md)) { - return false; - } - } - } - - if (schema.getCompartments().size() > 0) { - boolean found = false; - for (CompartmentAlias cAlias : alias.getModelData().getModel().getCompartmentsAliases()) { - for (String compartmentName : schema.getCompartments()) { - if (cAlias.getCompartment() != null) { - if (cAlias.getCompartment().getName().equalsIgnoreCase(compartmentName)) { - if (cAlias.cross(alias)) { - found = true; - } - } - } - } - } - if (!found) { - return false; - } - } - - // if we have reaction id to match then reject - if (schema.getReactionIdentifier() != null) { - return false; - } - return true; - } else { - return false; - } - } - - /** - * Checks which coloring schemas weren't used in the model coloring process. - * - * @return list of schemas that weren't used during coloring - */ - public Collection<ColorSchema> getMissingSchema() { - List<ColorSchema> result = new ArrayList<ColorSchema>(); - for (ColorSchema schema : schemas) { - boolean found = false; - for (Alias alias : getModel().getAliases()) { - if (match(alias, schema)) { - found = true; - } - } - for (Reaction reaction : getModel().getReactions()) { - if (match(reaction, schema)) { - found = true; - } - } - if (!found) { - result.add(schema); - } - } - return result; - } - - /** - * Returns list of elements ({@link Reaction reactions} and {@link Alias - * aliases}) that are modified by the coloring command. - * - * @return {@link Map}, where key corresponds to modified {@link Reaction} or - * {@link Alias} and value is a {@link ColorSchema} that should be - * used for coloring - * @throws InvalidColorSchemaException - * thrown when more than one {@link ColorSchema} match an element - */ - public Map<Object, ColorSchema> getModifiedElements() throws InvalidColorSchemaException { - Map<Object, ColorSchema> result = new HashMap<>(); - - List<Model> models = new ArrayList<>(); - models.add(getModel()); - models.addAll(getModel().getSubmodels()); - for (Model model2 : models) { - for (ColorSchema schema : schemas) { - for (Alias alias : model2.getAliases()) { - if (match(alias, schema)) { - if (result.get(alias) != null && !result.get(alias).getNormalizedColor().equals(Color.WHITE)) { - throw new InvalidColorSchemaException("Alias " + alias.getAliasId() + " is colored by more than one rule."); - } - result.put(alias, schema); - } - } - for (Reaction reaction : model2.getReactions()) { - if (match(reaction, schema)) { - if (result.get(reaction) != null && !result.get(reaction).getNormalizedColor().equals(Color.WHITE)) { - throw new InvalidColorSchemaException("Reaction " + reaction.getIdReaction() + " is colored by more than one rule."); - } - result.put(reaction, schema); - } - } - } - } - return result; - } - - @Override - protected void undoImplementation() throws CommandExecutionException { - throw new NotImplementedException(); - - } - - @Override - protected void redoImplementation() throws CommandExecutionException { - throw new NotImplementedException(); - } - - /** - * Colors parameter model using coloring for this command. This method is used - * internally to color either top {@link Model} or one of it's sumbodels. - * - * @param result - * model to color - * @param top - * is the model a top (parent) model - * @throws InvalidColorSchemaException - * thrown when set of {@link ColorSchema} is invalid - */ - private void colorModel(Model result, boolean top) throws InvalidColorSchemaException { - - for (Alias alias : result.getAliases()) { - alias.setColor(Color.WHITE); - } - for (Reaction reaction : result.getReactions()) { - for (AbstractNode node : reaction.getNodes()) { - node.getLine().setColor(Color.BLACK); - } - } - - for (ColorSchema schema : schemas) { - for (Alias alias : result.getAliases()) { - if (match(alias, schema)) { - schema.setMatches(schema.getMatches() + 1); - applyColor(alias, schema); - } - } - for (Reaction reaction : result.getReactions()) { - if (match(reaction, schema)) { - schema.setMatches(schema.getMatches() + 1); - applyColor(reaction, schema); - } - } - } - - if (top) { - for (ModelSubmodelConnection connection : result.getSubmodelConnections()) { - colorModel(connection.getSubmodel().getModel(), false); - } - } - - } - - @Override - protected void executeImplementation() throws CommandExecutionException { - try { - colorModel(getModel(), true); - } catch (InvalidColorSchemaException e) { - throw new CommandExecutionException(e); - } - } - -} +package lcsb.mapviewer.commands; + +import java.awt.Color; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; + +import lcsb.mapviewer.common.Pair; +import lcsb.mapviewer.common.exception.NotImplementedException; +import lcsb.mapviewer.model.graphics.ArrowTypeData; +import lcsb.mapviewer.model.map.MiriamData; +import lcsb.mapviewer.model.map.MiriamRelationType; +import lcsb.mapviewer.model.map.MiriamType; +import lcsb.mapviewer.model.map.layout.ColorSchema; +import lcsb.mapviewer.model.map.layout.InvalidColorSchemaException; +import lcsb.mapviewer.model.map.layout.alias.Alias; +import lcsb.mapviewer.model.map.layout.alias.CompartmentAlias; +import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; +import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.model.map.model.ModelSubmodelConnection; +import lcsb.mapviewer.model.map.reaction.AbstractNode; +import lcsb.mapviewer.model.map.reaction.Product; +import lcsb.mapviewer.model.map.reaction.Reactant; +import lcsb.mapviewer.model.map.reaction.Reaction; +import lcsb.mapviewer.model.map.species.Species; + +/** + * This {@link ModelCommand} colors a model (nodes and reactions) according to + * set of {@link ColorSchema rules}. + * + * @author Piotr Gawron + * + */ +public class ColorModelCommand extends ModelCommand { + + /** + * Default class logger. + */ + @SuppressWarnings("unused") + private Logger logger = Logger.getLogger(ColorModelCommand.class); + + /** + * Set of color schemas used in this command to color model. + */ + private Collection<ColorSchema> schemas; + + /** + * Default constructor. + * + * @param model + * original model + * @param schemas + * set of color schemas used in this command to color model. + */ + public ColorModelCommand(Model model, Collection<ColorSchema> schemas) { + super(model); + this.schemas = schemas; + } + + /** + * Applies color schema into the reaction. + * + * @param reaction + * object to be colored + * @param schema + * color schema to be used + * @throws InvalidColorSchemaException + * thrown when alias was already colored by other schema + */ + private void applyColor(Reaction reaction, ColorSchema schema) throws InvalidColorSchemaException { + if (!reaction.getReactants().get(0).getLine().getColor().equals(Color.BLACK)) { + throw new InvalidColorSchemaException("At least two rows try to set color to reaction: " + reaction.getIdReaction()); + } + + Color color = schema.getNormalizedColor(); + for (AbstractNode node : reaction.getNodes()) { + node.getLine().setColor(color); + if (schema.getLineWidth() != null) { + node.getLine().setWidth(schema.getLineWidth()); + } + } + if (schema.getReverseReaction() != null && schema.getReverseReaction()) { + ArrowTypeData atdBegining = reaction.getReactants().get(0).getLine().getBeginAtd(); + ArrowTypeData atdEnd = reaction.getProducts().get(0).getLine().getEndAtd(); + for (Reactant reactant : reaction.getReactants()) { + reactant.getLine().setBeginAtd(atdEnd); + } + for (Product product : reaction.getProducts()) { + product.getLine().setEndAtd(atdBegining); + } + } + } + + /** + * Checks if the coloring schema should be used for the reaction. + * + * @param reaction + * reaction to which coloring schema is checked + * @param schema + * coloring schema + * @return <code>true</code> if coloring schema should be used for alias, + * <code>false</code> otherwise + */ + private boolean match(Reaction reaction, ColorSchema schema) { + if (schema.getName() != null) { + return false; + } + + if (schema.getReactionIdentifier() != null && schema.getReactionIdentifier().equalsIgnoreCase(reaction.getIdReaction())) { + return true; + } + if (schema.getGeneralIdentifier() != null && !schema.getGeneralIdentifier().equals("")) { + MiriamData md = MiriamType.getMiriamDataFromIdentifier(schema.getGeneralIdentifier()); + + if (reaction.getMiriamData().contains(md)) { + return true; + } + } + for (Pair<MiriamType, String> pair : schema.getIdentifierColumns()) { + if (pair.getRight() != null && !pair.getRight().equals("")) { + + MiriamData md = new MiriamData(MiriamRelationType.BQ_BIOL_IS_DESCRIBED_BY, pair.getLeft(), pair.getRight()); + if (reaction.getMiriamData().contains(md)) { + return true; + } + } + } + + return false; + } + + /** + * Applies color schema into the alias. + * + * @param alias + * object to be colored + * @param schema + * color schema to be used + * @throws InvalidColorSchemaException + * thrown when alias was already colored by other schema + */ + private void applyColor(Alias alias, ColorSchema schema) throws InvalidColorSchemaException { + if (alias instanceof SpeciesAlias) { + Species species = ((SpeciesAlias) alias).getSpecies(); + + if (!alias.getColor().equals(Color.WHITE)) { + throw new InvalidColorSchemaException("At least two rows try to set color to element: " + species.getName()); + } + + alias.setColor(schema.getNormalizedColor()); + } + + } + + /** + * Checks if the coloring schema should be used for the alias. + * + * @param alias + * alias to which coloring schema is checked + * @param schema + * coloring schema + * @return <code>true</code> if coloring schema should be used for alias, + * <code>false</code> otherwise + */ + protected boolean match(Alias alias, ColorSchema schema) { + if (alias instanceof SpeciesAlias) { + Species species = ((SpeciesAlias) alias).getSpecies(); + if (schema.getName() != null) { + if (!species.getName().equalsIgnoreCase(schema.getName())) { + return false; + } + } + if (schema.getTypes().size() > 0) { + if (!schema.getTypes().contains(species.getClass())) { + return false; + } + } + if (schema.getGeneralIdentifier() != null && !schema.getGeneralIdentifier().equals("")) { + MiriamData md = MiriamType.getMiriamDataFromIdentifier(schema.getGeneralIdentifier()); + + if (!species.getMiriamData().contains(md)) { + return false; + } + } + for (Pair<MiriamType, String> pair : schema.getIdentifierColumns()) { + if (pair.getRight() != null && !pair.getRight().equals("")) { + MiriamData md = new MiriamData(MiriamRelationType.BQ_BIOL_IS_DESCRIBED_BY, pair.getLeft(), pair.getRight()); + if (!species.getMiriamData().contains(md)) { + return false; + } + } + } + + if (schema.getCompartments().size() > 0) { + boolean found = false; + for (CompartmentAlias cAlias : alias.getModelData().getModel().getCompartmentsAliases()) { + for (String compartmentName : schema.getCompartments()) { + if (cAlias.getCompartment() != null) { + if (cAlias.getCompartment().getName().equalsIgnoreCase(compartmentName)) { + if (cAlias.cross(alias)) { + found = true; + } + } + } + } + } + if (!found) { + return false; + } + } + + // if we have reaction id to match then reject + if (schema.getReactionIdentifier() != null) { + return false; + } + return true; + } else { + return false; + } + } + + /** + * Checks which coloring schemas weren't used in the model coloring process. + * + * @return list of schemas that weren't used during coloring + */ + public Collection<ColorSchema> getMissingSchema() { + List<ColorSchema> result = new ArrayList<ColorSchema>(); + for (ColorSchema schema : schemas) { + boolean found = false; + for (Alias alias : getModel().getAliases()) { + if (match(alias, schema)) { + found = true; + } + } + for (Reaction reaction : getModel().getReactions()) { + if (match(reaction, schema)) { + found = true; + } + } + if (!found) { + result.add(schema); + } + } + return result; + } + + /** + * Returns list of elements ({@link Reaction reactions} and {@link Alias + * aliases}) that are modified by the coloring command. + * + * @return {@link Map}, where key corresponds to modified {@link Reaction} or + * {@link Alias} and value is a {@link ColorSchema} that should be + * used for coloring + * @throws InvalidColorSchemaException + * thrown when more than one {@link ColorSchema} match an element + */ + public Map<Object, ColorSchema> getModifiedElements() throws InvalidColorSchemaException { + Map<Object, ColorSchema> result = new HashMap<>(); + + List<Model> models = new ArrayList<>(); + models.add(getModel()); + models.addAll(getModel().getSubmodels()); + for (Model model2 : models) { + for (ColorSchema schema : schemas) { + for (Alias alias : model2.getAliases()) { + if (match(alias, schema)) { + if (result.get(alias) != null && !result.get(alias).getNormalizedColor().equals(Color.WHITE)) { + throw new InvalidColorSchemaException("Alias " + alias.getAliasId() + " is colored by more than one rule."); + } + result.put(alias, schema); + } + } + for (Reaction reaction : model2.getReactions()) { + if (match(reaction, schema)) { + if (result.get(reaction) != null && !result.get(reaction).getNormalizedColor().equals(Color.WHITE)) { + throw new InvalidColorSchemaException("Reaction " + reaction.getIdReaction() + " is colored by more than one rule."); + } + result.put(reaction, schema); + } + } + } + } + return result; + } + + @Override + protected void undoImplementation() throws CommandExecutionException { + throw new NotImplementedException(); + + } + + @Override + protected void redoImplementation() throws CommandExecutionException { + throw new NotImplementedException(); + } + + /** + * Colors parameter model using coloring for this command. This method is used + * internally to color either top {@link Model} or one of it's sumbodels. + * + * @param result + * model to color + * @param top + * is the model a top (parent) model + * @throws InvalidColorSchemaException + * thrown when set of {@link ColorSchema} is invalid + */ + private void colorModel(Model result, boolean top) throws InvalidColorSchemaException { + + for (Alias alias : result.getAliases()) { + alias.setColor(Color.WHITE); + } + for (Reaction reaction : result.getReactions()) { + for (AbstractNode node : reaction.getNodes()) { + node.getLine().setColor(Color.BLACK); + } + } + + for (ColorSchema schema : schemas) { + for (Alias alias : result.getAliases()) { + if (match(alias, schema)) { + schema.setMatches(schema.getMatches() + 1); + applyColor(alias, schema); + } + } + for (Reaction reaction : result.getReactions()) { + if (match(reaction, schema)) { + schema.setMatches(schema.getMatches() + 1); + applyColor(reaction, schema); + } + } + } + + if (top) { + for (ModelSubmodelConnection connection : result.getSubmodelConnections()) { + colorModel(connection.getSubmodel().getModel(), false); + } + } + + } + + @Override + protected void executeImplementation() throws CommandExecutionException { + try { + colorModel(getModel(), true); + } catch (InvalidColorSchemaException e) { + throw new CommandExecutionException(e); + } + } + +} diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/CommandExecutionException.java b/model-command/src/main/java/lcsb/mapviewer/commands/CommandExecutionException.java index ae9195d4b2..ac6585bebd 100644 --- a/model-command/src/main/java/lcsb/mapviewer/commands/CommandExecutionException.java +++ b/model-command/src/main/java/lcsb/mapviewer/commands/CommandExecutionException.java @@ -1,55 +1,55 @@ -package lcsb.mapviewer.commands; - -/** - * Exception that is thrown when the data for {@link ModelCommand} is invalid. - * - * @author Piotr Gawron - * - */ -public class CommandExecutionException extends Exception { - - /** - * - */ - private static final long serialVersionUID = 1L; - - /** - * Default constructor. - */ - public CommandExecutionException() { - super(); - } - - /** - * Default constructor with message passed in the argument. - * - * @param string - * message of this exception - */ - public CommandExecutionException(String string) { - super(string); - } - - /** - * Public constructor with parent exception that was catched. - * - * @param e - * parent exception - */ - public CommandExecutionException(Exception e) { - super(e.getMessage(), e); - } - - /** - * Public constructor with parent exception that was catched. - * - * @param string - * message of this exception - * @param e - * parent exception - */ - public CommandExecutionException(String string, Exception e) { - super(string, e); - } - -} +package lcsb.mapviewer.commands; + +/** + * Exception that is thrown when the data for {@link ModelCommand} is invalid. + * + * @author Piotr Gawron + * + */ +public class CommandExecutionException extends Exception { + + /** + * + */ + private static final long serialVersionUID = 1L; + + /** + * Default constructor. + */ + public CommandExecutionException() { + super(); + } + + /** + * Default constructor with message passed in the argument. + * + * @param string + * message of this exception + */ + public CommandExecutionException(String string) { + super(string); + } + + /** + * Public constructor with parent exception that was catched. + * + * @param e + * parent exception + */ + public CommandExecutionException(Exception e) { + super(e.getMessage(), e); + } + + /** + * Public constructor with parent exception that was catched. + * + * @param string + * message of this exception + * @param e + * parent exception + */ + public CommandExecutionException(String string, Exception e) { + super(string, e); + } + +} diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/CopyCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/CopyCommand.java index 98faf4c786..f2419aed93 100644 --- a/model-command/src/main/java/lcsb/mapviewer/commands/CopyCommand.java +++ b/model-command/src/main/java/lcsb/mapviewer/commands/CopyCommand.java @@ -1,476 +1,476 @@ -package lcsb.mapviewer.commands; - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -import lcsb.mapviewer.common.exception.InvalidArgumentException; -import lcsb.mapviewer.common.exception.InvalidClassException; -import lcsb.mapviewer.common.exception.InvalidStateException; -import lcsb.mapviewer.model.graphics.PolylineData; -import lcsb.mapviewer.model.map.Element; -import lcsb.mapviewer.model.map.OverviewImage; -import lcsb.mapviewer.model.map.agregator.Compartment; -import lcsb.mapviewer.model.map.graph.DataMiningSet; -import lcsb.mapviewer.model.map.layout.Layout; -import lcsb.mapviewer.model.map.layout.alias.Alias; -import lcsb.mapviewer.model.map.layout.alias.CompartmentAlias; -import lcsb.mapviewer.model.map.layout.alias.ComplexAlias; -import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; -import lcsb.mapviewer.model.map.layout.graphics.Layer; -import lcsb.mapviewer.model.map.model.AliasSubmodelConnection; -import lcsb.mapviewer.model.map.model.Model; -import lcsb.mapviewer.model.map.model.ModelFullIndexed; -import lcsb.mapviewer.model.map.model.ModelSubmodelConnection; -import lcsb.mapviewer.model.map.model.SubmodelConnection; -import lcsb.mapviewer.model.map.reaction.AbstractNode; -import lcsb.mapviewer.model.map.reaction.NodeOperator; -import lcsb.mapviewer.model.map.reaction.Reaction; -import lcsb.mapviewer.model.map.reaction.ReactionNode; -import lcsb.mapviewer.model.map.species.ComplexSpecies; -import lcsb.mapviewer.model.map.species.Species; - -import org.apache.log4j.Logger; - -/** - * Command that creates a new instance of the model with the same data. - * - */ - -public class CopyCommand extends NewModelCommand { - /** - * Defaul class logger. - */ - private static Logger logger = Logger.getLogger(CopyCommand.class); - - /** - * Default constructor. - * - * @param model - * {@link #model} - */ - public CopyCommand(Model model) { - super(model); - } - - /** - * Executed the operation. - * - * @return copy of the model - */ - public Model execute() { - Map<Model, Model> copies = new HashMap<Model, Model>(); - - Model model = getModel(); - - if (model.getModelData().getParentModels().size() > 0) { - ModelSubmodelConnection parent = null; - for (SubmodelConnection connection : model.getModelData().getParentModels()) { - if (connection instanceof ModelSubmodelConnection) { - if (parent != null) { - throw new InvalidArgumentException("It looks like the model is a submodel, but has more than one parent..."); - } else { - parent = (ModelSubmodelConnection) connection; - } - } - } - if (parent != null) { - logger.warn("Dirty copying of submodel"); - CopyCommand copyParentCommand = new CopyCommand(parent.getParentModel().getModel()); - Model copy = copyParentCommand.execute(); - for (ModelSubmodelConnection submodel : copy.getSubmodelConnections()) { - if (submodel.getName().equals(parent.getName())) { - return submodel.getSubmodel().getModel(); - } - } - throw new InvalidStateException("Problem with copying submodel of a model"); - } - } - - Model result = createNotNestedCopy(model); - - copies.put(model, result); - - for (ModelSubmodelConnection submodelConnection : model.getSubmodelConnections()) { - Model submodel = submodelConnection.getSubmodel().getModel(); - Model submodelCopy = createNotNestedCopy(submodel); - copies.put(submodel, submodelCopy); - } - for (Model modelCopy : copies.values()) { - try { - assignModelCopies(modelCopy, copies); - } catch (InvalidModelException e) { - throw new InvalidArgumentException(e); - } - } - return result; - - } - - /** - * Assign information about submodel to the copied links. - * - * @param modelCopy - * copy of a model where substitution should be made - * @param copies - * map with map copies - * @throws InvalidModelException - * when there is inconsistency in data - */ - private void assignModelCopies(Model modelCopy, Map<Model, Model> copies) throws InvalidModelException { - for (ModelSubmodelConnection connection : modelCopy.getSubmodelConnections()) { - // copy connection reference - Model original = connection.getSubmodel().getModel(); - Model copy = copies.get(original); - if (copy == null) { - throw new InvalidModelException("Original model contain reference to model that wasn't copied"); - } - connection.setSubmodel(copy); - - // copy connection parent reference - if (connection.getParentModel() != null) { - original = connection.getParentModel().getModel(); - if (original != null) { - copy = copies.get(original); - if (copy == null) { - if (!copies.values().contains(original)) { - throw new InvalidModelException("Original model contain reference to model that wasn't copied"); - } - } else { - connection.setParentModel(copy); - } - } - } - } - for (Alias alias : modelCopy.getAliases()) { - // if alias has connection to submodel - if (alias.getSubmodel() != null) { - AliasSubmodelConnection connection = alias.getSubmodel(); - // copy information about submodel - Model original = connection.getSubmodel().getModel(); - Model copy = copies.get(original); - if (copy == null) { - throw new InvalidModelException("Original model contain reference to model that wasn't copied"); - } - connection.setSubmodel(copy); - - // copy information about original alias - if (connection.getFromAlias() != null) { - connection.setFromAlias(modelCopy.getAliasByAliasId(connection.getFromAlias().getAliasId())); - } - // copy information about reference alias - if (connection.getToAlias() != null) { - connection.setToAlias(modelCopy.getAliasByAliasId(connection.getToAlias().getAliasId())); - } - } - } - } - - /** - * Creates copy of the model without modifing information about submodels - * (information about original submodels will be left in the copy). - * - * @param model - * original model to copy - * @return copy of the model - */ - protected Model createNotNestedCopy(Model model) { - Model result = new ModelFullIndexed(null); - - result.setSbgnFormat(model.isSbgnFormat()); - - for (Element element : model.getElements()) { - result.addElement(element); - } - for (Alias alias : model.getAliases()) { - if (alias instanceof CompartmentAlias) { - CompartmentAlias copy = ((CompartmentAlias) alias).copy(); - copy.getAliases().clear(); - result.addAlias(copy); - } - - } - - for (Alias alias : model.getAliases()) { - if (alias instanceof SpeciesAlias) { - SpeciesAlias copy = ((SpeciesAlias) alias).copy(); - copy.setSpecies(result.getSpeciesBySpeciesId(((SpeciesAlias) alias).getSpecies().getElementId())); - CompartmentAlias ca = copy.getCompartmentAlias(); - Alias parent = copy.getParent(); - copy.setCompartmentAlias(null); - copy.setParent(null); - - // the trick is that in addAlias also some connections are added, so - // lets clear info about parents - - result.addAlias(copy); - - if (ca != null) { - ca = result.getCompartmentAliasByCompartmentAliasId(ca.getAliasId()); - copy.setCompartmentAlias(ca); - } - if (parent instanceof CompartmentAlias) { - ca = (CompartmentAlias) parent; - ca = result.getCompartmentAliasByCompartmentAliasId(ca.getAliasId()); - copy.setParent(ca); - } - } else if (alias instanceof CompartmentAlias) { - // we already added compartment alias - continue; - } else { - throw new InvalidClassException("Don't know what to do with: " + alias.getClass()); - } - } - - for (Layer layer : model.getLayers()) { - result.addLayer(layer.copy()); - } - - for (Reaction reaction : model.getReactions()) { - result.addReaction(createCopy(reaction)); - } - - assignSimpleDataToCopy(result, model); - for (Layout layout : model.getLayouts()) { - result.addLayout(layout.copy()); - } - result.setProject(model.getProject()); - - for (Element element : result.getElements()) { - updateElementReferences(element, model); - } - for (Alias alias : result.getAliases()) { - updateAliasReferences(alias, result, model); - } - for (Reaction reaction : result.getReactions()) { - updateReactionReferences(reaction, result); - } - for (ModelSubmodelConnection connection : model.getSubmodelConnections()) { - result.addSubmodelConnection(connection.copy()); - } - for (OverviewImage oi : model.getOverviewImages()) { - result.addOverviewImage(oi.copy()); - } - for (DataMiningSet dataMiningSet : model.getDataMiningSets()) { - result.addDataMiningSet(new DataMiningSet(dataMiningSet)); - } - return result; - } - - /** - * Copies simple information about model to the copy. - * - * @param copy - * to this model data will be copied - * @param original - * original model - */ - private void assignSimpleDataToCopy(Model copy, Model original) { - copy.setMapVersion(original.getMapVersion()); - copy.setName(original.getName()); - - copy.setCreationDate(original.getCreationDate()); - - copy.setWidth(original.getWidth()); - copy.setHeight(original.getHeight()); - copy.setNotes(original.getNotes()); - copy.setIdModel(original.getIdModel()); - copy.setZoomLevels(original.getZoomLevels()); - copy.setTileSize(original.getTileSize()); - - copy.addCreationWarnings(original.getCreationWarnings()); - } - - /** - * Creates copy of the reaction that doesn't contain any references to the - * original (so we have to substitute all references with the new ones...). - * - * @param reaction - * original reaction - * @return copy of the reaction - */ - private Reaction createCopy(Reaction reaction) { - Reaction copy = reaction.copy(); - reaction.getNodes().clear(); - for (AbstractNode node : copy.getNodes()) { - reaction.addNode(node); - } - copy.getNodes().clear(); - - for (AbstractNode node : reaction.getNodes()) { - AbstractNode nodeCopy = node.copy(); - nodeCopy.setLine(new PolylineData(nodeCopy.getLine())); - copy.addNode(nodeCopy); - } - - for (int i = 0; i < copy.getOperators().size(); i++) { - NodeOperator nodeCopy = copy.getOperators().get(i); - NodeOperator nodeOriginal = reaction.getOperators().get(i); - for (int j = 0; j < nodeCopy.getInputs().size(); j++) { - AbstractNode input = nodeCopy.getInputs().get(j); - int index1 = reaction.getOperators().indexOf(input); - int index2 = reaction.getNodes().indexOf(input); - if (index1 >= 0) { - nodeCopy.getInputs().set(j, copy.getOperators().get(index1)); - copy.getOperators().get(index1).setNodeOperatorForInput(nodeCopy); - - reaction.getOperators().get(index1).setNodeOperatorForInput(nodeOriginal); - } else if (index2 >= 0) { - nodeCopy.getInputs().set(j, copy.getNodes().get(index2)); - copy.getNodes().get(index2).setNodeOperatorForInput(nodeCopy); - - reaction.getNodes().get(index2).setNodeOperatorForInput(nodeOriginal); - } else { - throw new InvalidStateException("WTF"); - } - } - - for (int j = 0; j < nodeCopy.getOutputs().size(); j++) { - AbstractNode output = nodeCopy.getOutputs().get(j); - int index1 = reaction.getOperators().indexOf(output); - int index2 = reaction.getNodes().indexOf(output); - if (index1 >= 0) { - nodeCopy.getOutputs().set(j, copy.getOperators().get(index1)); - copy.getOperators().get(index1).setNodeOperatorForOutput(nodeCopy); - - reaction.getOperators().get(index1).setNodeOperatorForOutput(nodeOriginal); - } else if (index2 >= 0) { - nodeCopy.getOutputs().set(j, copy.getNodes().get(index2)); - copy.getNodes().get(index2).setNodeOperatorForOutput(nodeCopy); - - reaction.getNodes().get(index2).setNodeOperatorForOutput(nodeOriginal); - } else { - throw new InvalidStateException("WTF"); - } - } - } - - return copy; - } - - /** - * Updates references to elements and aliases in reaction to the objects taken - * from model. - * - * @param reaction - * references in this reaction will be updated - * @param model - * references from this model will be taken - */ - private void updateReactionReferences(Reaction reaction, Model model) { - reaction.setModel(model); - for (ReactionNode rNode : reaction.getReactionNodes()) { - rNode.setAlias((SpeciesAlias) model.getAliasByAliasId(rNode.getAlias().getAliasId())); - rNode.setElement(model.getSpeciesBySpeciesId(((Species) rNode.getElement()).getElementId())); - } - - } - - /** - * Updates information (like elements, parent aliases) in the alias with the - * data from new model. - * - * @param alias - * object to be updated - * @param model - * data from this model will be used for update - * @param originalModel - * original model from which alias copy was created - */ - private void updateAliasReferences(Alias alias, Model model, Model originalModel) { - if (alias instanceof CompartmentAlias) { - CompartmentAlias compartmentAlias = (CompartmentAlias) alias; - CompartmentAlias original = originalModel.getCompartmentAliasByCompartmentAliasId(alias.getAliasId()); - for (Alias a : original.getAliases()) { - compartmentAlias.addAlias(model.getAliasByAliasId(a.getAliasId())); - } - String compartmentId = null; - if (original.getCompartment() != null) { - compartmentId = original.getCompartment().getElementId(); - } - compartmentAlias.setCompartment(model.getCompartmentByCompartmentId(compartmentId)); - } - - if (alias instanceof ComplexAlias) { - ComplexAlias ca = (ComplexAlias) alias; - for (int i = 0; i < ca.getAliases().size(); i++) { - ca.getAliases().set(i, (SpeciesAlias) model.getAliasByAliasId(ca.getAliases().get(i).getAliasId())); - } - } - if (alias instanceof SpeciesAlias) { - SpeciesAlias originalAlias = (SpeciesAlias) originalModel.getAliasByAliasId(alias.getAliasId()); - SpeciesAlias sa = (SpeciesAlias) alias; - - if (sa.getComplexAlias() != null) { - sa.setComplexAlias((ComplexAlias) model.getAliasByAliasId(sa.getComplexAlias().getAliasId())); - } - sa.setSpecies(model.getSpeciesBySpeciesId(sa.getSpecies().getElementId())); - - if (originalAlias.getParent() != null) { - Alias parent = null; - parent = model.getAliasByAliasId(originalAlias.getParent().getAliasId()); - sa.setParent(parent); - } - } - - if (alias.getParent() != null) { - alias.setParent(model.getAliasByAliasId(alias.getParent().getAliasId())); - } - - alias.setModel(model); - - if (alias.getCompartmentAlias() != null) { - alias.setCompartmentAlias(model.getCompartmentAliasByCompartmentAliasId(alias.getCompartmentAlias().getAliasId())); - } - } - - /** - * Updates information (like parent elements, aliases) in the element with the - * data from new model. - * - * @param element - * object to be updated - * @param model - * data from this model will be used for update - */ - private void updateElementReferences(Element element, Model model) { - - if (element.getParent() != null) { - element.setParent(model.getCompartmentByCompartmentId(((Compartment) element.getParent()).getElementId())); - } - - element.setModel(model); - - if (element.getComplex() != null) { - element.setComplex((ComplexSpecies) model.getSpeciesBySpeciesId(element.getComplex().getElementId())); - } - - if (element instanceof Compartment) { - Set<Element> elements = ((Compartment) element).getElements(); - Set<Element> newElements = new HashSet<Element>(); - for (Element element2 : elements) { - if (element2 instanceof Compartment) { - newElements.add(model.getCompartmentByCompartmentId(element2.getElementId())); - } else { - newElements.add(model.getSpeciesBySpeciesId(((Species) element2).getElementId())); - } - } - ((Compartment) element).getElements().clear(); - ((Compartment) element).getElements().addAll(newElements); - } - - if (element instanceof ComplexSpecies) { - Set<Element> elements = ((ComplexSpecies) element).getElements(); - Set<Element> newElements = new HashSet<Element>(); - for (Element element2 : elements) { - newElements.add(model.getSpeciesBySpeciesId(((Species) element2).getElementId())); - } - - ((ComplexSpecies) element).getElements().clear(); - ((ComplexSpecies) element).getElements().addAll(newElements); - } - - } - -} +package lcsb.mapviewer.commands; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +import lcsb.mapviewer.common.exception.InvalidArgumentException; +import lcsb.mapviewer.common.exception.InvalidClassException; +import lcsb.mapviewer.common.exception.InvalidStateException; +import lcsb.mapviewer.model.graphics.PolylineData; +import lcsb.mapviewer.model.map.Element; +import lcsb.mapviewer.model.map.OverviewImage; +import lcsb.mapviewer.model.map.agregator.Compartment; +import lcsb.mapviewer.model.map.graph.DataMiningSet; +import lcsb.mapviewer.model.map.layout.Layout; +import lcsb.mapviewer.model.map.layout.alias.Alias; +import lcsb.mapviewer.model.map.layout.alias.CompartmentAlias; +import lcsb.mapviewer.model.map.layout.alias.ComplexAlias; +import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; +import lcsb.mapviewer.model.map.layout.graphics.Layer; +import lcsb.mapviewer.model.map.model.AliasSubmodelConnection; +import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.model.map.model.ModelFullIndexed; +import lcsb.mapviewer.model.map.model.ModelSubmodelConnection; +import lcsb.mapviewer.model.map.model.SubmodelConnection; +import lcsb.mapviewer.model.map.reaction.AbstractNode; +import lcsb.mapviewer.model.map.reaction.NodeOperator; +import lcsb.mapviewer.model.map.reaction.Reaction; +import lcsb.mapviewer.model.map.reaction.ReactionNode; +import lcsb.mapviewer.model.map.species.ComplexSpecies; +import lcsb.mapviewer.model.map.species.Species; + +import org.apache.log4j.Logger; + +/** + * Command that creates a new instance of the model with the same data. + * + */ + +public class CopyCommand extends NewModelCommand { + /** + * Defaul class logger. + */ + private static Logger logger = Logger.getLogger(CopyCommand.class); + + /** + * Default constructor. + * + * @param model + * {@link #model} + */ + public CopyCommand(Model model) { + super(model); + } + + /** + * Executed the operation. + * + * @return copy of the model + */ + public Model execute() { + Map<Model, Model> copies = new HashMap<Model, Model>(); + + Model model = getModel(); + + if (model.getModelData().getParentModels().size() > 0) { + ModelSubmodelConnection parent = null; + for (SubmodelConnection connection : model.getModelData().getParentModels()) { + if (connection instanceof ModelSubmodelConnection) { + if (parent != null) { + throw new InvalidArgumentException("It looks like the model is a submodel, but has more than one parent..."); + } else { + parent = (ModelSubmodelConnection) connection; + } + } + } + if (parent != null) { + logger.warn("Dirty copying of submodel"); + CopyCommand copyParentCommand = new CopyCommand(parent.getParentModel().getModel()); + Model copy = copyParentCommand.execute(); + for (ModelSubmodelConnection submodel : copy.getSubmodelConnections()) { + if (submodel.getName().equals(parent.getName())) { + return submodel.getSubmodel().getModel(); + } + } + throw new InvalidStateException("Problem with copying submodel of a model"); + } + } + + Model result = createNotNestedCopy(model); + + copies.put(model, result); + + for (ModelSubmodelConnection submodelConnection : model.getSubmodelConnections()) { + Model submodel = submodelConnection.getSubmodel().getModel(); + Model submodelCopy = createNotNestedCopy(submodel); + copies.put(submodel, submodelCopy); + } + for (Model modelCopy : copies.values()) { + try { + assignModelCopies(modelCopy, copies); + } catch (InvalidModelException e) { + throw new InvalidArgumentException(e); + } + } + return result; + + } + + /** + * Assign information about submodel to the copied links. + * + * @param modelCopy + * copy of a model where substitution should be made + * @param copies + * map with map copies + * @throws InvalidModelException + * when there is inconsistency in data + */ + private void assignModelCopies(Model modelCopy, Map<Model, Model> copies) throws InvalidModelException { + for (ModelSubmodelConnection connection : modelCopy.getSubmodelConnections()) { + // copy connection reference + Model original = connection.getSubmodel().getModel(); + Model copy = copies.get(original); + if (copy == null) { + throw new InvalidModelException("Original model contain reference to model that wasn't copied"); + } + connection.setSubmodel(copy); + + // copy connection parent reference + if (connection.getParentModel() != null) { + original = connection.getParentModel().getModel(); + if (original != null) { + copy = copies.get(original); + if (copy == null) { + if (!copies.values().contains(original)) { + throw new InvalidModelException("Original model contain reference to model that wasn't copied"); + } + } else { + connection.setParentModel(copy); + } + } + } + } + for (Alias alias : modelCopy.getAliases()) { + // if alias has connection to submodel + if (alias.getSubmodel() != null) { + AliasSubmodelConnection connection = alias.getSubmodel(); + // copy information about submodel + Model original = connection.getSubmodel().getModel(); + Model copy = copies.get(original); + if (copy == null) { + throw new InvalidModelException("Original model contain reference to model that wasn't copied"); + } + connection.setSubmodel(copy); + + // copy information about original alias + if (connection.getFromAlias() != null) { + connection.setFromAlias(modelCopy.getAliasByAliasId(connection.getFromAlias().getAliasId())); + } + // copy information about reference alias + if (connection.getToAlias() != null) { + connection.setToAlias(modelCopy.getAliasByAliasId(connection.getToAlias().getAliasId())); + } + } + } + } + + /** + * Creates copy of the model without modifing information about submodels + * (information about original submodels will be left in the copy). + * + * @param model + * original model to copy + * @return copy of the model + */ + protected Model createNotNestedCopy(Model model) { + Model result = new ModelFullIndexed(null); + + result.setSbgnFormat(model.isSbgnFormat()); + + for (Element element : model.getElements()) { + result.addElement(element); + } + for (Alias alias : model.getAliases()) { + if (alias instanceof CompartmentAlias) { + CompartmentAlias copy = ((CompartmentAlias) alias).copy(); + copy.getAliases().clear(); + result.addAlias(copy); + } + + } + + for (Alias alias : model.getAliases()) { + if (alias instanceof SpeciesAlias) { + SpeciesAlias copy = ((SpeciesAlias) alias).copy(); + copy.setSpecies(result.getSpeciesBySpeciesId(((SpeciesAlias) alias).getSpecies().getElementId())); + CompartmentAlias ca = copy.getCompartmentAlias(); + Alias parent = copy.getParent(); + copy.setCompartmentAlias(null); + copy.setParent(null); + + // the trick is that in addAlias also some connections are added, so + // lets clear info about parents + + result.addAlias(copy); + + if (ca != null) { + ca = result.getCompartmentAliasByCompartmentAliasId(ca.getAliasId()); + copy.setCompartmentAlias(ca); + } + if (parent instanceof CompartmentAlias) { + ca = (CompartmentAlias) parent; + ca = result.getCompartmentAliasByCompartmentAliasId(ca.getAliasId()); + copy.setParent(ca); + } + } else if (alias instanceof CompartmentAlias) { + // we already added compartment alias + continue; + } else { + throw new InvalidClassException("Don't know what to do with: " + alias.getClass()); + } + } + + for (Layer layer : model.getLayers()) { + result.addLayer(layer.copy()); + } + + for (Reaction reaction : model.getReactions()) { + result.addReaction(createCopy(reaction)); + } + + assignSimpleDataToCopy(result, model); + for (Layout layout : model.getLayouts()) { + result.addLayout(layout.copy()); + } + result.setProject(model.getProject()); + + for (Element element : result.getElements()) { + updateElementReferences(element, model); + } + for (Alias alias : result.getAliases()) { + updateAliasReferences(alias, result, model); + } + for (Reaction reaction : result.getReactions()) { + updateReactionReferences(reaction, result); + } + for (ModelSubmodelConnection connection : model.getSubmodelConnections()) { + result.addSubmodelConnection(connection.copy()); + } + for (OverviewImage oi : model.getOverviewImages()) { + result.addOverviewImage(oi.copy()); + } + for (DataMiningSet dataMiningSet : model.getDataMiningSets()) { + result.addDataMiningSet(new DataMiningSet(dataMiningSet)); + } + return result; + } + + /** + * Copies simple information about model to the copy. + * + * @param copy + * to this model data will be copied + * @param original + * original model + */ + private void assignSimpleDataToCopy(Model copy, Model original) { + copy.setMapVersion(original.getMapVersion()); + copy.setName(original.getName()); + + copy.setCreationDate(original.getCreationDate()); + + copy.setWidth(original.getWidth()); + copy.setHeight(original.getHeight()); + copy.setNotes(original.getNotes()); + copy.setIdModel(original.getIdModel()); + copy.setZoomLevels(original.getZoomLevels()); + copy.setTileSize(original.getTileSize()); + + copy.addCreationWarnings(original.getCreationWarnings()); + } + + /** + * Creates copy of the reaction that doesn't contain any references to the + * original (so we have to substitute all references with the new ones...). + * + * @param reaction + * original reaction + * @return copy of the reaction + */ + private Reaction createCopy(Reaction reaction) { + Reaction copy = reaction.copy(); + reaction.getNodes().clear(); + for (AbstractNode node : copy.getNodes()) { + reaction.addNode(node); + } + copy.getNodes().clear(); + + for (AbstractNode node : reaction.getNodes()) { + AbstractNode nodeCopy = node.copy(); + nodeCopy.setLine(new PolylineData(nodeCopy.getLine())); + copy.addNode(nodeCopy); + } + + for (int i = 0; i < copy.getOperators().size(); i++) { + NodeOperator nodeCopy = copy.getOperators().get(i); + NodeOperator nodeOriginal = reaction.getOperators().get(i); + for (int j = 0; j < nodeCopy.getInputs().size(); j++) { + AbstractNode input = nodeCopy.getInputs().get(j); + int index1 = reaction.getOperators().indexOf(input); + int index2 = reaction.getNodes().indexOf(input); + if (index1 >= 0) { + nodeCopy.getInputs().set(j, copy.getOperators().get(index1)); + copy.getOperators().get(index1).setNodeOperatorForInput(nodeCopy); + + reaction.getOperators().get(index1).setNodeOperatorForInput(nodeOriginal); + } else if (index2 >= 0) { + nodeCopy.getInputs().set(j, copy.getNodes().get(index2)); + copy.getNodes().get(index2).setNodeOperatorForInput(nodeCopy); + + reaction.getNodes().get(index2).setNodeOperatorForInput(nodeOriginal); + } else { + throw new InvalidStateException("WTF"); + } + } + + for (int j = 0; j < nodeCopy.getOutputs().size(); j++) { + AbstractNode output = nodeCopy.getOutputs().get(j); + int index1 = reaction.getOperators().indexOf(output); + int index2 = reaction.getNodes().indexOf(output); + if (index1 >= 0) { + nodeCopy.getOutputs().set(j, copy.getOperators().get(index1)); + copy.getOperators().get(index1).setNodeOperatorForOutput(nodeCopy); + + reaction.getOperators().get(index1).setNodeOperatorForOutput(nodeOriginal); + } else if (index2 >= 0) { + nodeCopy.getOutputs().set(j, copy.getNodes().get(index2)); + copy.getNodes().get(index2).setNodeOperatorForOutput(nodeCopy); + + reaction.getNodes().get(index2).setNodeOperatorForOutput(nodeOriginal); + } else { + throw new InvalidStateException("WTF"); + } + } + } + + return copy; + } + + /** + * Updates references to elements and aliases in reaction to the objects taken + * from model. + * + * @param reaction + * references in this reaction will be updated + * @param model + * references from this model will be taken + */ + private void updateReactionReferences(Reaction reaction, Model model) { + reaction.setModel(model); + for (ReactionNode rNode : reaction.getReactionNodes()) { + rNode.setAlias((SpeciesAlias) model.getAliasByAliasId(rNode.getAlias().getAliasId())); + rNode.setElement(model.getSpeciesBySpeciesId(((Species) rNode.getElement()).getElementId())); + } + + } + + /** + * Updates information (like elements, parent aliases) in the alias with the + * data from new model. + * + * @param alias + * object to be updated + * @param model + * data from this model will be used for update + * @param originalModel + * original model from which alias copy was created + */ + private void updateAliasReferences(Alias alias, Model model, Model originalModel) { + if (alias instanceof CompartmentAlias) { + CompartmentAlias compartmentAlias = (CompartmentAlias) alias; + CompartmentAlias original = originalModel.getCompartmentAliasByCompartmentAliasId(alias.getAliasId()); + for (Alias a : original.getAliases()) { + compartmentAlias.addAlias(model.getAliasByAliasId(a.getAliasId())); + } + String compartmentId = null; + if (original.getCompartment() != null) { + compartmentId = original.getCompartment().getElementId(); + } + compartmentAlias.setCompartment(model.getCompartmentByCompartmentId(compartmentId)); + } + + if (alias instanceof ComplexAlias) { + ComplexAlias ca = (ComplexAlias) alias; + for (int i = 0; i < ca.getAliases().size(); i++) { + ca.getAliases().set(i, (SpeciesAlias) model.getAliasByAliasId(ca.getAliases().get(i).getAliasId())); + } + } + if (alias instanceof SpeciesAlias) { + SpeciesAlias originalAlias = (SpeciesAlias) originalModel.getAliasByAliasId(alias.getAliasId()); + SpeciesAlias sa = (SpeciesAlias) alias; + + if (sa.getComplexAlias() != null) { + sa.setComplexAlias((ComplexAlias) model.getAliasByAliasId(sa.getComplexAlias().getAliasId())); + } + sa.setSpecies(model.getSpeciesBySpeciesId(sa.getSpecies().getElementId())); + + if (originalAlias.getParent() != null) { + Alias parent = null; + parent = model.getAliasByAliasId(originalAlias.getParent().getAliasId()); + sa.setParent(parent); + } + } + + if (alias.getParent() != null) { + alias.setParent(model.getAliasByAliasId(alias.getParent().getAliasId())); + } + + alias.setModel(model); + + if (alias.getCompartmentAlias() != null) { + alias.setCompartmentAlias(model.getCompartmentAliasByCompartmentAliasId(alias.getCompartmentAlias().getAliasId())); + } + } + + /** + * Updates information (like parent elements, aliases) in the element with the + * data from new model. + * + * @param element + * object to be updated + * @param model + * data from this model will be used for update + */ + private void updateElementReferences(Element element, Model model) { + + if (element.getParent() != null) { + element.setParent(model.getCompartmentByCompartmentId(((Compartment) element.getParent()).getElementId())); + } + + element.setModel(model); + + if (element.getComplex() != null) { + element.setComplex((ComplexSpecies) model.getSpeciesBySpeciesId(element.getComplex().getElementId())); + } + + if (element instanceof Compartment) { + Set<Element> elements = ((Compartment) element).getElements(); + Set<Element> newElements = new HashSet<Element>(); + for (Element element2 : elements) { + if (element2 instanceof Compartment) { + newElements.add(model.getCompartmentByCompartmentId(element2.getElementId())); + } else { + newElements.add(model.getSpeciesBySpeciesId(((Species) element2).getElementId())); + } + } + ((Compartment) element).getElements().clear(); + ((Compartment) element).getElements().addAll(newElements); + } + + if (element instanceof ComplexSpecies) { + Set<Element> elements = ((ComplexSpecies) element).getElements(); + Set<Element> newElements = new HashSet<Element>(); + for (Element element2 : elements) { + newElements.add(model.getSpeciesBySpeciesId(((Species) element2).getElementId())); + } + + ((ComplexSpecies) element).getElements().clear(); + ((ComplexSpecies) element).getElements().addAll(newElements); + } + + } + +} diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/CreateHierarchyCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/CreateHierarchyCommand.java index ea5c114dce..c6b66f76d9 100644 --- a/model-command/src/main/java/lcsb/mapviewer/commands/CreateHierarchyCommand.java +++ b/model-command/src/main/java/lcsb/mapviewer/commands/CreateHierarchyCommand.java @@ -1,547 +1,547 @@ -package lcsb.mapviewer.commands; - -import java.awt.geom.Point2D; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import lcsb.mapviewer.common.Configuration; -import lcsb.mapviewer.common.exception.InvalidArgumentException; -import lcsb.mapviewer.common.exception.InvalidStateException; -import lcsb.mapviewer.common.exception.NotImplementedException; -import lcsb.mapviewer.model.map.agregator.Compartment; -import lcsb.mapviewer.model.map.layout.alias.Alias; -import lcsb.mapviewer.model.map.layout.alias.ArtifitialCompartmentAlias; -import lcsb.mapviewer.model.map.layout.alias.CompartmentAlias; -import lcsb.mapviewer.model.map.layout.alias.ComplexAlias; -import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; -import lcsb.mapviewer.model.map.layout.graphics.Layer; -import lcsb.mapviewer.model.map.layout.graphics.LayerRect; -import lcsb.mapviewer.model.map.layout.graphics.LayerText; -import lcsb.mapviewer.model.map.model.Model; -import lcsb.mapviewer.model.map.species.ComplexSpecies; -import lcsb.mapviewer.model.map.species.Species; - -import org.apache.log4j.Logger; - -/** - * This {@link ModelCommand command} class allows to transform model into - * multilevel (nested) component structure. Some artificial compartments will - * appear. All compartments have information about children compartments. All - * objects have information about parents. - * - * - */ -public class CreateHierarchyCommand extends ModelCommand { - /** - * Default class logger. - */ - @SuppressWarnings("unused") - private static Logger logger = Logger.getLogger(CreateHierarchyCommand.class); - /** - * Natural logarithm of four. - */ - private static final double LOG_4 = Math.log(4); - - /** - * Top left corner x coordinate of the text associated with compratment. - */ - private static final double DEFAULT_TITLE_X_COORD_IN_ARTIFITIAL_COMPARTMENT = 10; - /** - * Top left corner y coordinate of the text associated with compratment. - */ - private static final double DEFAULT_TITLE_Y_COORD_IN_ARTIFITIAL_COMPARTMENT = 10; - - /** - * How many levels are possible. - */ - private int zoomLevels; - /** - * What is the maximum zoom factor in the view. - */ - private double maxZoomFactor; - - /** - * Default constructor that intializes data. - * - * @param model - * model on which command will be executed - * @param maxZoomFactor - * what is the maximum zoom out factor - * @param zoomLevels - * how many levels are possible - */ - public CreateHierarchyCommand(Model model, int zoomLevels, double maxZoomFactor) { - super(model); - this.zoomLevels = zoomLevels; - this.maxZoomFactor = maxZoomFactor; - } - - @Override - protected void undoImplementation() { - throw new NotImplementedException(); - } - - @Override - protected void executeImplementation() { - if (!ModelCommandStatus.CREATED.equals(getStatus()) && !ModelCommandStatus.UNDONE.equals(getStatus())) { - throw new InvalidStateException("To execute command, the command must be in CREATED or UNDONE state. " + getStatus() + " found."); - } - Model model = getModel(); - List<SpeciesAlias> compacts = new ArrayList<SpeciesAlias>(); - for (Alias alias : model.getAliases()) { - if (alias instanceof ComplexAlias) { - if (((ComplexAlias) alias).getState().contains("brief")) { - compacts.add((SpeciesAlias) alias); - compacts.addAll(((ComplexAlias) alias).getAliases()); - } - } - } - model.getAliases().removeAll(compacts); - clean(); - createArtificials(); - assignAliases(); - orderConcludingComplex(); - orderConcludingCompartments(); - - List<Alias> sortedAliases = model.getAliasesSortedBySize(); - setParentingAndChildreningOfNonComplexChildrens(sortedAliases); - model.getAliases().addAll(compacts); - sortedAliases = model.getAliasesSortedBySize(); - preSettingOfVisibilityLevel(sortedAliases, maxZoomFactor); - settingOfTransparencyLevel(sortedAliases); - - assignSpeciesAccordingToAliasComplexes(); - - setStatus(ModelCommandStatus.EXECUTED); - } - - /** - * Fixes complexes assignment for species. The fix is based on - * {@link SpeciesAlias#complexAlias} or {@link Alias#parent} fields. - */ - private void assignSpeciesAccordingToAliasComplexes() { - for (SpeciesAlias alias : getModel().getSpeciesAliases()) { - ComplexAlias complexAlias = null; - if (alias.getComplexAlias() != null) { - complexAlias = alias.getComplexAlias(); - } else if (alias.getParent() instanceof ComplexAlias) { - complexAlias = (ComplexAlias) alias.getParent(); - } - if (complexAlias != null) { - - complexAlias = (ComplexAlias) getModel().getAliasByAliasId(complexAlias.getAliasId()); - Species species = getModel().getSpeciesBySpeciesId(alias.getSpecies().getElementId()); - ComplexSpecies complexSpecies = (ComplexSpecies) getModel().getSpeciesBySpeciesId(complexAlias.getSpecies().getElementId()); - if (species.getComplex() != complexSpecies) { - species.setComplex(complexSpecies); - try { - complexSpecies.addElement(species); - } catch (InvalidArgumentException e) { - //this is thrown when species is already part of the complex - } - } - } - } - - } - - @Override - protected void redoImplementation() { - throw new NotImplementedException(); - } - - /** - * Cleans hierarchical information from the model. - */ - protected void clean() { - for (Alias alias : getModel().getAliases()) { - alias.setParent(null); - if (alias instanceof ComplexAlias) { - ((ComplexAlias) alias).getAliases().clear(); - } - } - Set<ArtifitialCompartmentAlias> toRemove = new HashSet<ArtifitialCompartmentAlias>(); - for (CompartmentAlias alias : getModel().getCompartmentsAliases()) { - alias.setParent(null); - alias.getAliases().clear(); - if (alias instanceof ArtifitialCompartmentAlias) { - toRemove.add((ArtifitialCompartmentAlias) alias); - } - } - for (ArtifitialCompartmentAlias alias : toRemove) { - getModel().removeAlias(alias); - } - } - - /** - * Creates artifitial compartment alias for rectangles and texts object on - * additional graphic layers. - */ - private void createArtificials() { - Model model = getModel(); - int id = 0; - for (Layer layer : model.getLayers()) { - for (LayerRect rect : layer.getRectangles()) { - String title = "art" + id; - ArtifitialCompartmentAlias alias = new ArtifitialCompartmentAlias(); - alias.setX(rect.getX()); - alias.setY(rect.getY()); - alias.setWidth(rect.getWidth()); - alias.setHeight(rect.getHeight()); - alias.setColor(rect.getColor()); - alias.setAliasId("art" + (id++)); - alias.setNamePoint(new Point2D.Double(rect.getX() + DEFAULT_TITLE_X_COORD_IN_ARTIFITIAL_COMPARTMENT, rect.getY() - + DEFAULT_TITLE_Y_COORD_IN_ARTIFITIAL_COMPARTMENT)); - - model.addAlias(alias); - - Compartment compartment = new Compartment(); - compartment.setName(title); - compartment.setElementId("ca_" + title); - alias.setCompartment(compartment); - model.addCompartment(compartment); - } - for (LayerText text : layer.getTexts()) { - ArtifitialCompartmentAlias alias = new ArtifitialCompartmentAlias(); - alias.setX(text.getX()); - alias.setY(text.getY()); - alias.setWidth(text.getWidth()); - alias.setHeight(text.getHeight()); - alias.setColor(text.getColor()); - alias.setAliasId((id++) + ""); - alias.setTitle(text.getNotes().trim()); - alias.setNamePoint(new Point2D.Double(text.getX() + DEFAULT_TITLE_X_COORD_IN_ARTIFITIAL_COMPARTMENT, text.getY() - + DEFAULT_TITLE_Y_COORD_IN_ARTIFITIAL_COMPARTMENT)); - - model.addAlias(alias); - - Compartment compartment = new Compartment(); - compartment.setName(text.getNotes().trim()); - compartment.setElementId((id++) + ""); - alias.setCompartment(compartment); - model.addCompartment(compartment); - } - } - } - - /** - * Assign aliases in hierarchical structure. - */ - private void assignAliases() { - assignToComplexes(); - assignToCompartments(); - } - - /** - * Checks if hierarchical structure of complexes is valid. - */ - private void orderConcludingComplex() { - orderingComplexesInCompartments(); - orderingComplexesInComplexes(); - List<Alias> list = new ArrayList<Alias>(); - for (Alias alias : getModel().getAliases()) { - if (alias instanceof ComplexAlias) { - for (SpeciesAlias specAlias : ((ComplexAlias) alias).getAliases()) { - if (list.contains(specAlias)) { - throw new InvalidStateException("Some aliases are in few Complexes"); - } - } - if (alias instanceof CompartmentAlias) { - for (Alias specAlias : ((CompartmentAlias) alias).getAliases()) { - if (list.contains(specAlias)) { - throw new InvalidStateException("Some aliases are in few Structures"); - } - } - } - } - } - for (Alias alias : getModel().getAliases()) { - if (alias.getParent() != null) { - throw new InvalidStateException("WTF"); - } - } - parentingInComplexes(); - } - - /** - * Checks if hierarchical structure of compartments is valid. - */ - private void orderConcludingCompartments() { - for (CompartmentAlias compartment1 : getModel().getCompartmentsAliases()) { - for (CompartmentAlias compartment2 : getModel().getCompartmentsAliases()) { - if (!compartment1.equals(compartment2)) { - if (compartment1.contains(compartment2)) { - Set<Alias> duplicates = compartment2.getAliases(); - compartment1.getAliases().removeAll(duplicates); - } - } - } - } - } - - /** - * Computes visibility levels for aliases based on the size. - * - * @param sortedAliases - * list of aliases - * @param maxZoomFactor - * max scale used on the map - */ - private void preSettingOfVisibilityLevel(List<Alias> sortedAliases, double maxZoomFactor) { - for (Alias alias : sortedAliases) { - double rate = computeRate(alias, Configuration.MIN_VISIBLE_OBJECT_SIZE); - int logValue = (int) ((int) Math.ceil(Math.log(rate)) / LOG_4); - if (alias.getParent() == null) { - logValue = 0; - } - if (logValue >= zoomLevels) { - if (alias.getParent() instanceof ComplexAlias) { - logValue = zoomLevels - 1; - } else { - logValue = zoomLevels; - } - } - alias.setVisibilityLevel(logValue); - } - } - - /** - * Sets transparency level in hierarchical view for compartment alias. - * - * @param compartment - * comaprtment alias - */ - private void settingTransparencyLevelForCompartment(CompartmentAlias compartment) { - int maxVisibilityLevel = Integer.MAX_VALUE; - double rate = computeRate(compartment, Configuration.MAX_VISIBLE_OBJECT_SIZE); - maxVisibilityLevel = (int) ((int) Math.ceil(Math.log(rate)) / LOG_4); - for (Alias child : compartment.getAliases()) { - maxVisibilityLevel = Math.min(maxVisibilityLevel, child.getVisibilityLevel()); - } - if (maxVisibilityLevel >= zoomLevels) { - maxVisibilityLevel = zoomLevels; - } - if (maxVisibilityLevel <= 0) { - maxVisibilityLevel = 1; - } - compartment.setTransparencyLevel(maxVisibilityLevel); - for (Alias child : compartment.getAliases()) { - child.setVisibilityLevel(compartment.getTransparencyLevel()); - } - } - - /** - * Sets transparency level in hierarchical view for complex alias. - * - * @param complex - * complex alias - */ - private void settingTransparencyLevelForComplex(ComplexAlias complex) { - int maxVisibilityLevel = Integer.MAX_VALUE; - double rate = computeRate(complex, Configuration.MAX_VISIBLE_OBJECT_SIZE); - maxVisibilityLevel = (int) ((int) Math.ceil(Math.log(rate)) / LOG_4); - for (Alias child : complex.getAliases()) { - maxVisibilityLevel = Math.min(maxVisibilityLevel, child.getVisibilityLevel()); - } - if (maxVisibilityLevel >= zoomLevels) { - maxVisibilityLevel = zoomLevels; - } - if (maxVisibilityLevel <= 0) { - maxVisibilityLevel = 1; - } - complex.setTransparencyLevel(maxVisibilityLevel); - for (Alias child : complex.getAliases()) { - child.setVisibilityLevel(complex.getTransparencyLevel()); - } - } - - /** - * Sets transparency level in hierarchical view for all elements. - * - * @param sortedAliases - * list of aliases - */ - private void settingOfTransparencyLevel(List<Alias> sortedAliases) { - for (Alias alias : sortedAliases) { - if (alias instanceof CompartmentAlias) { - settingTransparencyLevelForCompartment((CompartmentAlias) alias); - } else if (alias instanceof ComplexAlias) { - settingTransparencyLevelForComplex((ComplexAlias) alias); - } else { - alias.setTransparencyLevel(0); - } - } - } - - /** - * Removes invalid compartment children. - * - * @param sortedAliases - * list of aliases - */ - private void setChildrening(List<Alias> sortedAliases) { - for (Alias compartment : sortedAliases) { - if (compartment instanceof CompartmentAlias) { - Set<Alias> removable = new HashSet<Alias>(); - for (Alias alias : ((CompartmentAlias) compartment).getAliases()) { - if (alias.getParent() != compartment) { - removable.add(alias); - } - } - ((CompartmentAlias) compartment).getAliases().removeAll(removable); - } - } - } - - /** - * Sets parent for elements. - * - * @param sortedAliases - * list of aliases - */ - private void setParentingOfNonComplexChildrens(List<Alias> sortedAliases) { - for (Alias alias : getModel().getAliases()) { - if (alias.getParent() == null) { - for (Alias complex : sortedAliases) { - if (complex instanceof ComplexAlias) { - if (((ComplexAlias) complex).getAliases().contains(alias)) { - alias.setParent(complex); - } - } - } - if (alias.getParent() == null) { - for (Alias compartment : sortedAliases) { - if (compartment instanceof CompartmentAlias) { - if (((CompartmentAlias) compartment).getAliases().contains(alias)) { - alias.setParent(compartment); - } - } - } - } - } - } - } - - /** - * Set parents for the elements in hierarchical view. - * - * @param sortedAliases - * list of aliases - */ - private void setParentingAndChildreningOfNonComplexChildrens(List<Alias> sortedAliases) { - setParentingOfNonComplexChildrens(sortedAliases); - setChildrening(sortedAliases); - } - - /** - * Assign aliases to compartments. - */ - private void assignToCompartments() { - for (CompartmentAlias alias : getModel().getCompartmentsAliases()) { - for (CompartmentAlias alias2 : getModel().getCompartmentsAliases()) { - if (alias.contains(alias2)) { - alias.addAlias(alias2); - } - } - for (Alias alias2 : getModel().getAliases()) { - if (!(alias2 instanceof CompartmentAlias)) { - if (alias.contains(alias2)) { - alias.addAlias(alias2); - } - } - } - } - } - - /** - * Assign aliases to complexes. - */ - private void assignToComplexes() { - for (Alias alias : getModel().getAliases()) { - if (alias instanceof ComplexAlias) { - for (Alias alias2 : getModel().getAliases()) { - if (alias.contains(alias2) && !alias.equals(alias2)) { - ((ComplexAlias) alias).getAliases().add((SpeciesAlias) alias2); - } - } - } - } - } - - /** - * Remove subchildren from complexes. - */ - private void orderingComplexesInComplexes() { - for (Alias complex1 : getModel().getAliases()) { - if (complex1 instanceof ComplexAlias) { - for (Alias complex2 : getModel().getAliases()) { - if (complex2 instanceof ComplexAlias) { - if (!complex1.equals(complex2)) { - if (complex1.contains(complex2)) { - List<SpeciesAlias> duplicates = ((ComplexAlias) complex2).getAliases(); - ((ComplexAlias) complex1).getAliases().removeAll(duplicates); - } - } - } - } - } - } - } - - /** - * Remove subchildren from compartments by complexes. - */ - private void orderingComplexesInCompartments() { - for (CompartmentAlias compartment : getModel().getCompartmentsAliases()) { - for (Alias complex : getModel().getAliases()) { - if (complex instanceof ComplexAlias) { - List<SpeciesAlias> duplicates = ((ComplexAlias) complex).getAliases(); - compartment.getAliases().removeAll(duplicates); - } - } - } - } - - /** - * Sets proper parents after creating hierarchical structure. - */ - private void parentingInComplexes() { - for (Alias complex : getModel().getAliases()) { - if (complex instanceof ComplexAlias) { - for (Alias child : ((ComplexAlias) complex).getAliases()) { - if (child instanceof ComplexAlias) { - if (((ComplexAlias) child).getAliases().contains(complex)) { - if (complex.getParent() != null) { - throw new InvalidStateException(((SpeciesAlias) child).getSpecies().getName() + " has parent " - + ((SpeciesAlias) child).getSpecies().getParent().getName() + " and now again try to add new parent " - + ((SpeciesAlias) complex).getSpecies().getName()); - } - child.setParent(complex); - } - } - } - } - } - } - - /** - * Computes the ratio between the minimal object that should be visible, and - * alias visible on the top level. - * - * @param alias - * alias for which computation is done - * @param limit - * size of the minimal visibe object - * @return ratio between the minimal object that should be visible, and alias - * visible on the top level - */ - private double computeRate(Alias alias, double limit) { - double length = alias.getWidth() / maxZoomFactor; - double height = alias.getHeight() / maxZoomFactor; - double size = length * height; - return (double) Math.ceil(limit / size); - } - -} +package lcsb.mapviewer.commands; + +import java.awt.geom.Point2D; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import lcsb.mapviewer.common.Configuration; +import lcsb.mapviewer.common.exception.InvalidArgumentException; +import lcsb.mapviewer.common.exception.InvalidStateException; +import lcsb.mapviewer.common.exception.NotImplementedException; +import lcsb.mapviewer.model.map.agregator.Compartment; +import lcsb.mapviewer.model.map.layout.alias.Alias; +import lcsb.mapviewer.model.map.layout.alias.ArtifitialCompartmentAlias; +import lcsb.mapviewer.model.map.layout.alias.CompartmentAlias; +import lcsb.mapviewer.model.map.layout.alias.ComplexAlias; +import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; +import lcsb.mapviewer.model.map.layout.graphics.Layer; +import lcsb.mapviewer.model.map.layout.graphics.LayerRect; +import lcsb.mapviewer.model.map.layout.graphics.LayerText; +import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.model.map.species.ComplexSpecies; +import lcsb.mapviewer.model.map.species.Species; + +import org.apache.log4j.Logger; + +/** + * This {@link ModelCommand command} class allows to transform model into + * multilevel (nested) component structure. Some artificial compartments will + * appear. All compartments have information about children compartments. All + * objects have information about parents. + * + * + */ +public class CreateHierarchyCommand extends ModelCommand { + /** + * Default class logger. + */ + @SuppressWarnings("unused") + private static Logger logger = Logger.getLogger(CreateHierarchyCommand.class); + /** + * Natural logarithm of four. + */ + private static final double LOG_4 = Math.log(4); + + /** + * Top left corner x coordinate of the text associated with compratment. + */ + private static final double DEFAULT_TITLE_X_COORD_IN_ARTIFITIAL_COMPARTMENT = 10; + /** + * Top left corner y coordinate of the text associated with compratment. + */ + private static final double DEFAULT_TITLE_Y_COORD_IN_ARTIFITIAL_COMPARTMENT = 10; + + /** + * How many levels are possible. + */ + private int zoomLevels; + /** + * What is the maximum zoom factor in the view. + */ + private double maxZoomFactor; + + /** + * Default constructor that intializes data. + * + * @param model + * model on which command will be executed + * @param maxZoomFactor + * what is the maximum zoom out factor + * @param zoomLevels + * how many levels are possible + */ + public CreateHierarchyCommand(Model model, int zoomLevels, double maxZoomFactor) { + super(model); + this.zoomLevels = zoomLevels; + this.maxZoomFactor = maxZoomFactor; + } + + @Override + protected void undoImplementation() { + throw new NotImplementedException(); + } + + @Override + protected void executeImplementation() { + if (!ModelCommandStatus.CREATED.equals(getStatus()) && !ModelCommandStatus.UNDONE.equals(getStatus())) { + throw new InvalidStateException("To execute command, the command must be in CREATED or UNDONE state. " + getStatus() + " found."); + } + Model model = getModel(); + List<SpeciesAlias> compacts = new ArrayList<SpeciesAlias>(); + for (Alias alias : model.getAliases()) { + if (alias instanceof ComplexAlias) { + if (((ComplexAlias) alias).getState().contains("brief")) { + compacts.add((SpeciesAlias) alias); + compacts.addAll(((ComplexAlias) alias).getAliases()); + } + } + } + model.getAliases().removeAll(compacts); + clean(); + createArtificials(); + assignAliases(); + orderConcludingComplex(); + orderConcludingCompartments(); + + List<Alias> sortedAliases = model.getAliasesSortedBySize(); + setParentingAndChildreningOfNonComplexChildrens(sortedAliases); + model.getAliases().addAll(compacts); + sortedAliases = model.getAliasesSortedBySize(); + preSettingOfVisibilityLevel(sortedAliases, maxZoomFactor); + settingOfTransparencyLevel(sortedAliases); + + assignSpeciesAccordingToAliasComplexes(); + + setStatus(ModelCommandStatus.EXECUTED); + } + + /** + * Fixes complexes assignment for species. The fix is based on + * {@link SpeciesAlias#complexAlias} or {@link Alias#parent} fields. + */ + private void assignSpeciesAccordingToAliasComplexes() { + for (SpeciesAlias alias : getModel().getSpeciesAliases()) { + ComplexAlias complexAlias = null; + if (alias.getComplexAlias() != null) { + complexAlias = alias.getComplexAlias(); + } else if (alias.getParent() instanceof ComplexAlias) { + complexAlias = (ComplexAlias) alias.getParent(); + } + if (complexAlias != null) { + + complexAlias = (ComplexAlias) getModel().getAliasByAliasId(complexAlias.getAliasId()); + Species species = getModel().getSpeciesBySpeciesId(alias.getSpecies().getElementId()); + ComplexSpecies complexSpecies = (ComplexSpecies) getModel().getSpeciesBySpeciesId(complexAlias.getSpecies().getElementId()); + if (species.getComplex() != complexSpecies) { + species.setComplex(complexSpecies); + try { + complexSpecies.addElement(species); + } catch (InvalidArgumentException e) { + //this is thrown when species is already part of the complex + } + } + } + } + + } + + @Override + protected void redoImplementation() { + throw new NotImplementedException(); + } + + /** + * Cleans hierarchical information from the model. + */ + protected void clean() { + for (Alias alias : getModel().getAliases()) { + alias.setParent(null); + if (alias instanceof ComplexAlias) { + ((ComplexAlias) alias).getAliases().clear(); + } + } + Set<ArtifitialCompartmentAlias> toRemove = new HashSet<ArtifitialCompartmentAlias>(); + for (CompartmentAlias alias : getModel().getCompartmentsAliases()) { + alias.setParent(null); + alias.getAliases().clear(); + if (alias instanceof ArtifitialCompartmentAlias) { + toRemove.add((ArtifitialCompartmentAlias) alias); + } + } + for (ArtifitialCompartmentAlias alias : toRemove) { + getModel().removeAlias(alias); + } + } + + /** + * Creates artifitial compartment alias for rectangles and texts object on + * additional graphic layers. + */ + private void createArtificials() { + Model model = getModel(); + int id = 0; + for (Layer layer : model.getLayers()) { + for (LayerRect rect : layer.getRectangles()) { + String title = "art" + id; + ArtifitialCompartmentAlias alias = new ArtifitialCompartmentAlias(); + alias.setX(rect.getX()); + alias.setY(rect.getY()); + alias.setWidth(rect.getWidth()); + alias.setHeight(rect.getHeight()); + alias.setColor(rect.getColor()); + alias.setAliasId("art" + (id++)); + alias.setNamePoint(new Point2D.Double(rect.getX() + DEFAULT_TITLE_X_COORD_IN_ARTIFITIAL_COMPARTMENT, rect.getY() + + DEFAULT_TITLE_Y_COORD_IN_ARTIFITIAL_COMPARTMENT)); + + model.addAlias(alias); + + Compartment compartment = new Compartment(); + compartment.setName(title); + compartment.setElementId("ca_" + title); + alias.setCompartment(compartment); + model.addCompartment(compartment); + } + for (LayerText text : layer.getTexts()) { + ArtifitialCompartmentAlias alias = new ArtifitialCompartmentAlias(); + alias.setX(text.getX()); + alias.setY(text.getY()); + alias.setWidth(text.getWidth()); + alias.setHeight(text.getHeight()); + alias.setColor(text.getColor()); + alias.setAliasId((id++) + ""); + alias.setTitle(text.getNotes().trim()); + alias.setNamePoint(new Point2D.Double(text.getX() + DEFAULT_TITLE_X_COORD_IN_ARTIFITIAL_COMPARTMENT, text.getY() + + DEFAULT_TITLE_Y_COORD_IN_ARTIFITIAL_COMPARTMENT)); + + model.addAlias(alias); + + Compartment compartment = new Compartment(); + compartment.setName(text.getNotes().trim()); + compartment.setElementId((id++) + ""); + alias.setCompartment(compartment); + model.addCompartment(compartment); + } + } + } + + /** + * Assign aliases in hierarchical structure. + */ + private void assignAliases() { + assignToComplexes(); + assignToCompartments(); + } + + /** + * Checks if hierarchical structure of complexes is valid. + */ + private void orderConcludingComplex() { + orderingComplexesInCompartments(); + orderingComplexesInComplexes(); + List<Alias> list = new ArrayList<Alias>(); + for (Alias alias : getModel().getAliases()) { + if (alias instanceof ComplexAlias) { + for (SpeciesAlias specAlias : ((ComplexAlias) alias).getAliases()) { + if (list.contains(specAlias)) { + throw new InvalidStateException("Some aliases are in few Complexes"); + } + } + if (alias instanceof CompartmentAlias) { + for (Alias specAlias : ((CompartmentAlias) alias).getAliases()) { + if (list.contains(specAlias)) { + throw new InvalidStateException("Some aliases are in few Structures"); + } + } + } + } + } + for (Alias alias : getModel().getAliases()) { + if (alias.getParent() != null) { + throw new InvalidStateException("WTF"); + } + } + parentingInComplexes(); + } + + /** + * Checks if hierarchical structure of compartments is valid. + */ + private void orderConcludingCompartments() { + for (CompartmentAlias compartment1 : getModel().getCompartmentsAliases()) { + for (CompartmentAlias compartment2 : getModel().getCompartmentsAliases()) { + if (!compartment1.equals(compartment2)) { + if (compartment1.contains(compartment2)) { + Set<Alias> duplicates = compartment2.getAliases(); + compartment1.getAliases().removeAll(duplicates); + } + } + } + } + } + + /** + * Computes visibility levels for aliases based on the size. + * + * @param sortedAliases + * list of aliases + * @param maxZoomFactor + * max scale used on the map + */ + private void preSettingOfVisibilityLevel(List<Alias> sortedAliases, double maxZoomFactor) { + for (Alias alias : sortedAliases) { + double rate = computeRate(alias, Configuration.MIN_VISIBLE_OBJECT_SIZE); + int logValue = (int) ((int) Math.ceil(Math.log(rate)) / LOG_4); + if (alias.getParent() == null) { + logValue = 0; + } + if (logValue >= zoomLevels) { + if (alias.getParent() instanceof ComplexAlias) { + logValue = zoomLevels - 1; + } else { + logValue = zoomLevels; + } + } + alias.setVisibilityLevel(logValue); + } + } + + /** + * Sets transparency level in hierarchical view for compartment alias. + * + * @param compartment + * comaprtment alias + */ + private void settingTransparencyLevelForCompartment(CompartmentAlias compartment) { + int maxVisibilityLevel = Integer.MAX_VALUE; + double rate = computeRate(compartment, Configuration.MAX_VISIBLE_OBJECT_SIZE); + maxVisibilityLevel = (int) ((int) Math.ceil(Math.log(rate)) / LOG_4); + for (Alias child : compartment.getAliases()) { + maxVisibilityLevel = Math.min(maxVisibilityLevel, child.getVisibilityLevel()); + } + if (maxVisibilityLevel >= zoomLevels) { + maxVisibilityLevel = zoomLevels; + } + if (maxVisibilityLevel <= 0) { + maxVisibilityLevel = 1; + } + compartment.setTransparencyLevel(maxVisibilityLevel); + for (Alias child : compartment.getAliases()) { + child.setVisibilityLevel(compartment.getTransparencyLevel()); + } + } + + /** + * Sets transparency level in hierarchical view for complex alias. + * + * @param complex + * complex alias + */ + private void settingTransparencyLevelForComplex(ComplexAlias complex) { + int maxVisibilityLevel = Integer.MAX_VALUE; + double rate = computeRate(complex, Configuration.MAX_VISIBLE_OBJECT_SIZE); + maxVisibilityLevel = (int) ((int) Math.ceil(Math.log(rate)) / LOG_4); + for (Alias child : complex.getAliases()) { + maxVisibilityLevel = Math.min(maxVisibilityLevel, child.getVisibilityLevel()); + } + if (maxVisibilityLevel >= zoomLevels) { + maxVisibilityLevel = zoomLevels; + } + if (maxVisibilityLevel <= 0) { + maxVisibilityLevel = 1; + } + complex.setTransparencyLevel(maxVisibilityLevel); + for (Alias child : complex.getAliases()) { + child.setVisibilityLevel(complex.getTransparencyLevel()); + } + } + + /** + * Sets transparency level in hierarchical view for all elements. + * + * @param sortedAliases + * list of aliases + */ + private void settingOfTransparencyLevel(List<Alias> sortedAliases) { + for (Alias alias : sortedAliases) { + if (alias instanceof CompartmentAlias) { + settingTransparencyLevelForCompartment((CompartmentAlias) alias); + } else if (alias instanceof ComplexAlias) { + settingTransparencyLevelForComplex((ComplexAlias) alias); + } else { + alias.setTransparencyLevel(0); + } + } + } + + /** + * Removes invalid compartment children. + * + * @param sortedAliases + * list of aliases + */ + private void setChildrening(List<Alias> sortedAliases) { + for (Alias compartment : sortedAliases) { + if (compartment instanceof CompartmentAlias) { + Set<Alias> removable = new HashSet<Alias>(); + for (Alias alias : ((CompartmentAlias) compartment).getAliases()) { + if (alias.getParent() != compartment) { + removable.add(alias); + } + } + ((CompartmentAlias) compartment).getAliases().removeAll(removable); + } + } + } + + /** + * Sets parent for elements. + * + * @param sortedAliases + * list of aliases + */ + private void setParentingOfNonComplexChildrens(List<Alias> sortedAliases) { + for (Alias alias : getModel().getAliases()) { + if (alias.getParent() == null) { + for (Alias complex : sortedAliases) { + if (complex instanceof ComplexAlias) { + if (((ComplexAlias) complex).getAliases().contains(alias)) { + alias.setParent(complex); + } + } + } + if (alias.getParent() == null) { + for (Alias compartment : sortedAliases) { + if (compartment instanceof CompartmentAlias) { + if (((CompartmentAlias) compartment).getAliases().contains(alias)) { + alias.setParent(compartment); + } + } + } + } + } + } + } + + /** + * Set parents for the elements in hierarchical view. + * + * @param sortedAliases + * list of aliases + */ + private void setParentingAndChildreningOfNonComplexChildrens(List<Alias> sortedAliases) { + setParentingOfNonComplexChildrens(sortedAliases); + setChildrening(sortedAliases); + } + + /** + * Assign aliases to compartments. + */ + private void assignToCompartments() { + for (CompartmentAlias alias : getModel().getCompartmentsAliases()) { + for (CompartmentAlias alias2 : getModel().getCompartmentsAliases()) { + if (alias.contains(alias2)) { + alias.addAlias(alias2); + } + } + for (Alias alias2 : getModel().getAliases()) { + if (!(alias2 instanceof CompartmentAlias)) { + if (alias.contains(alias2)) { + alias.addAlias(alias2); + } + } + } + } + } + + /** + * Assign aliases to complexes. + */ + private void assignToComplexes() { + for (Alias alias : getModel().getAliases()) { + if (alias instanceof ComplexAlias) { + for (Alias alias2 : getModel().getAliases()) { + if (alias.contains(alias2) && !alias.equals(alias2)) { + ((ComplexAlias) alias).getAliases().add((SpeciesAlias) alias2); + } + } + } + } + } + + /** + * Remove subchildren from complexes. + */ + private void orderingComplexesInComplexes() { + for (Alias complex1 : getModel().getAliases()) { + if (complex1 instanceof ComplexAlias) { + for (Alias complex2 : getModel().getAliases()) { + if (complex2 instanceof ComplexAlias) { + if (!complex1.equals(complex2)) { + if (complex1.contains(complex2)) { + List<SpeciesAlias> duplicates = ((ComplexAlias) complex2).getAliases(); + ((ComplexAlias) complex1).getAliases().removeAll(duplicates); + } + } + } + } + } + } + } + + /** + * Remove subchildren from compartments by complexes. + */ + private void orderingComplexesInCompartments() { + for (CompartmentAlias compartment : getModel().getCompartmentsAliases()) { + for (Alias complex : getModel().getAliases()) { + if (complex instanceof ComplexAlias) { + List<SpeciesAlias> duplicates = ((ComplexAlias) complex).getAliases(); + compartment.getAliases().removeAll(duplicates); + } + } + } + } + + /** + * Sets proper parents after creating hierarchical structure. + */ + private void parentingInComplexes() { + for (Alias complex : getModel().getAliases()) { + if (complex instanceof ComplexAlias) { + for (Alias child : ((ComplexAlias) complex).getAliases()) { + if (child instanceof ComplexAlias) { + if (((ComplexAlias) child).getAliases().contains(complex)) { + if (complex.getParent() != null) { + throw new InvalidStateException(((SpeciesAlias) child).getSpecies().getName() + " has parent " + + ((SpeciesAlias) child).getSpecies().getParent().getName() + " and now again try to add new parent " + + ((SpeciesAlias) complex).getSpecies().getName()); + } + child.setParent(complex); + } + } + } + } + } + } + + /** + * Computes the ratio between the minimal object that should be visible, and + * alias visible on the top level. + * + * @param alias + * alias for which computation is done + * @param limit + * size of the minimal visibe object + * @return ratio between the minimal object that should be visible, and alias + * visible on the top level + */ + private double computeRate(Alias alias, double limit) { + double length = alias.getWidth() / maxZoomFactor; + double height = alias.getHeight() / maxZoomFactor; + double size = length * height; + return (double) Math.ceil(limit / size); + } + +} diff --git a/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java b/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java index e9c57cea48..dfdd85384d 100644 --- a/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java +++ b/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java @@ -1,341 +1,341 @@ -package lcsb.mapviewer.commands; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import java.awt.Color; -import java.util.ArrayList; -import java.util.Collection; -import java.util.List; -import java.util.Map; - -import org.apache.log4j.Logger; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -import lcsb.mapviewer.common.Pair; -import lcsb.mapviewer.model.map.MiriamType; -import lcsb.mapviewer.model.map.layout.ColorSchema; -import lcsb.mapviewer.model.map.layout.GenericColorSchema; -import lcsb.mapviewer.model.map.layout.alias.Alias; -import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; -import lcsb.mapviewer.model.map.model.Model; -import lcsb.mapviewer.model.map.model.ModelComparator; -import lcsb.mapviewer.model.map.model.ModelFullIndexed; -import lcsb.mapviewer.model.map.model.ModelSubmodelConnection; -import lcsb.mapviewer.model.map.model.SubmodelType; -import lcsb.mapviewer.model.map.reaction.Reaction; -import lcsb.mapviewer.model.map.species.GenericProtein; -import lcsb.mapviewer.model.map.species.Protein; - -public class ColorModelCommandTest extends CommandTestFunctions { - Logger logger = Logger.getLogger(ColorModelCommandTest.class); - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - /** - * Test if all elements were copied - if not hibernate will complain - * - * @throws Exception - * - */ - @Test - public void testColorFullModel() throws Exception { - ModelComparator comparator = new ModelComparator(); - try { - Model model = getModelForFile("testFiles/sample.xml", false); - Model model2 = getModelForFile("testFiles/sample.xml", false); - Model coloredModel = new CopyCommand(model).execute(); - - List<ColorSchema> schemas = new ArrayList<>(); - ColorSchema schema = new GenericColorSchema(); - schema.setName("CNC"); - schema.setValue(-1.0); - schemas.add(schema); - ColorModelCommand factory = new ColorModelCommand(coloredModel, schemas); - - assertFalse(Color.RED.equals(coloredModel.getAliasByAliasId("sa14").getColor())); - - factory.execute(); - - assertEquals(0, comparator.compare(model, model2)); - - assertFalse(comparator.compare(model, coloredModel) == 0); - - assertEquals(Color.RED, coloredModel.getAliasByAliasId("sa14").getColor()); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testColoring2() throws Exception { - try { - Model model = getModelForFile("testFiles/coloring_model.xml", true); - Collection<ColorSchema> schemas = new ArrayList<>(); - ColorSchema schema = new GenericColorSchema(); - schema.setGeneralIdentifier("HGNC:11138"); - schema.setValue(1.0); - schemas.add(schema); - schema = new GenericColorSchema(); - schema.setGeneralIdentifier("CHEBI:CHEBI:15377"); - schema.setValue(1.0); - schemas.add(schema); - schema = new GenericColorSchema(); - schema.setGeneralIdentifier("CHEBI:CHEBI:15376"); - schema.setValue(1.0); - schemas.add(schema); - - ColorModelCommand factory = new ColorModelCommand(model, schemas); - Collection<ColorSchema> missing = factory.getMissingSchema(); - - assertEquals(1, missing.size()); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testReactionColoring1() throws Exception { - try { - Model model = getModelForFile("testFiles/reactions_to_color.xml", false); - Reaction re4 = model.getReactionByReactionId("re4"); - Collection<ColorSchema> schemas = new ArrayList<ColorSchema>(); - - ColorModelCommand factory = new ColorModelCommand(model, schemas); - assertFalse(Color.BLACK.equals(re4.getNodes().get(0).getLine().getColor())); - - factory.execute(); - re4 = model.getReactionByReactionId("re4"); - - assertEquals(Color.BLACK, re4.getNodes().get(0).getLine().getColor()); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testReactionColoring2() throws Exception { - try { - Model model = getModelForFile("testFiles/reactions_to_color.xml", false); - Reaction re1 = model.getReactionByReactionId("re1"); - Collection<ColorSchema> schemas = new ArrayList<ColorSchema>(); - ColorSchema schema = new GenericColorSchema(); - schema.setReactionIdentifier("re1"); - schema.setColor(Color.RED); - schemas.add(schema); - - ColorModelCommand factory = new ColorModelCommand(model, schemas); - assertEquals(Color.BLACK, re1.getNodes().get(0).getLine().getColor()); - - factory.execute(); - re1 = model.getReactionByReactionId("re1"); - - assertEquals(Color.RED, re1.getNodes().get(0).getLine().getColor()); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testReactionColoring3() throws Exception { - try { - Model model = getModelForFile("testFiles/reactions_to_color.xml", false); - Reaction re2 = model.getReactionByReactionId("re2"); - Collection<ColorSchema> schemas = new ArrayList<ColorSchema>(); - ColorSchema schema = new GenericColorSchema(); - schema.setReactionIdentifier("re2"); - schema.setValue(-1.0); - schemas.add(schema); - - ColorModelCommand factory = new ColorModelCommand(model, schemas); - assertEquals(Color.BLACK, re2.getNodes().get(0).getLine().getColor()); - - factory.execute(); - re2 = model.getReactionByReactionId("re2"); - - assertEquals(Color.RED, re2.getNodes().get(0).getLine().getColor()); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testReactionColoring4() throws Exception { - try { - Model model = getModelForFile("testFiles/reactions_to_color.xml", false); - Reaction re3 = model.getReactionByReactionId("re3"); - Collection<ColorSchema> schemas = new ArrayList<ColorSchema>(); - ColorSchema schema = new GenericColorSchema(); - Pair<MiriamType, String> pair = new Pair<MiriamType, String>(MiriamType.PUBMED, "12345"); - List<Pair<MiriamType, String>> identifiers = new ArrayList<Pair<MiriamType, String>>(); - identifiers.add(pair); - - schema.setIdentifierColumns(identifiers); - schema.setValue(-1.0); - schemas.add(schema); - - ColorModelCommand factory = new ColorModelCommand(model, schemas); - - assertEquals(Color.BLACK, re3.getNodes().get(0).getLine().getColor()); - - factory.execute(); - re3 = model.getReactionByReactionId("re3"); - - assertEquals(Color.RED, re3.getNodes().get(0).getLine().getColor()); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testColoringComplexModel() throws Exception { - try { - Model model = getModelForFile("testFiles/sample.xml", false); - Model model2 = getModelForFile("testFiles/sample.xml", false); - - model.addSubmodelConnection(new ModelSubmodelConnection(model2, SubmodelType.UNKNOWN, "BLA")); - - Collection<ColorSchema> schemas = new ArrayList<>(); - Model coloredModel = new CopyCommand(model).execute(); - new ColorModelCommand(coloredModel, schemas).execute(); - - Model coloredModel2 = coloredModel.getSubmodelConnections().iterator().next().getSubmodel().getModel(); - Model coloredModel3 = coloredModel.getSubmodelByConnectionName("BLA"); - - assertFalse(coloredModel2.getAliasByAliasId("sa2").getColor().equals(model2.getAliasByAliasId("sa2").getColor())); - assertFalse(coloredModel3.getAliasByAliasId("sa2").getColor().equals(model2.getAliasByAliasId("sa2").getColor())); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testColoredAliases() throws Exception { - try { - Model model = getModelForFile("testFiles/sample.xml", false); - Collection<ColorSchema> schemas = new ArrayList<>(); - ColorSchema schema = new GenericColorSchema(); - schema.setName("CNC"); - schema.setColor(Color.BLUE); - schemas.add(schema); - schema = new GenericColorSchema(); - schema.setName("BDH1"); - schema.setColor(Color.BLUE); - schemas.add(schema); - ColorModelCommand factory = new ColorModelCommand(model, schemas); - - Map<Object, ColorSchema> map = factory.getModifiedElements(); - assertEquals(2, map.size()); - for (Map.Entry<Object, ColorSchema> entry : map.entrySet()) { - assertTrue(entry.getKey() instanceof Alias); - } - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testColoredReactions() throws Exception { - try { - Model model = getModelForFile("testFiles/sample.xml", false); - Collection<ColorSchema> schemas = new ArrayList<>(); - ColorSchema schema = new GenericColorSchema(); - schema.setReactionIdentifier("re1"); - schema.setLineWidth(3.0); - schema.setColor(Color.BLUE); - schema.setName(""); - schema.setReverseReaction(true); - schemas.add(schema); - ColorModelCommand factory = new ColorModelCommand(model, schemas); - - Map<Object, ColorSchema> map = factory.getModifiedElements(); - assertEquals(0, map.size()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testColoredReactions2() throws Exception { - try { - Model model = getModelForFile("testFiles/sample.xml", false); - Collection<ColorSchema> schemas = new ArrayList<>(); - ColorSchema schema = new GenericColorSchema(); - schema.setReactionIdentifier("re1"); - schema.setLineWidth(3.0); - schema.setColor(Color.BLUE); - schema.setName(null); - schema.setReverseReaction(true); - schemas.add(schema); - ColorModelCommand factory = new ColorModelCommand(model, schemas); - - Map<Object, ColorSchema> map = factory.getModifiedElements(); - assertEquals(1, map.size()); - for (Map.Entry<Object, ColorSchema> entry : map.entrySet()) { - assertTrue(entry.getKey() instanceof Reaction); - assertEquals("re1", ((Reaction) entry.getKey()).getIdReaction()); - assertEquals(entry.getValue(), schema); - } - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testAliasMatchWithReactionId() throws Exception { - try { - GenericColorSchema colorSchema = new GenericColorSchema(); - colorSchema.setName(null); - colorSchema.setReactionIdentifier("1"); - - Alias alias = new SpeciesAlias(); - Protein protein = new GenericProtein(); - protein.setName("test"); - alias.setElement(protein); - - List<ColorSchema> schemas = new ArrayList<>(); - schemas.add(colorSchema); - - ColorModelCommand factory = new ColorModelCommand(new ModelFullIndexed(null), schemas); - - assertFalse(factory.match(alias, colorSchema)); - - colorSchema.setReactionIdentifier(null); - assertTrue(factory.match(alias, colorSchema)); - - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - - } - -} +package lcsb.mapviewer.commands; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.awt.Color; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import lcsb.mapviewer.common.Pair; +import lcsb.mapviewer.model.map.MiriamType; +import lcsb.mapviewer.model.map.layout.ColorSchema; +import lcsb.mapviewer.model.map.layout.GenericColorSchema; +import lcsb.mapviewer.model.map.layout.alias.Alias; +import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; +import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.model.map.model.ModelComparator; +import lcsb.mapviewer.model.map.model.ModelFullIndexed; +import lcsb.mapviewer.model.map.model.ModelSubmodelConnection; +import lcsb.mapviewer.model.map.model.SubmodelType; +import lcsb.mapviewer.model.map.reaction.Reaction; +import lcsb.mapviewer.model.map.species.GenericProtein; +import lcsb.mapviewer.model.map.species.Protein; + +public class ColorModelCommandTest extends CommandTestFunctions { + Logger logger = Logger.getLogger(ColorModelCommandTest.class); + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + /** + * Test if all elements were copied - if not hibernate will complain + * + * @throws Exception + * + */ + @Test + public void testColorFullModel() throws Exception { + ModelComparator comparator = new ModelComparator(); + try { + Model model = getModelForFile("testFiles/sample.xml", false); + Model model2 = getModelForFile("testFiles/sample.xml", false); + Model coloredModel = new CopyCommand(model).execute(); + + List<ColorSchema> schemas = new ArrayList<>(); + ColorSchema schema = new GenericColorSchema(); + schema.setName("CNC"); + schema.setValue(-1.0); + schemas.add(schema); + ColorModelCommand factory = new ColorModelCommand(coloredModel, schemas); + + assertFalse(Color.RED.equals(coloredModel.getAliasByAliasId("sa14").getColor())); + + factory.execute(); + + assertEquals(0, comparator.compare(model, model2)); + + assertFalse(comparator.compare(model, coloredModel) == 0); + + assertEquals(Color.RED, coloredModel.getAliasByAliasId("sa14").getColor()); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testColoring2() throws Exception { + try { + Model model = getModelForFile("testFiles/coloring_model.xml", true); + Collection<ColorSchema> schemas = new ArrayList<>(); + ColorSchema schema = new GenericColorSchema(); + schema.setGeneralIdentifier("HGNC:11138"); + schema.setValue(1.0); + schemas.add(schema); + schema = new GenericColorSchema(); + schema.setGeneralIdentifier("CHEBI:CHEBI:15377"); + schema.setValue(1.0); + schemas.add(schema); + schema = new GenericColorSchema(); + schema.setGeneralIdentifier("CHEBI:CHEBI:15376"); + schema.setValue(1.0); + schemas.add(schema); + + ColorModelCommand factory = new ColorModelCommand(model, schemas); + Collection<ColorSchema> missing = factory.getMissingSchema(); + + assertEquals(1, missing.size()); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testReactionColoring1() throws Exception { + try { + Model model = getModelForFile("testFiles/reactions_to_color.xml", false); + Reaction re4 = model.getReactionByReactionId("re4"); + Collection<ColorSchema> schemas = new ArrayList<ColorSchema>(); + + ColorModelCommand factory = new ColorModelCommand(model, schemas); + assertFalse(Color.BLACK.equals(re4.getNodes().get(0).getLine().getColor())); + + factory.execute(); + re4 = model.getReactionByReactionId("re4"); + + assertEquals(Color.BLACK, re4.getNodes().get(0).getLine().getColor()); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testReactionColoring2() throws Exception { + try { + Model model = getModelForFile("testFiles/reactions_to_color.xml", false); + Reaction re1 = model.getReactionByReactionId("re1"); + Collection<ColorSchema> schemas = new ArrayList<ColorSchema>(); + ColorSchema schema = new GenericColorSchema(); + schema.setReactionIdentifier("re1"); + schema.setColor(Color.RED); + schemas.add(schema); + + ColorModelCommand factory = new ColorModelCommand(model, schemas); + assertEquals(Color.BLACK, re1.getNodes().get(0).getLine().getColor()); + + factory.execute(); + re1 = model.getReactionByReactionId("re1"); + + assertEquals(Color.RED, re1.getNodes().get(0).getLine().getColor()); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testReactionColoring3() throws Exception { + try { + Model model = getModelForFile("testFiles/reactions_to_color.xml", false); + Reaction re2 = model.getReactionByReactionId("re2"); + Collection<ColorSchema> schemas = new ArrayList<ColorSchema>(); + ColorSchema schema = new GenericColorSchema(); + schema.setReactionIdentifier("re2"); + schema.setValue(-1.0); + schemas.add(schema); + + ColorModelCommand factory = new ColorModelCommand(model, schemas); + assertEquals(Color.BLACK, re2.getNodes().get(0).getLine().getColor()); + + factory.execute(); + re2 = model.getReactionByReactionId("re2"); + + assertEquals(Color.RED, re2.getNodes().get(0).getLine().getColor()); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testReactionColoring4() throws Exception { + try { + Model model = getModelForFile("testFiles/reactions_to_color.xml", false); + Reaction re3 = model.getReactionByReactionId("re3"); + Collection<ColorSchema> schemas = new ArrayList<ColorSchema>(); + ColorSchema schema = new GenericColorSchema(); + Pair<MiriamType, String> pair = new Pair<MiriamType, String>(MiriamType.PUBMED, "12345"); + List<Pair<MiriamType, String>> identifiers = new ArrayList<Pair<MiriamType, String>>(); + identifiers.add(pair); + + schema.setIdentifierColumns(identifiers); + schema.setValue(-1.0); + schemas.add(schema); + + ColorModelCommand factory = new ColorModelCommand(model, schemas); + + assertEquals(Color.BLACK, re3.getNodes().get(0).getLine().getColor()); + + factory.execute(); + re3 = model.getReactionByReactionId("re3"); + + assertEquals(Color.RED, re3.getNodes().get(0).getLine().getColor()); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testColoringComplexModel() throws Exception { + try { + Model model = getModelForFile("testFiles/sample.xml", false); + Model model2 = getModelForFile("testFiles/sample.xml", false); + + model.addSubmodelConnection(new ModelSubmodelConnection(model2, SubmodelType.UNKNOWN, "BLA")); + + Collection<ColorSchema> schemas = new ArrayList<>(); + Model coloredModel = new CopyCommand(model).execute(); + new ColorModelCommand(coloredModel, schemas).execute(); + + Model coloredModel2 = coloredModel.getSubmodelConnections().iterator().next().getSubmodel().getModel(); + Model coloredModel3 = coloredModel.getSubmodelByConnectionName("BLA"); + + assertFalse(coloredModel2.getAliasByAliasId("sa2").getColor().equals(model2.getAliasByAliasId("sa2").getColor())); + assertFalse(coloredModel3.getAliasByAliasId("sa2").getColor().equals(model2.getAliasByAliasId("sa2").getColor())); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testColoredAliases() throws Exception { + try { + Model model = getModelForFile("testFiles/sample.xml", false); + Collection<ColorSchema> schemas = new ArrayList<>(); + ColorSchema schema = new GenericColorSchema(); + schema.setName("CNC"); + schema.setColor(Color.BLUE); + schemas.add(schema); + schema = new GenericColorSchema(); + schema.setName("BDH1"); + schema.setColor(Color.BLUE); + schemas.add(schema); + ColorModelCommand factory = new ColorModelCommand(model, schemas); + + Map<Object, ColorSchema> map = factory.getModifiedElements(); + assertEquals(2, map.size()); + for (Map.Entry<Object, ColorSchema> entry : map.entrySet()) { + assertTrue(entry.getKey() instanceof Alias); + } + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testColoredReactions() throws Exception { + try { + Model model = getModelForFile("testFiles/sample.xml", false); + Collection<ColorSchema> schemas = new ArrayList<>(); + ColorSchema schema = new GenericColorSchema(); + schema.setReactionIdentifier("re1"); + schema.setLineWidth(3.0); + schema.setColor(Color.BLUE); + schema.setName(""); + schema.setReverseReaction(true); + schemas.add(schema); + ColorModelCommand factory = new ColorModelCommand(model, schemas); + + Map<Object, ColorSchema> map = factory.getModifiedElements(); + assertEquals(0, map.size()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testColoredReactions2() throws Exception { + try { + Model model = getModelForFile("testFiles/sample.xml", false); + Collection<ColorSchema> schemas = new ArrayList<>(); + ColorSchema schema = new GenericColorSchema(); + schema.setReactionIdentifier("re1"); + schema.setLineWidth(3.0); + schema.setColor(Color.BLUE); + schema.setName(null); + schema.setReverseReaction(true); + schemas.add(schema); + ColorModelCommand factory = new ColorModelCommand(model, schemas); + + Map<Object, ColorSchema> map = factory.getModifiedElements(); + assertEquals(1, map.size()); + for (Map.Entry<Object, ColorSchema> entry : map.entrySet()) { + assertTrue(entry.getKey() instanceof Reaction); + assertEquals("re1", ((Reaction) entry.getKey()).getIdReaction()); + assertEquals(entry.getValue(), schema); + } + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testAliasMatchWithReactionId() throws Exception { + try { + GenericColorSchema colorSchema = new GenericColorSchema(); + colorSchema.setName(null); + colorSchema.setReactionIdentifier("1"); + + Alias alias = new SpeciesAlias(); + Protein protein = new GenericProtein(); + protein.setName("test"); + alias.setElement(protein); + + List<ColorSchema> schemas = new ArrayList<>(); + schemas.add(colorSchema); + + ColorModelCommand factory = new ColorModelCommand(new ModelFullIndexed(null), schemas); + + assertFalse(factory.match(alias, colorSchema)); + + colorSchema.setReactionIdentifier(null); + assertTrue(factory.match(alias, colorSchema)); + + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + + } + +} diff --git a/model-command/src/test/java/lcsb/mapviewer/commands/CommandTestFunctions.java b/model-command/src/test/java/lcsb/mapviewer/commands/CommandTestFunctions.java index 3ceabb3643..ebbeaf037e 100644 --- a/model-command/src/test/java/lcsb/mapviewer/commands/CommandTestFunctions.java +++ b/model-command/src/test/java/lcsb/mapviewer/commands/CommandTestFunctions.java @@ -1,84 +1,84 @@ -package lcsb.mapviewer.commands; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import lcsb.mapviewer.converter.ConverterParams; -import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; -import lcsb.mapviewer.model.map.agregator.Compartment; -import lcsb.mapviewer.model.map.layout.alias.ComplexAlias; -import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; -import lcsb.mapviewer.model.map.model.Model; -import lcsb.mapviewer.model.map.model.ModelFullIndexed; -import lcsb.mapviewer.model.map.species.ComplexSpecies; -import lcsb.mapviewer.model.map.species.Protein; - -import org.apache.log4j.Logger; - -public abstract class CommandTestFunctions { - public double EPSILON = 1e-6; - - Logger logger = Logger.getLogger(CommandTestFunctions.class); - - private static Map<String, Model> models = new HashMap<String, Model>(); - - protected Model getModelForFile(String fileName, boolean fromCache) throws Exception { - if (!fromCache) { - logger.debug("File without cache: " + fileName); - Model result = new CellDesignerXmlParser().createModel(new ConverterParams().filename(fileName)); - result.setName(null); - return result; - } - Model result = models.get(fileName); - if (result == null) { - logger.debug("File to cache: " + fileName); - - CellDesignerXmlParser parser = new CellDesignerXmlParser(); - result = parser.createModel(new ConverterParams().filename(fileName).sizeAutoAdjust(false)); - result.setName(null); - models.put(fileName, result); - } - return result; - } - - protected Model createSimpleModel() { - Model model = new ModelFullIndexed(null); - Compartment compartment = new Compartment(); - model.addCompartment(compartment); - - ComplexSpecies complex = new ComplexSpecies(); - complex.setElementId("complex_id"); - - Protein protein = new Protein(); - protein.setNotes(null); - protein.setParent(compartment); - protein.setElementId("species_id"); - List<String> list = new ArrayList<>(); - list.add("synonym"); - protein.addSynonyms(list); - List<String> list2 = new ArrayList<>(); - list2.add("f_symbol"); - protein.setFormerSymbols(list2); - complex.addElement(protein); - - model.addElement(protein); - model.addElement(complex); - - ComplexAlias complexAlias = new ComplexAlias(); - complexAlias.setAliasId("complex_alias_id"); - complexAlias.setSpecies(complex); - model.addAlias(complexAlias); - - SpeciesAlias alias = new SpeciesAlias(); - alias.setAliasId("alias_id"); - alias.setSpecies(protein); - complexAlias.addAlias(alias); - - model.addAlias(alias); - - return model; - } - -} +package lcsb.mapviewer.commands; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import lcsb.mapviewer.converter.ConverterParams; +import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; +import lcsb.mapviewer.model.map.agregator.Compartment; +import lcsb.mapviewer.model.map.layout.alias.ComplexAlias; +import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; +import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.model.map.model.ModelFullIndexed; +import lcsb.mapviewer.model.map.species.ComplexSpecies; +import lcsb.mapviewer.model.map.species.Protein; + +import org.apache.log4j.Logger; + +public abstract class CommandTestFunctions { + public double EPSILON = 1e-6; + + Logger logger = Logger.getLogger(CommandTestFunctions.class); + + private static Map<String, Model> models = new HashMap<String, Model>(); + + protected Model getModelForFile(String fileName, boolean fromCache) throws Exception { + if (!fromCache) { + logger.debug("File without cache: " + fileName); + Model result = new CellDesignerXmlParser().createModel(new ConverterParams().filename(fileName)); + result.setName(null); + return result; + } + Model result = models.get(fileName); + if (result == null) { + logger.debug("File to cache: " + fileName); + + CellDesignerXmlParser parser = new CellDesignerXmlParser(); + result = parser.createModel(new ConverterParams().filename(fileName).sizeAutoAdjust(false)); + result.setName(null); + models.put(fileName, result); + } + return result; + } + + protected Model createSimpleModel() { + Model model = new ModelFullIndexed(null); + Compartment compartment = new Compartment(); + model.addCompartment(compartment); + + ComplexSpecies complex = new ComplexSpecies(); + complex.setElementId("complex_id"); + + Protein protein = new Protein(); + protein.setNotes(null); + protein.setParent(compartment); + protein.setElementId("species_id"); + List<String> list = new ArrayList<>(); + list.add("synonym"); + protein.addSynonyms(list); + List<String> list2 = new ArrayList<>(); + list2.add("f_symbol"); + protein.setFormerSymbols(list2); + complex.addElement(protein); + + model.addElement(protein); + model.addElement(complex); + + ComplexAlias complexAlias = new ComplexAlias(); + complexAlias.setAliasId("complex_alias_id"); + complexAlias.setSpecies(complex); + model.addAlias(complexAlias); + + SpeciesAlias alias = new SpeciesAlias(); + alias.setAliasId("alias_id"); + alias.setSpecies(protein); + complexAlias.addAlias(alias); + + model.addAlias(alias); + + return model; + } + +} diff --git a/model-command/src/test/java/lcsb/mapviewer/commands/CopyCommandTest.java b/model-command/src/test/java/lcsb/mapviewer/commands/CopyCommandTest.java index aef0f6d491..032b83c900 100644 --- a/model-command/src/test/java/lcsb/mapviewer/commands/CopyCommandTest.java +++ b/model-command/src/test/java/lcsb/mapviewer/commands/CopyCommandTest.java @@ -1,344 +1,344 @@ -package lcsb.mapviewer.commands; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.nio.charset.StandardCharsets; - -import lcsb.mapviewer.common.exception.InvalidArgumentException; -import lcsb.mapviewer.converter.ConverterParams; -import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; -import lcsb.mapviewer.model.map.OverviewImage; -import lcsb.mapviewer.model.map.OverviewModelLink; -import lcsb.mapviewer.model.map.agregator.Compartment; -import lcsb.mapviewer.model.map.layout.alias.Alias; -import lcsb.mapviewer.model.map.layout.alias.ComplexAlias; -import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; -import lcsb.mapviewer.model.map.layout.graphics.Layer; -import lcsb.mapviewer.model.map.model.AliasSubmodelConnection; -import lcsb.mapviewer.model.map.model.Model; -import lcsb.mapviewer.model.map.model.ModelComparator; -import lcsb.mapviewer.model.map.model.ModelFullIndexed; -import lcsb.mapviewer.model.map.model.ModelSubmodelConnection; -import lcsb.mapviewer.model.map.model.SubmodelType; -import lcsb.mapviewer.model.map.reaction.Reaction; -import lcsb.mapviewer.model.map.species.ComplexSpecies; -import lcsb.mapviewer.model.map.species.Protein; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -public class CopyCommandTest extends CommandTestFunctions { - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testCopyModel() { - try { - Model model = getModelForFile("testFiles/sample.xml", false); - Model copy = new CopyCommand(model).execute(); - - ModelComparator comparator = new ModelComparator(); - - assertEquals(0, comparator.compare(model, copy)); - } catch (Exception e) { - e.printStackTrace(); - fail("exception occurred"); - } - } - - @Test - public void testCopyCustomModel() { - try { - Model model = new ModelFullIndexed(null); - Compartment compartment = new Compartment(); - model.addCompartment(compartment); - - Protein protein = new Protein(); - protein.setNotes(null); - protein.setParent(compartment); - protein.setElementId("A"); - - model.addElement(protein); - - Model copy = new CopyCommand(model).execute(); - - ModelComparator comparator = new ModelComparator(); - - assertEquals(0, comparator.compare(model, copy)); - } catch (Exception e) { - e.printStackTrace(); - fail("exception occurred"); - } - } - - @Test - public void testCopyCustomModel2() { - try { - Model model = new ModelFullIndexed(null); - Compartment compartment = new Compartment(); - model.addCompartment(compartment); - - ComplexSpecies complex = new ComplexSpecies(); - complex.setElementId("id"); - - Protein protein = new Protein(); - protein.setNotes(null); - protein.setParent(compartment); - protein.setElementId("A"); - complex.addElement(protein); - - model.addElement(protein); - model.addElement(complex); - - ComplexAlias complexAlias = new ComplexAlias(); - complexAlias.setAliasId("id2"); - complexAlias.setSpecies(complex); - model.addAlias(complexAlias); - - SpeciesAlias alias = new SpeciesAlias(); - alias.setAliasId("B"); - alias.setSpecies(protein); - complexAlias.addAlias(alias); - - model.addAlias(alias); - - Model copy = new CopyCommand(model).execute(); - - ModelComparator comparator = new ModelComparator(); - - assertEquals(0, comparator.compare(model, copy)); - - } catch (Exception e) { - e.printStackTrace(); - fail("exception occurred"); - } - } - - @Test - public void testCopyModel3() throws Exception { - try { - Model model = getModelForFile("testFiles/complex_with_state.xml", true); - - Model copy = new CopyCommand(model).execute(); - - CellDesignerXmlParser parser = new CellDesignerXmlParser(); - String xml = parser.toXml(copy); - - InputStream stream = new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8)); - Model copy2 = parser.createModel(new ConverterParams().inputStream(stream).sizeAutoAdjust(false)); - ModelComparator comparator = new ModelComparator(); - - // check if after conversion to xml everything works - assertEquals(0, comparator.compare(copy, copy2)); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testCopyModel4() throws Exception { - try { - Model model = getModelForFile("testFiles/problematic_description.xml", true); - - Model copy = new CopyCommand(model).execute(); - - CellDesignerXmlParser parser = new CellDesignerXmlParser(); - String xml = parser.toXml(copy); - - InputStream stream = new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8)); - Model copy2 = parser.createModel(new ConverterParams().inputStream(stream).sizeAutoAdjust(false)); - ModelComparator comparator = new ModelComparator(); - - // check if after conversion to xml everything works - assertEquals(0, comparator.compare(copy, copy2)); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testCopyModelWithArtifitialAliases() throws Exception { - try { - Model model = getModelForFile("testFiles/artifitial_compartments.xml", false); - logger.debug(model.getName()); - new CreateHierarchyCommand(model, 2, 2).execute(); - - Model copy = new CopyCommand(model).execute(); - - CellDesignerXmlParser parser = new CellDesignerXmlParser(); - String xml = parser.toXml(copy); - - InputStream stream = new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8)); - Model copy2 = parser.createModel(new ConverterParams().inputStream(stream).sizeAutoAdjust(false)); - ModelComparator comparator = new ModelComparator(); - - new CreateHierarchyCommand(copy2, 2, 2).execute(); - - // check if after conversion to xml everything works - assertEquals(0, comparator.compare(copy, copy2)); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testCopyModelWithSubmodels() throws Exception { - try { - Model model = getModel(); - Model model2 = getModel(); - model2.setNotes("ASDSA"); - model.addSubmodelConnection(new ModelSubmodelConnection(model2, SubmodelType.DOWNSTREAM_TARGETS)); - Model copy = new CopyCommand(model).execute(); - - ModelComparator comparator = new ModelComparator(); - - assertEquals(0, comparator.compare(model, copy)); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testCopySubmodel() throws Exception { - try { - Model model = getModel(); - Model model2 = getModel(); - model2.setNotes("ASDSA"); - model.addSubmodelConnection(new ModelSubmodelConnection(model2, SubmodelType.DOWNSTREAM_TARGETS, "name a")); - - Model model3 = getModel(); - model3.setNotes("ASDSA"); - model.addSubmodelConnection(new ModelSubmodelConnection(model3, SubmodelType.DOWNSTREAM_TARGETS, "name b")); - Alias alias = model2.getAliasByAliasId("a_id"); - alias.setSubmodel(new AliasSubmodelConnection(model3, SubmodelType.DOWNSTREAM_TARGETS, "name c")); - Model copy = new CopyCommand(model2).execute(); - - ModelComparator comparator = new ModelComparator(); - - assertEquals(0, comparator.compare(model2, copy)); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testCopyModelWithSubmodels2() throws Exception { - try { - Model model = getModel(); - Model model2 = getModel(); - model2.setNotes("ASDSA2"); - - model.addSubmodelConnection(new ModelSubmodelConnection(model2, SubmodelType.DOWNSTREAM_TARGETS)); - model.getAliasByAliasId("a_id").setSubmodel(new AliasSubmodelConnection(model2, SubmodelType.DOWNSTREAM_TARGETS)); - Model copy = new CopyCommand(model).execute(); - - ModelComparator comparator = new ModelComparator(); - - assertEquals(0, comparator.compare(model, copy)); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - - @Test - public void testCopyModelWithName() throws Exception { - try { - Model model = getModel(); - model.setName("ASDSA2"); - - Model copy = new CopyCommand(model).execute(); - - ModelComparator comparator = new ModelComparator(); - - assertEquals(0, comparator.compare(model, copy)); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testCopyModelWithSubmodelsThrowException() throws Exception { - try { - Model model = getModel(); - Model model2 = getModel(); - model2.setNotes("ASDSA2"); - - model.getAliasByAliasId("a_id").setSubmodel(new AliasSubmodelConnection(model2, SubmodelType.DOWNSTREAM_TARGETS)); - try { - new CopyCommand(model).execute(); - fail("Exception expected"); - } catch (InvalidArgumentException e) { - } - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - private Model getModel() { - Model model = new ModelFullIndexed(null); - model.setNotes("Some description"); - Protein protein = new Protein(); - protein.setName("ad"); - protein.setElementId("A"); - model.addElement(protein); - - SpeciesAlias alias = new SpeciesAlias(protein); - alias.setAliasId("a_id"); - model.addAlias(alias); - - Compartment compartment = new Compartment("default"); - model.addCompartment(compartment); - - Layer layer = new Layer(); - layer.setName("layer name"); - model.addLayer(layer); - - model.addReaction(new Reaction()); - return model; - } - - @Test - public void testCopyModelWithImages() throws Exception { - try { - Model model = getModelForFile("testFiles/sample.xml", false); - OverviewImage oi = new OverviewImage(); - OverviewModelLink oml = new OverviewModelLink(); - oml.setLinkedModel(model); - oml.setPolygon("1,2"); - oi.addLink(oml); - model.addOverviewImage(oi); - Model copy = new CopyCommand(model).execute(); - - ModelComparator comparator = new ModelComparator(); - - assertEquals(0, comparator.compare(model, copy)); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - -} +package lcsb.mapviewer.commands; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.fail; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; + +import lcsb.mapviewer.common.exception.InvalidArgumentException; +import lcsb.mapviewer.converter.ConverterParams; +import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; +import lcsb.mapviewer.model.map.OverviewImage; +import lcsb.mapviewer.model.map.OverviewModelLink; +import lcsb.mapviewer.model.map.agregator.Compartment; +import lcsb.mapviewer.model.map.layout.alias.Alias; +import lcsb.mapviewer.model.map.layout.alias.ComplexAlias; +import lcsb.mapviewer.model.map.layout.alias.SpeciesAlias; +import lcsb.mapviewer.model.map.layout.graphics.Layer; +import lcsb.mapviewer.model.map.model.AliasSubmodelConnection; +import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.model.map.model.ModelComparator; +import lcsb.mapviewer.model.map.model.ModelFullIndexed; +import lcsb.mapviewer.model.map.model.ModelSubmodelConnection; +import lcsb.mapviewer.model.map.model.SubmodelType; +import lcsb.mapviewer.model.map.reaction.Reaction; +import lcsb.mapviewer.model.map.species.ComplexSpecies; +import lcsb.mapviewer.model.map.species.Protein; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class CopyCommandTest extends CommandTestFunctions { + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testCopyModel() { + try { + Model model = getModelForFile("testFiles/sample.xml", false); + Model copy = new CopyCommand(model).execute(); + + ModelComparator comparator = new ModelComparator(); + + assertEquals(0, comparator.compare(model, copy)); + } catch (Exception e) { + e.printStackTrace(); + fail("exception occurred"); + } + } + + @Test + public void testCopyCustomModel() { + try { + Model model = new ModelFullIndexed(null); + Compartment compartment = new Compartment(); + model.addCompartment(compartment); + + Protein protein = new Protein(); + protein.setNotes(null); + protein.setParent(compartment); + protein.setElementId("A"); + + model.addElement(protein); + + Model copy = new CopyCommand(model).execute(); + + ModelComparator comparator = new ModelComparator(); + + assertEquals(0, comparator.compare(model, copy)); + } catch (Exception e) { + e.printStackTrace(); + fail("exception occurred"); + } + } + + @Test + public void testCopyCustomModel2() { + try { + Model model = new ModelFullIndexed(null); + Compartment compartment = new Compartment(); + model.addCompartment(compartment); + + ComplexSpecies complex = new ComplexSpecies(); + complex.setElementId("id"); + + Protein protein = new Protein(); + protein.setNotes(null); + protein.setParent(compartment); + protein.setElementId("A"); + complex.addElement(protein); + + model.addElement(protein); + model.addElement(complex); + + ComplexAlias complexAlias = new ComplexAlias(); + complexAlias.setAliasId("id2"); + complexAlias.setSpecies(complex); + model.addAlias(complexAlias); + + SpeciesAlias alias = new SpeciesAlias(); + alias.setAliasId("B"); + alias.setSpecies(protein); + complexAlias.addAlias(alias); + + model.addAlias(alias); + + Model copy = new CopyCommand(model).execute(); + + ModelComparator comparator = new ModelComparator(); + + assertEquals(0, comparator.compare(model, copy)); + + } catch (Exception e) { + e.printStackTrace(); + fail("exception occurred"); + } + } + + @Test + public void testCopyModel3() throws Exception { + try { + Model model = getModelForFile("testFiles/complex_with_state.xml", true); + + Model copy = new CopyCommand(model).execute(); + + CellDesignerXmlParser parser = new CellDesignerXmlParser(); + String xml = parser.toXml(copy); + + InputStream stream = new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8)); + Model copy2 = parser.createModel(new ConverterParams().inputStream(stream).sizeAutoAdjust(false)); + ModelComparator comparator = new ModelComparator(); + + // check if after conversion to xml everything works + assertEquals(0, comparator.compare(copy, copy2)); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testCopyModel4() throws Exception { + try { + Model model = getModelForFile("testFiles/problematic_description.xml", true); + + Model copy = new CopyCommand(model).execute(); + + CellDesignerXmlParser parser = new CellDesignerXmlParser(); + String xml = parser.toXml(copy); + + InputStream stream = new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8)); + Model copy2 = parser.createModel(new ConverterParams().inputStream(stream).sizeAutoAdjust(false)); + ModelComparator comparator = new ModelComparator(); + + // check if after conversion to xml everything works + assertEquals(0, comparator.compare(copy, copy2)); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testCopyModelWithArtifitialAliases() throws Exception { + try { + Model model = getModelForFile("testFiles/artifitial_compartments.xml", false); + logger.debug(model.getName()); + new CreateHierarchyCommand(model, 2, 2).execute(); + + Model copy = new CopyCommand(model).execute(); + + CellDesignerXmlParser parser = new CellDesignerXmlParser(); + String xml = parser.toXml(copy); + + InputStream stream = new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8)); + Model copy2 = parser.createModel(new ConverterParams().inputStream(stream).sizeAutoAdjust(false)); + ModelComparator comparator = new ModelComparator(); + + new CreateHierarchyCommand(copy2, 2, 2).execute(); + + // check if after conversion to xml everything works + assertEquals(0, comparator.compare(copy, copy2)); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testCopyModelWithSubmodels() throws Exception { + try { + Model model = getModel(); + Model model2 = getModel(); + model2.setNotes("ASDSA"); + model.addSubmodelConnection(new ModelSubmodelConnection(model2, SubmodelType.DOWNSTREAM_TARGETS)); + Model copy = new CopyCommand(model).execute(); + + ModelComparator comparator = new ModelComparator(); + + assertEquals(0, comparator.compare(model, copy)); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testCopySubmodel() throws Exception { + try { + Model model = getModel(); + Model model2 = getModel(); + model2.setNotes("ASDSA"); + model.addSubmodelConnection(new ModelSubmodelConnection(model2, SubmodelType.DOWNSTREAM_TARGETS, "name a")); + + Model model3 = getModel(); + model3.setNotes("ASDSA"); + model.addSubmodelConnection(new ModelSubmodelConnection(model3, SubmodelType.DOWNSTREAM_TARGETS, "name b")); + Alias alias = model2.getAliasByAliasId("a_id"); + alias.setSubmodel(new AliasSubmodelConnection(model3, SubmodelType.DOWNSTREAM_TARGETS, "name c")); + Model copy = new CopyCommand(model2).execute(); + + ModelComparator comparator = new ModelComparator(); + + assertEquals(0, comparator.compare(model2, copy)); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testCopyModelWithSubmodels2() throws Exception { + try { + Model model = getModel(); + Model model2 = getModel(); + model2.setNotes("ASDSA2"); + + model.addSubmodelConnection(new ModelSubmodelConnection(model2, SubmodelType.DOWNSTREAM_TARGETS)); + model.getAliasByAliasId("a_id").setSubmodel(new AliasSubmodelConnection(model2, SubmodelType.DOWNSTREAM_TARGETS)); + Model copy = new CopyCommand(model).execute(); + + ModelComparator comparator = new ModelComparator(); + + assertEquals(0, comparator.compare(model, copy)); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + + @Test + public void testCopyModelWithName() throws Exception { + try { + Model model = getModel(); + model.setName("ASDSA2"); + + Model copy = new CopyCommand(model).execute(); + + ModelComparator comparator = new ModelComparator(); + + assertEquals(0, comparator.compare(model, copy)); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testCopyModelWithSubmodelsThrowException() throws Exception { + try { + Model model = getModel(); + Model model2 = getModel(); + model2.setNotes("ASDSA2"); + + model.getAliasByAliasId("a_id").setSubmodel(new AliasSubmodelConnection(model2, SubmodelType.DOWNSTREAM_TARGETS)); + try { + new CopyCommand(model).execute(); + fail("Exception expected"); + } catch (InvalidArgumentException e) { + } + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + private Model getModel() { + Model model = new ModelFullIndexed(null); + model.setNotes("Some description"); + Protein protein = new Protein(); + protein.setName("ad"); + protein.setElementId("A"); + model.addElement(protein); + + SpeciesAlias alias = new SpeciesAlias(protein); + alias.setAliasId("a_id"); + model.addAlias(alias); + + Compartment compartment = new Compartment("default"); + model.addCompartment(compartment); + + Layer layer = new Layer(); + layer.setName("layer name"); + model.addLayer(layer); + + model.addReaction(new Reaction()); + return model; + } + + @Test + public void testCopyModelWithImages() throws Exception { + try { + Model model = getModelForFile("testFiles/sample.xml", false); + OverviewImage oi = new OverviewImage(); + OverviewModelLink oml = new OverviewModelLink(); + oml.setLinkedModel(model); + oml.setPolygon("1,2"); + oi.addLink(oml); + model.addOverviewImage(oi); + Model copy = new CopyCommand(model).execute(); + + ModelComparator comparator = new ModelComparator(); + + assertEquals(0, comparator.compare(model, copy)); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + +} diff --git a/model-command/src/test/java/lcsb/mapviewer/commands/CreateHierarchyCommandTest.java b/model-command/src/test/java/lcsb/mapviewer/commands/CreateHierarchyCommandTest.java index f4f23f6a5c..4669b97eff 100644 --- a/model-command/src/test/java/lcsb/mapviewer/commands/CreateHierarchyCommandTest.java +++ b/model-command/src/test/java/lcsb/mapviewer/commands/CreateHierarchyCommandTest.java @@ -1,285 +1,285 @@ -package lcsb.mapviewer.commands; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.nio.charset.StandardCharsets; -import java.util.HashSet; -import java.util.Set; - -import lcsb.mapviewer.common.exception.InvalidStateException; -import lcsb.mapviewer.converter.ConverterParams; -import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; -import lcsb.mapviewer.model.map.layout.alias.Alias; -import lcsb.mapviewer.model.map.layout.alias.ArtifitialCompartmentAlias; -import lcsb.mapviewer.model.map.layout.alias.CompartmentAlias; -import lcsb.mapviewer.model.map.layout.alias.ComplexAlias; -import lcsb.mapviewer.model.map.model.Model; - -import org.apache.log4j.Logger; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -public class CreateHierarchyCommandTest extends CommandTestFunctions { - Logger logger = Logger.getLogger(CreateHierarchyCommandTest.class); - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testCyclicComplexes() throws Exception { - try { - Model model = getModelForFile("testFiles/cyclic_hierarchy_problem.xml", false); - - new CreateHierarchyCommand(model, 8, 80).execute(); - - Alias alias = model.getAliasByAliasId("sa5033"); - - Set<Alias> parents = new HashSet<Alias>(); - while (alias.getParent() instanceof ComplexAlias) { - assertFalse("Cyclic nesting", parents.contains(alias.getParent())); - alias = alias.getParent(); - parents.add(alias); - } - - Set<Integer> levels = new HashSet<Integer>(); - for (Alias a : model.getAliases()) { - levels.add(a.getVisibilityLevel()); - } - assertTrue(levels.size() > 2); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testCreateHierachy() throws Exception { - try { - Model model = getModelForFile("testFiles/artifitial_compartments.xml", false); - - new CreateHierarchyCommand(model, 2, 2).execute(); - // check if second call will throw an exception... - new CreateHierarchyCommand(model, 2, 2).execute(); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testCreateHierachy2() throws Exception { - try { - Model model = getModelForFile("testFiles/artifitial_compartments.xml", false); - - new CreateHierarchyCommand(model, 2, 2).execute(); - - boolean artifitial = false; - for (CompartmentAlias a : model.getCompartmentsAliases()) { - if (a instanceof ArtifitialCompartmentAlias) { - artifitial = true; - assertNotNull(a.getCompartment()); - } - } - assertTrue("No hierarchical structure element found", artifitial); - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testRecreateHierachy() throws Exception { - try { - Model model = getModelForFile("testFiles/artifitial_compartments.xml", false); - - int size0 = model.getCompartments().size(); - int aliasSize0 = model.getCompartmentsAliases().size(); - - new CreateHierarchyCommand(model, 2, 2).execute(); - - int size = model.getCompartments().size(); - int aliasSize = model.getCompartmentsAliases().size(); - - assertTrue(size0 != size); - assertTrue(aliasSize0 != aliasSize); - new CreateHierarchyCommand(model, 2, 2).execute(); - - int size2 = model.getCompartments().size(); - int aliasSize2 = model.getCompartmentsAliases().size(); - - assertEquals(size, size2); - assertEquals(aliasSize, aliasSize2); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testCreateComponentsMinVisibility() throws Exception { - try { - double zoomFactor = 39.0625; - int levels = 6; - - Model model = getModelForFile("testFiles/other_full/GSTP1 subnetwork_220214.xml", false); - - new CreateHierarchyCommand(model, levels, zoomFactor).execute(); - - for (Alias alias : model.getAliases()) { - if (alias.getParent() == null) { - assertTrue("Alias " + alias.getAliasId() + " is not visible at levels highers than " + alias.getVisibilityLevel(), alias.getVisibilityLevel() <= 1); - } - } - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testCreateComponentsMaxVisibility() throws Exception { - try { - double zoomFactor = 39.0625; - int levels = 6; - - Model model = getModelForFile("testFiles/other_full/GSTP1 subnetwork_220214.xml", false); - - new CreateHierarchyCommand(model, levels, zoomFactor).execute(); - - for (Alias alias : model.getAliases()) { - assertTrue( - "Alias " + alias.getAliasId() + " is not visible even at the bottom level (visibility: " + alias.getVisibilityLevel() + ") ", - alias.getVisibilityLevel() <= levels); - } - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testCompactComplexesInNestedView() throws Exception { - Model model; - try { - model = getModelForFile("testFiles/problematic/compact_complex_view_problem.xml", false); - Alias alias = model.getAliasByAliasId("sa1"); - Object parent1 = alias.getParent(); - new CreateHierarchyCommand(model, 3, 16).execute(); - Object parent2 = alias.getParent(); - assertEquals(parent1, parent2); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testRecallHierachyCreation() throws Exception { - try { - Model model = getModelForFile("testFiles/artifitial_compartments.xml", false); - - CreateHierarchyCommand command = new CreateHierarchyCommand(model, 2, 2); - command.execute(); - try { - command.execute(); - fail("Exception expected"); - } catch (InvalidStateException e) { - - } - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testClear() throws Exception { - try { - Model model = getModelForFile("testFiles/artifitial_compartments.xml", false); - - CreateHierarchyCommand command = new CreateHierarchyCommand(model, 2, 2); - command.clean(); - for (Alias alias : model.getAliases()) { - assertNull(alias.getParent()); - if (alias instanceof ComplexAlias) { - assertTrue(((ComplexAlias) alias).getAliases().isEmpty()); - } - } - for (CompartmentAlias alias : model.getCompartmentsAliases()) { - assertNull(alias.getParent()); - assertTrue(alias.getAliases().isEmpty()); - } - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testNestedProblem() throws Exception { - try { - CellDesignerXmlParser parser = new CellDesignerXmlParser(); - Model model = parser.createModel(new ConverterParams().filename("testFiles/nested_test.xml").sizeAutoAdjust(true)); - - double zoomFactor = Math.max(model.getHeight(), model.getWidth()) / (256); - int zoomLevels = (int) Math.ceil(Math.log(zoomFactor) / Math.log(2)); - - CreateHierarchyCommand command = new CreateHierarchyCommand(model, zoomLevels, zoomFactor); - command.execute(); - - for (Alias alias : model.getAliases()) { - Alias parentAlias = alias.getParent(); - if (parentAlias != null) { - assertTrue(alias.getVisibilityLevel() >= parentAlias.getVisibilityLevel()); - } - } - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testDisconnectedChildInComplex() throws Exception { - try { - Model model = getModelForFile("testFiles/problematic/disconnected_child_in_complex.xml", false); - - new CreateHierarchyCommand(model, 8, 80).execute(); - - CellDesignerXmlParser parser = new CellDesignerXmlParser(); - String xmlString = parser.toXml(model); - // logger.debug(xmlString); - - InputStream stream = new ByteArrayInputStream(xmlString.getBytes(StandardCharsets.UTF_8)); - - parser.createModel(new ConverterParams().inputStream(stream)); - - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - - -} +package lcsb.mapviewer.commands; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; +import java.util.HashSet; +import java.util.Set; + +import lcsb.mapviewer.common.exception.InvalidStateException; +import lcsb.mapviewer.converter.ConverterParams; +import lcsb.mapviewer.converter.model.celldesigner.CellDesignerXmlParser; +import lcsb.mapviewer.model.map.layout.alias.Alias; +import lcsb.mapviewer.model.map.layout.alias.ArtifitialCompartmentAlias; +import lcsb.mapviewer.model.map.layout.alias.CompartmentAlias; +import lcsb.mapviewer.model.map.layout.alias.ComplexAlias; +import lcsb.mapviewer.model.map.model.Model; + +import org.apache.log4j.Logger; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class CreateHierarchyCommandTest extends CommandTestFunctions { + Logger logger = Logger.getLogger(CreateHierarchyCommandTest.class); + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testCyclicComplexes() throws Exception { + try { + Model model = getModelForFile("testFiles/cyclic_hierarchy_problem.xml", false); + + new CreateHierarchyCommand(model, 8, 80).execute(); + + Alias alias = model.getAliasByAliasId("sa5033"); + + Set<Alias> parents = new HashSet<Alias>(); + while (alias.getParent() instanceof ComplexAlias) { + assertFalse("Cyclic nesting", parents.contains(alias.getParent())); + alias = alias.getParent(); + parents.add(alias); + } + + Set<Integer> levels = new HashSet<Integer>(); + for (Alias a : model.getAliases()) { + levels.add(a.getVisibilityLevel()); + } + assertTrue(levels.size() > 2); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testCreateHierachy() throws Exception { + try { + Model model = getModelForFile("testFiles/artifitial_compartments.xml", false); + + new CreateHierarchyCommand(model, 2, 2).execute(); + // check if second call will throw an exception... + new CreateHierarchyCommand(model, 2, 2).execute(); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testCreateHierachy2() throws Exception { + try { + Model model = getModelForFile("testFiles/artifitial_compartments.xml", false); + + new CreateHierarchyCommand(model, 2, 2).execute(); + + boolean artifitial = false; + for (CompartmentAlias a : model.getCompartmentsAliases()) { + if (a instanceof ArtifitialCompartmentAlias) { + artifitial = true; + assertNotNull(a.getCompartment()); + } + } + assertTrue("No hierarchical structure element found", artifitial); + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testRecreateHierachy() throws Exception { + try { + Model model = getModelForFile("testFiles/artifitial_compartments.xml", false); + + int size0 = model.getCompartments().size(); + int aliasSize0 = model.getCompartmentsAliases().size(); + + new CreateHierarchyCommand(model, 2, 2).execute(); + + int size = model.getCompartments().size(); + int aliasSize = model.getCompartmentsAliases().size(); + + assertTrue(size0 != size); + assertTrue(aliasSize0 != aliasSize); + new CreateHierarchyCommand(model, 2, 2).execute(); + + int size2 = model.getCompartments().size(); + int aliasSize2 = model.getCompartmentsAliases().size(); + + assertEquals(size, size2); + assertEquals(aliasSize, aliasSize2); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testCreateComponentsMinVisibility() throws Exception { + try { + double zoomFactor = 39.0625; + int levels = 6; + + Model model = getModelForFile("testFiles/other_full/GSTP1 subnetwork_220214.xml", false); + + new CreateHierarchyCommand(model, levels, zoomFactor).execute(); + + for (Alias alias : model.getAliases()) { + if (alias.getParent() == null) { + assertTrue("Alias " + alias.getAliasId() + " is not visible at levels highers than " + alias.getVisibilityLevel(), alias.getVisibilityLevel() <= 1); + } + } + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testCreateComponentsMaxVisibility() throws Exception { + try { + double zoomFactor = 39.0625; + int levels = 6; + + Model model = getModelForFile("testFiles/other_full/GSTP1 subnetwork_220214.xml", false); + + new CreateHierarchyCommand(model, levels, zoomFactor).execute(); + + for (Alias alias : model.getAliases()) { + assertTrue( + "Alias " + alias.getAliasId() + " is not visible even at the bottom level (visibility: " + alias.getVisibilityLevel() + ") ", + alias.getVisibilityLevel() <= levels); + } + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testCompactComplexesInNestedView() throws Exception { + Model model; + try { + model = getModelForFile("testFiles/problematic/compact_complex_view_problem.xml", false); + Alias alias = model.getAliasByAliasId("sa1"); + Object parent1 = alias.getParent(); + new CreateHierarchyCommand(model, 3, 16).execute(); + Object parent2 = alias.getParent(); + assertEquals(parent1, parent2); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testRecallHierachyCreation() throws Exception { + try { + Model model = getModelForFile("testFiles/artifitial_compartments.xml", false); + + CreateHierarchyCommand command = new CreateHierarchyCommand(model, 2, 2); + command.execute(); + try { + command.execute(); + fail("Exception expected"); + } catch (InvalidStateException e) { + + } + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testClear() throws Exception { + try { + Model model = getModelForFile("testFiles/artifitial_compartments.xml", false); + + CreateHierarchyCommand command = new CreateHierarchyCommand(model, 2, 2); + command.clean(); + for (Alias alias : model.getAliases()) { + assertNull(alias.getParent()); + if (alias instanceof ComplexAlias) { + assertTrue(((ComplexAlias) alias).getAliases().isEmpty()); + } + } + for (CompartmentAlias alias : model.getCompartmentsAliases()) { + assertNull(alias.getParent()); + assertTrue(alias.getAliases().isEmpty()); + } + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testNestedProblem() throws Exception { + try { + CellDesignerXmlParser parser = new CellDesignerXmlParser(); + Model model = parser.createModel(new ConverterParams().filename("testFiles/nested_test.xml").sizeAutoAdjust(true)); + + double zoomFactor = Math.max(model.getHeight(), model.getWidth()) / (256); + int zoomLevels = (int) Math.ceil(Math.log(zoomFactor) / Math.log(2)); + + CreateHierarchyCommand command = new CreateHierarchyCommand(model, zoomLevels, zoomFactor); + command.execute(); + + for (Alias alias : model.getAliases()) { + Alias parentAlias = alias.getParent(); + if (parentAlias != null) { + assertTrue(alias.getVisibilityLevel() >= parentAlias.getVisibilityLevel()); + } + } + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testDisconnectedChildInComplex() throws Exception { + try { + Model model = getModelForFile("testFiles/problematic/disconnected_child_in_complex.xml", false); + + new CreateHierarchyCommand(model, 8, 80).execute(); + + CellDesignerXmlParser parser = new CellDesignerXmlParser(); + String xmlString = parser.toXml(model); + // logger.debug(xmlString); + + InputStream stream = new ByteArrayInputStream(xmlString.getBytes(StandardCharsets.UTF_8)); + + parser.createModel(new ConverterParams().inputStream(stream)); + + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + + +} diff --git a/model/src/main/java/lcsb/mapviewer/model/Project.java b/model/src/main/java/lcsb/mapviewer/model/Project.java index 8058df51cc..ba235988a1 100644 --- a/model/src/main/java/lcsb/mapviewer/model/Project.java +++ b/model/src/main/java/lcsb/mapviewer/model/Project.java @@ -1,368 +1,368 @@ -package lcsb.mapviewer.model; - -import java.io.Serializable; -import java.util.HashSet; -import java.util.Set; - -import javax.persistence.Basic; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.OneToMany; -import javax.persistence.OneToOne; -import javax.persistence.Table; - -import org.apache.log4j.Logger; -import org.hibernate.annotations.Cascade; -import org.hibernate.annotations.CascadeType; - -import lcsb.mapviewer.model.map.MiriamData; -import lcsb.mapviewer.model.map.model.Model; -import lcsb.mapviewer.model.map.model.ModelData; - -/** - * Top level structure in the system. It describes single project and contains - * all data in it. - * - * @author Piotr Gawron - * - */ -@Entity -@Table(name = "project_table") -public class Project implements Serializable { - - /** - * Default class logger. - */ - @SuppressWarnings("unused") - private static Logger logger = Logger.getLogger(Project.class); - - /** - * - */ - private static final long serialVersionUID = 1L; - - /** - * Unique database identifier. - */ - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "idDb", unique = true, nullable = false) - private int id; - - /** - * Project identifier defined by the user (some meaningful string). - */ - @Column(name = "project_id", unique = true, nullable = false) - private String projectId; - - /** - * Project disease. - */ - @Cascade({ CascadeType.ALL }) - @OneToOne - private MiriamData disease; - - /** - * Name of the project. - */ - private String name; - - /** - * Directory where the images on the server will be stored for this project. - */ - private String directory; - - /** - * Status of the project used during uploading the project to the system. - */ - private ProjectStatus status = ProjectStatus.UNKNOWN; - - /** - * Progress of single step of project uploading. - */ - private double progress = 0; - - /** - * Errors connected with the project. - */ - private String errors = null; - - /** - * Map models in the project. - */ - @Cascade({ CascadeType.ALL }) - @OneToMany(mappedBy = "project", orphanRemoval = true) - private Set<ModelData> models = new HashSet<ModelData>(); - - /** - * Here we store input file. - */ - @Basic(fetch = FetchType.LAZY) - private byte[] inputData; - - /** - * Here we store input file. - */ - private String inputFileName; - - /** - * Organism associated with the project. - */ - @Cascade({ CascadeType.ALL }) - @OneToOne - private MiriamData organism; - - /** - * Default constructor. - */ - public Project() { - } - - /** - * Constructor with the project name in the parameter. - * - * @param projectName - * name of the project - */ - public Project(String projectName) { - this.projectId = projectName; - } - - /** - * Adds map model to the project. - * - * @param model - * map to be added - */ - public void addModel(ModelData model) { - models.add(model); - model.setProject(this); - } - - /** - * Adds map model to the project. - * - * @param model - * map to be added - */ - public void addModel(Model model) { - models.add(model.getModelData()); - model.setProject(this); - } - - /** - * Removes map model from the project. - * - * @param model - * map model to remove - */ - public void removeModel(ModelData model) { - models.remove(model); - } - - /** - * @return the id - * @see #id - */ - public int getId() { - return id; - } - - /** - * @param id - * the id to set - * @see #id - */ - public void setId(int id) { - this.id = id; - } - - /** - * @return user defined project identifier - * @see #projectId - */ - public String getProjectId() { - return projectId; - } - - /** - * @param projectId - * user defined project identifier - * @see #projectId - */ - public void setProjectId(String projectId) { - this.projectId = projectId; - } - - /** - * @return the status - * @see #status - */ - public ProjectStatus getStatus() { - return status; - } - - /** - * @param status - * the status to set - * @see #status - */ - public void setStatus(ProjectStatus status) { - this.status = status; - } - - /** - * @return the progress - * @see #progress - */ - public double getProgress() { - return progress; - } - - /** - * @param progress - * the progress to set - * @see #progress - */ - public void setProgress(double progress) { - this.progress = progress; - } - - /** - * @return the models - * @see #models - */ - public Set<ModelData> getModels() { - return models; - } - - /** - * @param models - * the models to set - * @see #models - */ - public void setModels(Set<ModelData> models) { - this.models = models; - } - - /** - * @return the errors - * @see #errors - */ - public String getErrors() { - return errors; - } - - /** - * @param errors - * the errors to set - * @see #errors - */ - public void setErrors(String errors) { - this.errors = errors; - } - - /** - * @return the directory - * @see #directory - */ - public String getDirectory() { - return directory; - } - - /** - * @param directory - * the directory to set - * @see #directory - */ - public void setDirectory(String directory) { - this.directory = directory; - } - - /** - * @return the name - * @see #name - */ - public String getName() { - return name; - } - - /** - * @param name - * the name to set - * @see #name - */ - public void setName(String name) { - this.name = name; - } - - /** - * @return disease - */ - public MiriamData getDisease() { - return disease; - } - - /** - * @param disease - * the disease - */ - public void setDisease(MiriamData disease) { - this.disease = disease; - } - - /** - * @return the inputData - * @see #inputData - */ - public byte[] getInputData() { - return inputData; - } - - /** - * @param inputData - * the inputData to set - * @see #inputData - */ - public void setInputData(byte[] inputData) { - this.inputData = inputData; - } - - /** - * @return the inputFileName - * @see #inputFileName - */ - public String getInputFileName() { - return inputFileName; - } - - /** - * @param inputFileName - * the inputFileName to set - * @see #inputFileName - */ - public void setInputFileName(String inputFileName) { - this.inputFileName = inputFileName; - } - - /** - * @param organism - * the organism to set - * @see #organism - */ - public void setOrganism(MiriamData organism) { - this.organism = organism; - } - - /** - * @return the organism - * @see #organism - */ - public MiriamData getOrganism() { - return organism; - } -} +package lcsb.mapviewer.model; + +import java.io.Serializable; +import java.util.HashSet; +import java.util.Set; + +import javax.persistence.Basic; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.OneToOne; +import javax.persistence.Table; + +import org.apache.log4j.Logger; +import org.hibernate.annotations.Cascade; +import org.hibernate.annotations.CascadeType; + +import lcsb.mapviewer.model.map.MiriamData; +import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.model.map.model.ModelData; + +/** + * Top level structure in the system. It describes single project and contains + * all data in it. + * + * @author Piotr Gawron + * + */ +@Entity +@Table(name = "project_table") +public class Project implements Serializable { + + /** + * Default class logger. + */ + @SuppressWarnings("unused") + private static Logger logger = Logger.getLogger(Project.class); + + /** + * + */ + private static final long serialVersionUID = 1L; + + /** + * Unique database identifier. + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "idDb", unique = true, nullable = false) + private int id; + + /** + * Project identifier defined by the user (some meaningful string). + */ + @Column(name = "project_id", unique = true, nullable = false) + private String projectId; + + /** + * Project disease. + */ + @Cascade({ CascadeType.ALL }) + @OneToOne + private MiriamData disease; + + /** + * Name of the project. + */ + private String name; + + /** + * Directory where the images on the server will be stored for this project. + */ + private String directory; + + /** + * Status of the project used during uploading the project to the system. + */ + private ProjectStatus status = ProjectStatus.UNKNOWN; + + /** + * Progress of single step of project uploading. + */ + private double progress = 0; + + /** + * Errors connected with the project. + */ + private String errors = null; + + /** + * Map models in the project. + */ + @Cascade({ CascadeType.ALL }) + @OneToMany(mappedBy = "project", orphanRemoval = true) + private Set<ModelData> models = new HashSet<ModelData>(); + + /** + * Here we store input file. + */ + @Basic(fetch = FetchType.LAZY) + private byte[] inputData; + + /** + * Here we store input file. + */ + private String inputFileName; + + /** + * Organism associated with the project. + */ + @Cascade({ CascadeType.ALL }) + @OneToOne + private MiriamData organism; + + /** + * Default constructor. + */ + public Project() { + } + + /** + * Constructor with the project name in the parameter. + * + * @param projectName + * name of the project + */ + public Project(String projectName) { + this.projectId = projectName; + } + + /** + * Adds map model to the project. + * + * @param model + * map to be added + */ + public void addModel(ModelData model) { + models.add(model); + model.setProject(this); + } + + /** + * Adds map model to the project. + * + * @param model + * map to be added + */ + public void addModel(Model model) { + models.add(model.getModelData()); + model.setProject(this); + } + + /** + * Removes map model from the project. + * + * @param model + * map model to remove + */ + public void removeModel(ModelData model) { + models.remove(model); + } + + /** + * @return the id + * @see #id + */ + public int getId() { + return id; + } + + /** + * @param id + * the id to set + * @see #id + */ + public void setId(int id) { + this.id = id; + } + + /** + * @return user defined project identifier + * @see #projectId + */ + public String getProjectId() { + return projectId; + } + + /** + * @param projectId + * user defined project identifier + * @see #projectId + */ + public void setProjectId(String projectId) { + this.projectId = projectId; + } + + /** + * @return the status + * @see #status + */ + public ProjectStatus getStatus() { + return status; + } + + /** + * @param status + * the status to set + * @see #status + */ + public void setStatus(ProjectStatus status) { + this.status = status; + } + + /** + * @return the progress + * @see #progress + */ + public double getProgress() { + return progress; + } + + /** + * @param progress + * the progress to set + * @see #progress + */ + public void setProgress(double progress) { + this.progress = progress; + } + + /** + * @return the models + * @see #models + */ + public Set<ModelData> getModels() { + return models; + } + + /** + * @param models + * the models to set + * @see #models + */ + public void setModels(Set<ModelData> models) { + this.models = models; + } + + /** + * @return the errors + * @see #errors + */ + public String getErrors() { + return errors; + } + + /** + * @param errors + * the errors to set + * @see #errors + */ + public void setErrors(String errors) { + this.errors = errors; + } + + /** + * @return the directory + * @see #directory + */ + public String getDirectory() { + return directory; + } + + /** + * @param directory + * the directory to set + * @see #directory + */ + public void setDirectory(String directory) { + this.directory = directory; + } + + /** + * @return the name + * @see #name + */ + public String getName() { + return name; + } + + /** + * @param name + * the name to set + * @see #name + */ + public void setName(String name) { + this.name = name; + } + + /** + * @return disease + */ + public MiriamData getDisease() { + return disease; + } + + /** + * @param disease + * the disease + */ + public void setDisease(MiriamData disease) { + this.disease = disease; + } + + /** + * @return the inputData + * @see #inputData + */ + public byte[] getInputData() { + return inputData; + } + + /** + * @param inputData + * the inputData to set + * @see #inputData + */ + public void setInputData(byte[] inputData) { + this.inputData = inputData; + } + + /** + * @return the inputFileName + * @see #inputFileName + */ + public String getInputFileName() { + return inputFileName; + } + + /** + * @param inputFileName + * the inputFileName to set + * @see #inputFileName + */ + public void setInputFileName(String inputFileName) { + this.inputFileName = inputFileName; + } + + /** + * @param organism + * the organism to set + * @see #organism + */ + public void setOrganism(MiriamData organism) { + this.organism = organism; + } + + /** + * @return the organism + * @see #organism + */ + public MiriamData getOrganism() { + return organism; + } +} diff --git a/model/src/main/java/lcsb/mapviewer/model/ProjectStatus.java b/model/src/main/java/lcsb/mapviewer/model/ProjectStatus.java index b796d5bbc3..9e3151fa16 100644 --- a/model/src/main/java/lcsb/mapviewer/model/ProjectStatus.java +++ b/model/src/main/java/lcsb/mapviewer/model/ProjectStatus.java @@ -1,110 +1,110 @@ -package lcsb.mapviewer.model; - -/** - * Defines possible statuses when uploading project into system. - * - * @author Piotr Gawron - * - */ -public enum ProjectStatus { - - /** - * Unknown status. - */ - UNKNOWN("uninitialized"), - - /** - * Data are parsed by the CellDesigner parser. - */ - PARSING_DATA("Parsing data"), - - /** - * Model is annotated by the annotation tool. - */ - ANNOTATING("Annotating"), - - /** - * Model is being uploaded to the database. - */ - UPLOADING_TO_DB("Uploading to db"), - - /** - * Model is being extended ( - * {@link lcsb.mapviewer.services.utils.IPostLoadModification - * IPostLoadModification} is processing). - */ - EXTENDING_MODEL("Data mining"), - - /** - * Images for the projects are being generated. - */ - GENERATING_IMAGES("Generating images"), - - /** - * Data that are linked to pubmed articles are being cached. - */ - CACHING("Caching pubmed data"), - - /** - * Project is ready to use. - */ - DONE("Ok"), - - /** - * There was problem during project creation. - */ - FAIL("Failure"), - - /** - * Data that are linked to miriam are being cached. - */ - CACHING_MIRIAM("Caching miriam data"), - - /** - * Miriam data validation. - */ - VALIDATING_MIRIAM("Validating miriam data"), - - /** - * Removing of the project. - */ - REMOVING("Project removing"), - - /** - * All chemicals that can be found by map elements are cached. - */ - CACHING_CHEMICAL("Caching chemical data"), - - /** - * All drugs that can be found by map elements are cached. - */ - CACHING_DRUG("Caching drug data"), - - /** - * All mirna that can be found by map elements are cached. - */ - CACHING_MI_RNA("Caching miRNA data"); - - /** - * Message used to present the status on the client side. - */ - private String readableString; - - /** - * Default constructor of the enum with {@link #readableString} parameter. - * - * @param readableForm - * {@link #readableString} - */ - ProjectStatus(String readableForm) { - this.readableString = readableForm; - } - - /** - * @return {@link #readableString} - */ - public String toString() { - return readableString; - } - -} +package lcsb.mapviewer.model; + +/** + * Defines possible statuses when uploading project into system. + * + * @author Piotr Gawron + * + */ +public enum ProjectStatus { + + /** + * Unknown status. + */ + UNKNOWN("uninitialized"), + + /** + * Data are parsed by the CellDesigner parser. + */ + PARSING_DATA("Parsing data"), + + /** + * Model is annotated by the annotation tool. + */ + ANNOTATING("Annotating"), + + /** + * Model is being uploaded to the database. + */ + UPLOADING_TO_DB("Uploading to db"), + + /** + * Model is being extended ( + * {@link lcsb.mapviewer.services.utils.IPostLoadModification + * IPostLoadModification} is processing). + */ + EXTENDING_MODEL("Data mining"), + + /** + * Images for the projects are being generated. + */ + GENERATING_IMAGES("Generating images"), + + /** + * Data that are linked to pubmed articles are being cached. + */ + CACHING("Caching pubmed data"), + + /** + * Project is ready to use. + */ + DONE("Ok"), + + /** + * There was problem during project creation. + */ + FAIL("Failure"), + + /** + * Data that are linked to miriam are being cached. + */ + CACHING_MIRIAM("Caching miriam data"), + + /** + * Miriam data validation. + */ + VALIDATING_MIRIAM("Validating miriam data"), + + /** + * Removing of the project. + */ + REMOVING("Project removing"), + + /** + * All chemicals that can be found by map elements are cached. + */ + CACHING_CHEMICAL("Caching chemical data"), + + /** + * All drugs that can be found by map elements are cached. + */ + CACHING_DRUG("Caching drug data"), + + /** + * All mirna that can be found by map elements are cached. + */ + CACHING_MI_RNA("Caching miRNA data"); + + /** + * Message used to present the status on the client side. + */ + private String readableString; + + /** + * Default constructor of the enum with {@link #readableString} parameter. + * + * @param readableForm + * {@link #readableString} + */ + ProjectStatus(String readableForm) { + this.readableString = readableForm; + } + + /** + * @return {@link #readableString} + */ + public String toString() { + return readableString; + } + +} diff --git a/model/src/test/java/lcsb/mapviewer/AllTests.java b/model/src/test/java/lcsb/mapviewer/AllTests.java index ab3bed5138..95fc537883 100644 --- a/model/src/test/java/lcsb/mapviewer/AllTests.java +++ b/model/src/test/java/lcsb/mapviewer/AllTests.java @@ -1,16 +1,16 @@ -package lcsb.mapviewer; - -import lcsb.mapviewer.model.AllModelTests; -import lcsb.mapviewer.modelutils.map.AllMapUtilTests; - -import org.junit.runner.RunWith; -import org.junit.runners.Suite; -import org.junit.runners.Suite.SuiteClasses; - -@RunWith(Suite.class) -@SuiteClasses({ AllModelTests.class,// - AllMapUtilTests.class,// -}) -public class AllTests { - -} +package lcsb.mapviewer; + +import lcsb.mapviewer.model.AllModelTests; +import lcsb.mapviewer.modelutils.map.AllMapUtilTests; + +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; + +@RunWith(Suite.class) +@SuiteClasses({ AllModelTests.class,// + AllMapUtilTests.class,// +}) +public class AllTests { + +} diff --git a/model/src/test/java/lcsb/mapviewer/ModelTestFunctions.java b/model/src/test/java/lcsb/mapviewer/ModelTestFunctions.java index fc9832424e..a99c4fe2df 100644 --- a/model/src/test/java/lcsb/mapviewer/ModelTestFunctions.java +++ b/model/src/test/java/lcsb/mapviewer/ModelTestFunctions.java @@ -1,32 +1,32 @@ -package lcsb.mapviewer; - -import java.util.List; - -import org.apache.log4j.Logger; -import org.apache.log4j.spi.LoggingEvent; -import org.junit.After; -import org.junit.Before; - -import lcsb.mapviewer.common.EventStorageLoggerAppender; - -public class ModelTestFunctions { - - private EventStorageLoggerAppender appender; - - @Before - public final void _setUp() throws Exception { - Logger.getRootLogger().removeAppender(appender); - appender = new EventStorageLoggerAppender(); - Logger.getRootLogger().addAppender(appender); - } - - @After - public final void _tearDown() throws Exception { - Logger.getRootLogger().removeAppender(appender); - } - - protected List<LoggingEvent> getWarnings() { - return appender.getWarnings(); - } - -} +package lcsb.mapviewer; + +import java.util.List; + +import org.apache.log4j.Logger; +import org.apache.log4j.spi.LoggingEvent; +import org.junit.After; +import org.junit.Before; + +import lcsb.mapviewer.common.EventStorageLoggerAppender; + +public class ModelTestFunctions { + + private EventStorageLoggerAppender appender; + + @Before + public final void _setUp() throws Exception { + Logger.getRootLogger().removeAppender(appender); + appender = new EventStorageLoggerAppender(); + Logger.getRootLogger().addAppender(appender); + } + + @After + public final void _tearDown() throws Exception { + Logger.getRootLogger().removeAppender(appender); + } + + protected List<LoggingEvent> getWarnings() { + return appender.getWarnings(); + } + +} diff --git a/model/src/test/java/lcsb/mapviewer/model/AllModelTests.java b/model/src/test/java/lcsb/mapviewer/model/AllModelTests.java index 9387ffa40a..bd4e35c210 100644 --- a/model/src/test/java/lcsb/mapviewer/model/AllModelTests.java +++ b/model/src/test/java/lcsb/mapviewer/model/AllModelTests.java @@ -1,24 +1,24 @@ -package lcsb.mapviewer.model; - -import lcsb.mapviewer.model.cache.AllCacheTests; -import lcsb.mapviewer.model.graphics.AllGraphicsTests; -import lcsb.mapviewer.model.log.AllLogTests; -import lcsb.mapviewer.model.map.AllMapTests; -import lcsb.mapviewer.model.user.AllUserTests; - -import org.junit.runner.RunWith; -import org.junit.runners.Suite; -import org.junit.runners.Suite.SuiteClasses; - -@RunWith(Suite.class) -@SuiteClasses({ AllCacheTests.class, // - AllGraphicsTests.class, // - AllLogTests.class, // - AllMapTests.class, // - AllUserTests.class, // - ProjectStatusTest.class, // - ProjectTest.class,// -}) -public class AllModelTests { - -} +package lcsb.mapviewer.model; + +import lcsb.mapviewer.model.cache.AllCacheTests; +import lcsb.mapviewer.model.graphics.AllGraphicsTests; +import lcsb.mapviewer.model.log.AllLogTests; +import lcsb.mapviewer.model.map.AllMapTests; +import lcsb.mapviewer.model.user.AllUserTests; + +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; + +@RunWith(Suite.class) +@SuiteClasses({ AllCacheTests.class, // + AllGraphicsTests.class, // + AllLogTests.class, // + AllMapTests.class, // + AllUserTests.class, // + ProjectStatusTest.class, // + ProjectTest.class,// +}) +public class AllModelTests { + +} diff --git a/model/src/test/java/lcsb/mapviewer/model/ProjectStatusTest.java b/model/src/test/java/lcsb/mapviewer/model/ProjectStatusTest.java index 0d4cdcdfeb..3a966d4e01 100644 --- a/model/src/test/java/lcsb/mapviewer/model/ProjectStatusTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/ProjectStatusTest.java @@ -1,30 +1,30 @@ -package lcsb.mapviewer.model; - -import static org.junit.Assert.assertNotNull; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -public class ProjectStatusTest { - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testValidValues() { - for (ProjectStatus type : ProjectStatus.values()) { - assertNotNull(type); - - // for coverage tests - ProjectStatus.valueOf(type.name()); - type.toString(); - } - } - -} +package lcsb.mapviewer.model; + +import static org.junit.Assert.assertNotNull; + +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +public class ProjectStatusTest { + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testValidValues() { + for (ProjectStatus type : ProjectStatus.values()) { + assertNotNull(type); + + // for coverage tests + ProjectStatus.valueOf(type.name()); + type.toString(); + } + } + +} diff --git a/model/src/test/java/lcsb/mapviewer/model/ProjectTest.java b/model/src/test/java/lcsb/mapviewer/model/ProjectTest.java index 4952f2e507..917ebae588 100644 --- a/model/src/test/java/lcsb/mapviewer/model/ProjectTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/ProjectTest.java @@ -1,130 +1,130 @@ -package lcsb.mapviewer.model; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - -import java.util.HashSet; -import java.util.Set; - -import org.apache.commons.lang3.SerializationUtils; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -import lcsb.mapviewer.common.Configuration; -import lcsb.mapviewer.model.map.MiriamData; -import lcsb.mapviewer.model.map.model.Model; -import lcsb.mapviewer.model.map.model.ModelData; -import lcsb.mapviewer.model.map.model.ModelFullIndexed; - -public class ProjectTest { - - @Before - public void setUp() throws Exception { - } - - @After - public void tearDown() throws Exception { - } - - @Test - public void testSerialization() { - try { - SerializationUtils.serialize(new Project()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testProject() { - try { - Project project = new Project("str"); - assertNotNull(project); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testAddModel() { - try { - Model model = new ModelFullIndexed(null); - Model model2 = new ModelFullIndexed(null); - Project project = new Project(); - assertEquals(0, project.getModels().size()); - project.addModel(model); - assertEquals(1, project.getModels().size()); - project.addModel(model); - assertEquals(1, project.getModels().size()); - project.addModel(model2.getModelData()); - assertEquals(2, project.getModels().size()); - project.removeModel(model2.getModelData()); - assertEquals(1, project.getModels().size()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - public void testGetters() { - try { - MiriamData organism = new MiriamData(); - int id = 5; - String projectId = "str"; - ProjectStatus status = ProjectStatus.ANNOTATING; - double progress = 4.5; - Set<ModelData> models = new HashSet<>(); - String errors = "eerStr"; - String directory = "dir"; - String name = "name3"; - MiriamData disease = new MiriamData(); - Project project = new Project("str"); - - project.setId(id); - assertEquals(id, project.getId()); - - project.setProjectId(projectId); - assertEquals(projectId, project.getProjectId()); - - project.setStatus(status); - assertEquals(status, project.getStatus()); - - project.setProgress(progress); - assertEquals(progress, project.getProgress(), Configuration.EPSILON); - - project.setModels(models); - assertEquals(models, project.getModels()); - - project.setErrors(errors); - assertEquals(errors, project.getErrors()); - - project.setDirectory(directory); - assertEquals(directory, project.getDirectory()); - - project.setName(name); - assertEquals(name, project.getName()); - - project.setDisease(disease); - assertEquals(disease, project.getDisease()); - - String inputFileName = "x"; - byte[] inputData = new byte[] { 1, 2 }; - project.setInputData(inputData); - assertEquals(inputData, project.getInputData()); - - project.setInputFileName(inputFileName); - assertEquals(inputFileName, project.getInputFileName()); - - project.setOrganism(organism); - assertEquals(organism, project.getOrganism()); - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - -} +package lcsb.mapviewer.model; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + +import java.util.HashSet; +import java.util.Set; + +import org.apache.commons.lang3.SerializationUtils; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; + +import lcsb.mapviewer.common.Configuration; +import lcsb.mapviewer.model.map.MiriamData; +import lcsb.mapviewer.model.map.model.Model; +import lcsb.mapviewer.model.map.model.ModelData; +import lcsb.mapviewer.model.map.model.ModelFullIndexed; + +public class ProjectTest { + + @Before + public void setUp() throws Exception { + } + + @After + public void tearDown() throws Exception { + } + + @Test + public void testSerialization() { + try { + SerializationUtils.serialize(new Project()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testProject() { + try { + Project project = new Project("str"); + assertNotNull(project); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testAddModel() { + try { + Model model = new ModelFullIndexed(null); + Model model2 = new ModelFullIndexed(null); + Project project = new Project(); + assertEquals(0, project.getModels().size()); + project.addModel(model); + assertEquals(1, project.getModels().size()); + project.addModel(model); + assertEquals(1, project.getModels().size()); + project.addModel(model2.getModelData()); + assertEquals(2, project.getModels().size()); + project.removeModel(model2.getModelData()); + assertEquals(1, project.getModels().size()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + public void testGetters() { + try { + MiriamData organism = new MiriamData(); + int id = 5; + String projectId = "str"; + ProjectStatus status = ProjectStatus.ANNOTATING; + double progress = 4.5; + Set<ModelData> models = new HashSet<>(); + String errors = "eerStr"; + String directory = "dir"; + String name = "name3"; + MiriamData disease = new MiriamData(); + Project project = new Project("str"); + + project.setId(id); + assertEquals(id, project.getId()); + + project.setProjectId(projectId); + assertEquals(projectId, project.getProjectId()); + + project.setStatus(status); + assertEquals(status, project.getStatus()); + + project.setProgress(progress); + assertEquals(progress, project.getProgress(), Configuration.EPSILON); + + project.setModels(models); + assertEquals(models, project.getModels()); + + project.setErrors(errors); + assertEquals(errors, project.getErrors()); + + project.setDirectory(directory); + assertEquals(directory, project.getDirectory()); + + project.setName(name); + assertEquals(name, project.getName()); + + project.setDisease(disease); + assertEquals(disease, project.getDisease()); + + String inputFileName = "x"; + byte[] inputData = new byte[] { 1, 2 }; + project.setInputData(inputData); + assertEquals(inputData, project.getInputData()); + + project.setInputFileName(inputFileName); + assertEquals(inputFileName, project.getInputFileName()); + + project.setOrganism(organism); + assertEquals(organism, project.getOrganism()); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + +} -- GitLab