/*
* Copyright 2009-2013 European Molecular Biology Laboratory
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package uk.ac.ebi.fg.annotare2.magetabcheck.efo;
import uk.ac.ebi.fg.annotare2.magetabcheck.model.idf.Term;
/**
* @author Olga Melnichuk
*/
public interface MageTabCheckEfo {
public static final String AE_EXPERIMENT_TYPES = "EFO_0004120";
public static final String ARRAY_ASSAY = "EFO_0002696";
public static final String HTS_ASSAY = "EFO_0002697";
public static final String HTS_EXPERIMENT_TYPES = "EFO_0003740";
public static final String MA_EXPERIMENT_TYPES = "EFO_0002696";
public static final String GROWTH_PROTOCOL = "EFO_0003789";
public static final String TREATMENT_PROTOCOL = "EFO_0003969";
public static final String SAMPLE_COLLECTION_PROTOCOL = "EFO_0005518";
public static final String EXTRACTION_PROTOCOL = "EFO_0002944";
public static final String LIBRARY_CONSTRUCTION_PROTOCOL = "EFO_0004184";
public static final String LABELING_PROTOCOL = "EFO_0003813";
public static final String SEQUENCING_PROTOCOL = "EFO_0004170";
public static final String ARRAY_HYBRIDIZATION_PROTOCOL = "EFO_0003815";
public static final String DATA_TRANSOFRMATION_PROTOCOL = "EFO_0003816";
public static final String BIOLOGICAL_VARIATION_DESINGS = "EFO_0004667";
public static final String METHODOLOGICAL_VARIATION_DESIGNS = "EFO_0004669";
public static final String BIOMOLECULAR_ANNOTATION_DESIGNS = "EFO_0004665";
/**
* Looks through the all descendants of {@value #HTS_EXPERIMENT_TYPES} term and returns
* accession of the term which name equals to the given one.
*
* @param name name of the term to find
* @return term accession or <code>null</code> if term was not found
*/
String findHtsInvestigationType(String name);
/**
* Looks through the all descendants of {@value #MA_EXPERIMENT_TYPES} term and returns
* accession of the term which name equals to the given one.
*
* @param name name of the term to find
* @return term accession or <code>null</code> if term was not found
*/
String findArrayInvestigationType(String name);
/**
* Checks if the given term accession and name correspond to the existing EFO term located in the
* specified branch. At least on of arguments (accession or name) should be not null.
*
* @param term a term from IDF to check
* @param protocolEfoId protocol type in EFO to be matched against
* @return <code>true</code> if
*/
boolean isProtocolType(Term term, String protocolEfoId);
}