diff --git a/model/src/main/java/uk/ac/ebi/bioinvindex/search/hibernatesearch/bridge/AssayBridge.java b/model/src/main/java/uk/ac/ebi/bioinvindex/search/hibernatesearch/bridge/AssayBridge.java index ff4dc9a..a5dd750 100644 --- a/model/src/main/java/uk/ac/ebi/bioinvindex/search/hibernatesearch/bridge/AssayBridge.java +++ b/model/src/main/java/uk/ac/ebi/bioinvindex/search/hibernatesearch/bridge/AssayBridge.java @@ -47,10 +47,8 @@ import org.apache.lucene.document.Field; import org.hibernate.search.bridge.FieldBridge; import org.hibernate.search.bridge.LuceneOptions; -import uk.ac.ebi.bioinvindex.model.Annotation; import uk.ac.ebi.bioinvindex.model.AssayResult; import uk.ac.ebi.bioinvindex.model.processing.Assay; -import uk.ac.ebi.bioinvindex.model.term.AnnotationTypes; import uk.ac.ebi.bioinvindex.model.xref.Xref; import uk.ac.ebi.bioinvindex.search.hibernatesearch.StudyBrowseField; import uk.ac.ebi.bioinvindex.utils.datasourceload.DataLocationManager; @@ -81,31 +79,7 @@ public void set(String s, Object o, Document document, LuceneOptions luceneOptio dataLocationManager.setEntityManager(entityManager); for (Assay assay : assays) { - - if (assay.getTechnologyName().equals("mass spectrometry")) { - Collection assayResults = ProcessingUtils.findAssayResultsFromAssay(assay); - - String fileLink = dataLocationManager.getDataLocationLink(assay.getMeasurement().getName(), assay.getTechnologyName(), assay.getStudy().getObfuscationCode(), - AnnotationTypes.GENERIC_DATA_FILE_LINK); - - System.out.println("File link: " + fileLink); - - String pathLink = dataLocationManager.getDataLocationLink(assay.getMeasurement().getName(), assay.getTechnologyName(), assay.getStudy().getObfuscationCode(), - AnnotationTypes.GENERIC_DATA_FILE_PATH); - - System.out.println("Path link: " + pathLink); - - for (AssayResult result : assayResults) { - for (Annotation annotation : result.getData().getAnnotation("metaboliteFile")) { - System.out.printf("Type: %s -> Value: %s\n", annotation.getType().getValue(), annotation.getText()); - - MetaboLightsIndexer.indexMetaboliteFile(pathLink.replace("${study-acc}", - assay.getStudy().getObfuscationCode()) + annotation.getText(), - document, - luceneOptions); - } - } - } + Collection assayResults = ProcessingUtils.findAssayResultsFromAssay(assay); String type = buildType(assay); @@ -114,19 +88,11 @@ public void set(String s, Object o, Document document, LuceneOptions luceneOptio assayTypeToInfo.put(type, info); } - for (Xref xref : assay.getXrefs()) { - System.out.println("Adding XREF to AssayTypeInfo: " + xref.getSource().getAcc() + "(" + xref.getAcc() + ") for " + type); - - StringBuilder sb = new StringBuilder(); - sb.append("xref(").append(xref.getAcc()).append("->"); - sb.append(xref.getSource().getAcc()).append(")"); - - assayTypeToInfo.get(type).addAccession(sb.toString()); - } + createAssayExternalLinks(assayTypeToInfo, assayResults, type); + createXrefs(assayTypeToInfo, assay, type); assayTypeToInfo.get(type).increaseCount(); } - // each data link should be stored perhaps, or at least whatever is required to make it display in the Study page. for (String type : assayTypeToInfo.keySet()) { StringBuilder fullInfo = new StringBuilder(); @@ -160,6 +126,35 @@ public void set(String s, Object o, Document document, LuceneOptions luceneOptio entityManager.close(); } + private void createXrefs(Map assayTypeToInfo, Assay assay, String type) { + for (Xref xref : assay.getXrefs()) { + StringBuilder sb = new StringBuilder(); + sb.append("xref(").append(xref.getAcc()).append("->"); + sb.append(xref.getSource().getAcc()).append(")"); + assayTypeToInfo.get(type).addAccession(sb.toString()); + } + } + + private void createAssayExternalLinks(Map assayTypeToInfo, Collection assayResults, String type) { + Set addedLinks = new HashSet(); + for (AssayResult result : assayResults) { + // we're only looking at links...should accommodate webdav etc. too + //todo remove this after testing + if (!result.getData().getName().matches("(http|ftp|https).*") && result.getData().getName().contains("/")) { + // we only store the folder since that will take us to multiple file locations. Otherwise we'd have too + // many individual links pointing to the same place. + String folder = result.getData().getName().substring(0, result.getData().getName().lastIndexOf("/")); + if (!addedLinks.contains(folder)) { + StringBuilder sb = new StringBuilder(); + sb.append("link(").append(folder).append("->"); + sb.append(result.getData().getType().getName()).append(")"); + addedLinks.add(folder); + assayTypeToInfo.get(type).addAccession(sb.toString()); + } + } + } + } + private String buildType(Assay assay) { return assay.getMeasurement().getName() + "|" + assay.getTechnologyName(); } diff --git a/model/src/main/java/uk/ac/ebi/bioinvindex/utils/datasourceload/Repository.java b/model/src/main/java/uk/ac/ebi/bioinvindex/utils/datasourceload/Repository.java index 51eb51c..115d25c 100644 --- a/model/src/main/java/uk/ac/ebi/bioinvindex/utils/datasourceload/Repository.java +++ b/model/src/main/java/uk/ac/ebi/bioinvindex/utils/datasourceload/Repository.java @@ -11,7 +11,8 @@ public enum Repository { PRIDE("^[0-9]+","pride"), ARRAYEXPRESS("^(e-).*", "arrayexpress"), GEO("^[(gse)|(ges)]*[0-9]+", "geo"), - ENA("^[(sra)|(ena)]*[0-9]+","embl-bank", "ena", "ebi/ena"), GENERIC("generic", "generic", "none", "generic proteomic location", "generic microarray location"); + ENA("^[(sra)|(ena)]*[0-9]+","embl-bank", "ena", "ebi/ena"), + GENERIC("generic", "generic", "none", "generic proteomic location", "generic microarray location"); private String startString; diff --git a/services/src/main/java/uk/ac/ebi/bioinvindex/services/SourceURLResolverImpl.java b/services/src/main/java/uk/ac/ebi/bioinvindex/services/SourceURLResolverImpl.java index a541318..8a2bbbd 100644 --- a/services/src/main/java/uk/ac/ebi/bioinvindex/services/SourceURLResolverImpl.java +++ b/services/src/main/java/uk/ac/ebi/bioinvindex/services/SourceURLResolverImpl.java @@ -65,6 +65,8 @@ @AutoCreate public class SourceURLResolverImpl implements SourceURLResolver { + public static final String EXTERNAL_LINK_PATTERN = "(http|ftp|https).*"; + private static Cache cache = new BIICache(); private static final Log log = LogFactory.getLog(SourceURLResolverImpl.class); @@ -74,6 +76,7 @@ public class SourceURLResolverImpl implements SourceURLResolver { public String getRawDataURL(String measurement, String technology, String accession) { try { + if (checkIsExternalLink(accession)) return accession; return getDataURL(measurement, technology, accession, AnnotationTypes.RAW_DATA_FILE_LINK); } catch (Exception e) { log.error("Unable to resolve Raw data URL"); @@ -81,9 +84,13 @@ public String getRawDataURL(String measurement, String technology, String access } } + private boolean checkIsExternalLink(String accession) { + return accession.matches(EXTERNAL_LINK_PATTERN); + } + public String getProcessedDataURL(String measurement, String technology, String accession) { try { - + if (checkIsExternalLink(accession)) return accession; return getDataURL(measurement, technology, accession, AnnotationTypes.PROCESSED_DATA_FILE_LINK); } catch (Exception e) { log.error("Unable to resolve Processed data URL"); diff --git a/services/src/main/java/uk/ac/ebi/bioinvindex/services/StudyBeanImpl.java b/services/src/main/java/uk/ac/ebi/bioinvindex/services/StudyBeanImpl.java index dee6d12..b029869 100644 --- a/services/src/main/java/uk/ac/ebi/bioinvindex/services/StudyBeanImpl.java +++ b/services/src/main/java/uk/ac/ebi/bioinvindex/services/StudyBeanImpl.java @@ -94,23 +94,11 @@ public class StudyBeanImpl implements StudyBean { @In(required = false) private StudyIndexLocatorImpl studyIndexLocator; - - private String organism; - - private String design; - - private Map> factorsToValues; - - private Map> characteristicsToValues; - - private List contacts; - - private List assayInfos; - - private String studyId; - + private String studyId, organism, design; private Collection investigations; - + private List assayInfos; + private List contacts; + private Map> characteristicsToValues, factorsToValues; private List relatedStudies; public StudyBeanImpl() { diff --git a/services/src/main/java/uk/ac/ebi/bioinvindex/services/browse/BrowseStudyBeanImpl.java b/services/src/main/java/uk/ac/ebi/bioinvindex/services/browse/BrowseStudyBeanImpl.java index a7af289..e166a3e 100644 --- a/services/src/main/java/uk/ac/ebi/bioinvindex/services/browse/BrowseStudyBeanImpl.java +++ b/services/src/main/java/uk/ac/ebi/bioinvindex/services/browse/BrowseStudyBeanImpl.java @@ -354,12 +354,12 @@ private AssayInfoBean createAssayInfoBean(AssayInfoBean assayInfoBean, String as private DataLink createDBLink(String dbLinkRepresentation) { DataLink link = new DataLink(); - dbLinkRepresentation = dbLinkRepresentation.replace("xref(", "").replace(")", ""); + dbLinkRepresentation = dbLinkRepresentation.replace("xref(", "").replace("link(", "").replace(")", ""); if (dbLinkRepresentation.contains("->")) { String[] dbLinkParts = dbLinkRepresentation.split("->"); link.setAcc(dbLinkParts[0]); - link.setSourceName(dbLinkParts[1]); + link.setSourceName(dbLinkParts[1].toUpperCase()); } return link; diff --git a/services/src/main/java/uk/ac/ebi/bioinvindex/services/compound/ChEBICompound.java b/services/src/main/java/uk/ac/ebi/bioinvindex/services/compound/ChEBICompound.java deleted file mode 100644 index ef1b8c3..0000000 --- a/services/src/main/java/uk/ac/ebi/bioinvindex/services/compound/ChEBICompound.java +++ /dev/null @@ -1,172 +0,0 @@ -package uk.ac.ebi.bioinvindex.services.compound; - -/* - * __________ - * CREDITS - * __________ - * - * Team page: http://isatab.sf.net/ - * - Marco Brandizi (software engineer: ISAvalidator, ISAconverter, BII data management utility, BII model) - * - Eamonn Maguire (software engineer: ISAcreator, ISAcreator configurator, ISAvalidator, ISAconverter, BII data management utility, BII web) - * - Nataliya Sklyar (software engineer: BII web application, BII model, BII data management utility) - * - Philippe Rocca-Serra (technical coordinator: user requirements and standards compliance for ISA software, ISA-tab format specification, BII model, ISAcreator wizard, ontology) - * - Susanna-Assunta Sansone (coordinator: ISA infrastructure design, standards compliance, ISA-tab format specification, BII model, funds raising) - * - * Contributors: - * - Manon Delahaye (ISA team trainee: BII web services) - * - Richard Evans (ISA team trainee: rISAtab) - * - * - * ______________________ - * Contacts and Feedback: - * ______________________ - * - * Project overview: http://isatab.sourceforge.net/ - * - * To follow general discussion: isatab-devel@list.sourceforge.net - * To contact the developers: isatools@googlegroups.com - * - * To report bugs: http://sourceforge.net/tracker/?group_id=215183&atid=1032649 - * To request enhancements: http://sourceforge.net/tracker/?group_id=215183&atid=1032652 - * - * - * __________ - * License: - * __________ - * - * This work is licenced under the Creative Commons Attribution-Share Alike 2.0 UK: England & Wales License. To view a copy of this licence, visit http://creativecommons.org/licenses/by-sa/2.0/uk/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA. - * - * __________ - * Sponsors - * __________ - * This work has been funded mainly by the EU Carcinogenomics (http://www.carcinogenomics.eu) [PL 037712] and in part by the - * EU NuGO [NoE 503630](http://www.nugo.org/everyone) projects and in part by EMBL-EBI. - */ - -import org.jboss.seam.util.Base64; - -import javax.imageio.ImageIO; -import java.util.ArrayList; -import java.util.List; -import java.awt.image.RenderedImage; -import java.awt.image.BufferedImage; -import java.awt.*; -import java.io.OutputStream; -import java.io.IOException; -import java.io.Serializable; - - -/** - * Object to represent results of ChEBI query for use when creating compound page.... - * @author: eamonnmaguire - * @date Oct 15, 2008 - */ -public class ChEBICompound implements Comparable { - private static final String CHEBI_URL = "http://www.ebi.ac.uk/chebi/searchId.do?chebiId="; - private String chebiId; - private String name; - private String definitions; - private String structure; - private String formula; - private String imgLoc; - - // we also need information about the related studies! - private List studyAcc; - private List organsUsedOn; - private List organismsUsedOn; - - /** - * ChEBICompound constructor - * @param chebiId - ChEBI ID for the compound - * @param name - Name of compound - * @param definitions - Definition of the compound - * @param structure - A String containing a MDL MolFile representation of the Compound structure for later rendering - * @param formula - The formula representing the compound - */ - public ChEBICompound(String chebiId, String name, String definitions, - String structure, String formula, String imgLoc) { - this.chebiId = chebiId; - this.name = name; - this.definitions = definitions; - this.structure = structure; - this.formula = formula; - this.imgLoc = imgLoc; - - organismsUsedOn = new ArrayList(); - organsUsedOn = new ArrayList(); - studyAcc = new ArrayList(); - } - - public void addToOrganismsUsed(String organismUsedOn) { - - if (!this.organismsUsedOn.contains(organismUsedOn)) { - this.organismsUsedOn.add(organismUsedOn); - } - } - - public void addToOrgansUsed(String organUsedOn) { - - if (!this.organsUsedOn.contains(organUsedOn)) { - this.organsUsedOn.add(organUsedOn); - } - } - - public int compareTo(Object cc) { - int result = ((ChEBICompound) cc).getName().toLowerCase() - .compareTo(name.toLowerCase()); - - if (result < 0) { - return 1; - } else if (result > 0) { - return -1; - } - - return 0; - } - - public String getChebiId() { - return chebiId; - } - - public static String getChebiUrl() { - return CHEBI_URL; - } - - public String getDefinitions() { - return definitions; - } - - public String getFormula() { - return formula; - } - - public String getName() { - return name; - } - - public List getOrganismsUsedOn() { - return organismsUsedOn; - } - - public List getOrgansUsedOn() { - return organsUsedOn; - } - - public String getStructure() { - return structure; - } - - public List getStudyAcc() { - return studyAcc; - } - - public String getImgLoc() { - return imgLoc; - } - - - - public void setStudyAcc(List studyAcc) { - this.studyAcc = studyAcc; - } -} diff --git a/services/src/main/java/uk/ac/ebi/bioinvindex/services/compound/ChEBIConnector.java b/services/src/main/java/uk/ac/ebi/bioinvindex/services/compound/ChEBIConnector.java deleted file mode 100644 index 08bb432..0000000 --- a/services/src/main/java/uk/ac/ebi/bioinvindex/services/compound/ChEBIConnector.java +++ /dev/null @@ -1,193 +0,0 @@ -package uk.ac.ebi.bioinvindex.services.compound; - -/* - * __________ - * CREDITS - * __________ - * - * Team page: http://isatab.sf.net/ - * - Marco Brandizi (software engineer: ISAvalidator, ISAconverter, BII data management utility, BII model) - * - Eamonn Maguire (software engineer: ISAcreator, ISAcreator configurator, ISAvalidator, ISAconverter, BII data management utility, BII web) - * - Nataliya Sklyar (software engineer: BII web application, BII model, BII data management utility) - * - Philippe Rocca-Serra (technical coordinator: user requirements and standards compliance for ISA software, ISA-tab format specification, BII model, ISAcreator wizard, ontology) - * - Susanna-Assunta Sansone (coordinator: ISA infrastructure design, standards compliance, ISA-tab format specification, BII model, funds raising) - * - * Contributors: - * - Manon Delahaye (ISA team trainee: BII web services) - * - Richard Evans (ISA team trainee: rISAtab) - * - * - * ______________________ - * Contacts and Feedback: - * ______________________ - * - * Project overview: http://isatab.sourceforge.net/ - * - * To follow general discussion: isatab-devel@list.sourceforge.net - * To contact the developers: isatools@googlegroups.com - * - * To report bugs: http://sourceforge.net/tracker/?group_id=215183&atid=1032649 - * To request enhancements: http://sourceforge.net/tracker/?group_id=215183&atid=1032652 - * - * - * __________ - * License: - * __________ - * - * This work is licenced under the Creative Commons Attribution-Share Alike 2.0 UK: England & Wales License. To view a copy of this licence, visit http://creativecommons.org/licenses/by-sa/2.0/uk/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA. - * - * __________ - * Sponsors - * __________ - * This work has been funded mainly by the EU Carcinogenomics (http://www.carcinogenomics.eu) [PL 037712] and in part by the - * EU NuGO [NoE 503630](http://www.nugo.org/everyone) projects and in part by EMBL-EBI. - */ - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.jboss.seam.ScopeType; -import org.jboss.seam.annotations.AutoCreate; -import org.jboss.seam.annotations.In; -import org.jboss.seam.annotations.Name; -import org.jboss.seam.annotations.Scope; -import org.jboss.seam.security.Identity; -import uk.ac.ebi.bioinvindex.dao.OntologyEntryDAO; -import uk.ac.ebi.bioinvindex.dao.StudyDAO; -import uk.ac.ebi.bioinvindex.dao.ejb3.DaoFactory; -import uk.ac.ebi.bioinvindex.model.term.OntologyTerm; -import uk.ac.ebi.bioinvindex.model.term.PropertyValue; -import uk.ac.ebi.bioinvindex.services.browse.BrowseBean; - -import javax.persistence.EntityManager; -import java.util.ArrayList; -import java.util.List; - - -/** - * @author Eamonn Maguire - * @date Oct 14, 2008 - */ -@Name("taxon") -@Scope(ScopeType.PAGE) -@AutoCreate -public class ChEBIConnector implements BrowseBean { - - @In - private EntityManager entityManager; - - @In - private Identity identity; - - private static final Log log = LogFactory.getLog(ChEBIConnector.class); - - private OntologyEntryDAO ontologyDAO; - - private StudyDAO studyEJB3DAO; - - private List compoundSearchResults; - - public int getRowCount() { - try { - return getCompounds().size(); - } catch (Exception e) { - return 0; - } - } - - public List getItemList() { - return getCompounds(); //To change body of implemented methods use File | Settings | File Templates. - } - - private List getCompounds() { - try { - if (compoundSearchResults == null) { - compoundSearchResults = new ArrayList(); - - List result = getOntologyDAO().getOntologyEntriesByRefSource("CHEBI"); - - for (OntologyTerm ontologyTerm : result) { - - // need to determine what to search by here since if we have a chebi accession, we can do a more exact - // search - quicker! - - log.info("Getting ChEBI record for : " + ontologyTerm.getAcc()); - - String formula = ""; - - // create the image of the compound using the ChEBICompoundImageCreator helper class - //ToDo: Uncomment the following line when needed, fails when deployed on tc-test - // String compoundImgLoc = "file:///" + ChEBICompoundImageCreator.createImageForCompound(structure.getStructure(), compound); - - String compoundImgLoc = "file:///"; - ChEBICompound chebiCompound = new ChEBICompound(ontologyTerm.getAcc(), - ontologyTerm.getName(), "", - "", formula, compoundImgLoc); - - List studyAccsForCompound = - getStudyEJB3DAO().filterFactorsByOntologyTermAndRefNameForUser(ontologyTerm.getAcc(), "CHEBI", identity.getUsername()); - - - chebiCompound.setStudyAcc(studyAccsForCompound); - - - for (String studyAcc : studyAccsForCompound) { - - List organismsUsingCompound = getStudyEJB3DAO().getValuesOfPropertyForStudyAcc(studyAcc, - "organism"); - - for (PropertyValue pvi : organismsUsingCompound) { - chebiCompound.addToOrganismsUsed(pvi.getValue()); - } - } - - if (studyAccsForCompound != null && studyAccsForCompound.size() > 0) { - compoundSearchResults.add(chebiCompound); - } - - } - - } - - log.info("Produced " + compoundSearchResults.size() + - "ChEBICompound objects to display in browser :o) "); - return compoundSearchResults; - } catch (Exception e) { - log.error(e.getMessage()); - return new ArrayList(); - } - - } - - public OntologyEntryDAO getOntologyDAO() { - if (ontologyDAO == null) { - ontologyDAO = DaoFactory.getInstance(entityManager).getOntologyEntryDAO(OntologyTerm.class); - } - return ontologyDAO; - } - - public StudyDAO getStudyEJB3DAO() { - if (studyEJB3DAO == null) { - studyEJB3DAO = DaoFactory.getInstance(entityManager).getStudyDAO(); - } - return studyEJB3DAO; - } - - - public void setEntityManager(EntityManager entityManager) { - this.entityManager = entityManager; - } - - public List getImages() { - List images = new ArrayList(); - - Image i1 = new Image("http://www.googlyfoogly.com/images/AWESOME.jpg", "I'm awesome", "01"); - Image i2 = new Image("http://9.media.tumblr.com/tumblr_kv4399hWWz1qzdr4go1_500.jpg", "I'm awesome too", "02"); - Image i3 = new Image("http://www.googlyfoogly.com/images/AWESOME.jpg", "I'm awesome three", "03"); - - images.add(i1); - images.add(i2); - images.add(i3); - - return images; - } -} diff --git a/services/src/main/java/uk/ac/ebi/bioinvindex/services/compound/Image.java b/services/src/main/java/uk/ac/ebi/bioinvindex/services/compound/Image.java deleted file mode 100644 index f8e84c6..0000000 --- a/services/src/main/java/uk/ac/ebi/bioinvindex/services/compound/Image.java +++ /dev/null @@ -1,34 +0,0 @@ -package uk.ac.ebi.bioinvindex.services.compound; - -/** - * Created by the ISA team - * - * @author Eamonn Maguire (eamonnmag@gmail.com) - *

- * Date: 21/09/2011 - * Time: 20:39 - */ -public class Image { - - private String url; - private String caption; - private String altTag; - - public Image(String url, String caption, String altTag) { - this.url = url; - this.caption = caption; - this.altTag = altTag; - } - - public String getUrl() { - return url; - } - - public String getCaption() { - return caption; - } - - public String getAltTag() { - return altTag; - } -} diff --git a/web/src/main/webapp/WEB-INF/pages.xml b/web/src/main/webapp/WEB-INF/pages.xml index 9079472..9abe5a3 100644 --- a/web/src/main/webapp/WEB-INF/pages.xml +++ b/web/src/main/webapp/WEB-INF/pages.xml @@ -16,9 +16,6 @@ - - - diff --git a/web/src/main/webapp/browse_studies.xhtml b/web/src/main/webapp/browse_studies.xhtml index 1fd25ff..0cc2be8 100644 --- a/web/src/main/webapp/browse_studies.xhtml +++ b/web/src/main/webapp/browse_studies.xhtml @@ -147,25 +147,25 @@ rows="15" rowClasses="even" cellpadding="0" cellspacing="0" style="table-layout:fixed; vertical-align:top;" - var="bean" + var="assayGroup" value="#{browseStudyBeanModel.itemList}"> - - #{bean.acc}View record + + #{assayGroup.acc}View record

- +
- + @@ -174,7 +174,7 @@
+ value="#{assayGroup.assayBeans}" var="assayBean"> diff --git a/web/src/main/webapp/compound_view.xhtml b/web/src/main/webapp/compound_view.xhtml deleted file mode 100644 index 4f2e43b..0000000 --- a/web/src/main/webapp/compound_view.xhtml +++ /dev/null @@ -1,85 +0,0 @@ - - - - -
- - -
- - -
- ${taxonImage.altTag} -
- - -
- - ${taxonImage.altTag} - - - -
- -
- - -
-

alt="${taxonImage.altTag}"

-
- -
-
-
- -
-
-
- Content... -
-
-
- - - -
-
\ No newline at end of file diff --git a/web/src/main/webapp/study.xhtml b/web/src/main/webapp/study.xhtml index 207e3af..5d2aef0 100644 --- a/web/src/main/webapp/study.xhtml +++ b/web/src/main/webapp/study.xhtml @@ -268,7 +268,7 @@ - +
@@ -280,30 +280,30 @@ - + - +
#{bean.getDisplayLabel()} + class="subtable_title">#{assayGroup.getDisplayLabel()}
#{bean.platform}#{assayGroup.platform}
#{bean.count} assays#{assayGroup.count} assays
- +
+ rendered="#{sourceURLResolver.hasRawData(assayGroup.endPoint, assayGroup.technology, dataLink)}">
Raw Data Raw Data @@ -314,10 +314,10 @@
+ rendered="#{sourceURLResolver.hasProcessedData(assayGroup.endPoint, assayGroup.technology, dataLink)}">
Processed Data Processed Data @@ -330,9 +330,9 @@
+ rendered="#{sourceURLResolver.hasWebEntry(assayGroup.endPoint, assayGroup.technology, dataLink)}">
#{dataLink.acc}