use of org.eol.globi.domain.Study in project eol-globi-data by jhpoelen.
the class StudyImporterForDunne method importStudy.
@Override
public void importStudy() throws StudyImporterException {
Study study = createStudy();
try {
LabeledCSVParser nodes = parserFactory.createParser(getNodesResourceName(), CharsetConstant.UTF8);
nodes.changeDelimiter(getDelimiter());
Map<Integer, Taxon> taxonForNode = new HashMap<Integer, Taxon>();
while (nodes.getLine() != null) {
Integer nodeId = getNodeId(nodes);
if (nodeId != null) {
final String tsn = nodes.getValueByLabel("TSN");
taxonForNode.put(nodeId, new TaxonImpl(nodes.getValueByLabel("Name"), TaxonomyProvider.ID_PREFIX_ITIS + tsn));
}
}
LabeledCSVParser links = parserFactory.createParser(getLinksResourceName(), CharsetConstant.UTF8);
links.changeDelimiter(getDelimiter());
while (links.getLine() != null) {
List<Location> locations = new ArrayList<>();
if (getLocation() != null) {
Location loc = nodeFactory.getOrCreateLocation(new LocationImpl(getLocation().getLat(), getLocation().getLng(), null, null));
if (loc != null) {
locations.add(loc);
}
}
for (Location location : locations) {
addLink(study, taxonForNode, links, location);
}
}
} catch (IOException e) {
throw new StudyImporterException("failed to find data file(s)", e);
} catch (NodeFactoryException e) {
throw new StudyImporterException("failed to create nodes", e);
}
}
use of org.eol.globi.domain.Study in project eol-globi-data by jhpoelen.
the class StudyImporterForGoMexSI2 method addReferences.
protected void addReferences(Map<String, Study> referenceIdToStudy) throws StudyImporterException {
String referenceResource = getReferencesResourcePath();
try {
LabeledCSVParser parser = parserFactory.createParser(referenceResource, CharsetConstant.UTF8);
Map<String, String> studyContributorMap = collectContributors(referenceResource, parser);
parser = parserFactory.createParser(referenceResource, CharsetConstant.UTF8);
while (parser.getLine() != null) {
String refId = getMandatoryValue(referenceResource, parser, "DATA_ID");
Study study = referenceIdToStudy.get(refId);
if (study == null) {
addNewStudy(referenceIdToStudy, referenceResource, parser, refId, studyContributorMap.get(refId));
}
}
} catch (IOException e) {
throw new StudyImporterException("failed to open resource [" + referenceResource + "]", e);
}
}
use of org.eol.globi.domain.Study in project eol-globi-data by jhpoelen.
the class StudyImporterForGemina method importStudy.
@Override
public void importStudy() throws StudyImporterException {
String studyResource = "gemina_search_2008-01-03.txt";
try {
String source = "Schriml, L. M., Arze, C., Nadendla, S., Ganapathy, A., Felix, V., Mahurkar, A., … Hall, N. (2009). GeMInA, Genomic Metadata for Infectious Agents, a geospatial surveillance pathogen database. Nucleic Acids Research, 38(Database), D754–D764. doi:10.1093/nar/gkp832";
Study study = nodeFactory.getOrCreateStudy(new StudyImpl(source, source, "doi:10.1093/nar/gkp832", source));
LabeledCSVParser parser = parserFactory.createParser(studyResource, "UTF-8");
parser.changeDelimiter('\t');
String[] line;
while ((line = parser.getLine()) != null) {
if (line.length > 7) {
String pathogenId = parser.getValueByLabel("Pathogen Taxonomy");
String pathogenExternalId = StringUtils.isBlank(pathogenId) ? null : TaxonomyProvider.NCBI.getIdPrefix() + pathogenId;
Specimen pathogen = nodeFactory.createSpecimen(study, new TaxonImpl(parser.getValueByLabel("Pathogen"), pathogenExternalId));
String hostId = line[7];
String hostReservoirExternalId = StringUtils.isBlank(hostId) ? null : TaxonomyProvider.NCBI.getIdPrefix() + hostId;
Specimen host = nodeFactory.createSpecimen(study, new TaxonImpl(parser.getValueByLabel("Host/Reservoir"), hostReservoirExternalId));
pathogen.interactsWith(host, InteractType.PATHOGEN_OF);
}
}
} catch (IOException | NodeFactoryException e) {
throw new StudyImporterException("failed to import [" + studyResource + "]", e);
}
}
use of org.eol.globi.domain.Study in project eol-globi-data by jhpoelen.
the class StudyImporterForGoMexSI2 method importStudy.
@Override
public void importStudy() throws StudyImporterException {
Study study = nodeFactory.getOrCreateStudy(new StudyImpl("GoMexSI", GOMEXI_SOURCE_DESCRIPTION, null, ExternalIdUtil.toCitation("James D. Simons", "<a href=\"http://www.ingentaconnect.com/content/umrsmas/bullmar/2013/00000089/00000001/art00009\">Building a Fisheries Trophic Interaction Database for Management and Modeling Research in the Gulf of Mexico Large Marine Ecosystem.</a>", null)));
final Map<String, Map<String, String>> predatorIdToPredatorNames = new HashMap<String, Map<String, String>>();
final Map<String, List<Map<String, String>>> predatorIdToPreyNames = new HashMap<String, List<Map<String, String>>>();
Map<String, Study> referenceIdToStudy = new HashMap<String, Study>();
addSpecimen(getPredatorResourcePath(), "PRED_", new ParseEventHandler() {
@Override
public void onSpecimen(String predatorUID, Map<String, String> properties) {
predatorIdToPredatorNames.put(predatorUID, properties);
}
});
addSpecimen(getPreyResourcePath(), "PREY_", new ParseEventHandler() {
@Override
public void onSpecimen(String predatorUID, Map<String, String> properties) {
List<Map<String, String>> preyList = predatorIdToPreyNames.get(predatorUID);
if (preyList == null) {
preyList = new ArrayList<Map<String, String>>();
predatorIdToPreyNames.put(predatorUID, preyList);
}
preyList.add(properties);
}
});
addReferences(referenceIdToStudy);
addObservations(predatorIdToPredatorNames, referenceIdToStudy, predatorIdToPreyNames, study);
}
use of org.eol.globi.domain.Study in project eol-globi-data by jhpoelen.
the class StudyImporterForGoMexSI2 method addNewStudy.
private void addNewStudy(Map<String, Study> referenceIdToStudy, String referenceResource, LabeledCSVParser parser, String refId, String contributors) throws StudyImporterException {
Study study;
String refTag = getMandatoryValue(referenceResource, parser, "REF_TAG");
String externalId = getMandatoryValue(referenceResource, parser, "GAME_ID");
String description = getMandatoryValue(referenceResource, parser, "TITLE_REF");
String publicationYear = getMandatoryValue(referenceResource, parser, "YEAR_PUB");
study = nodeFactory.getOrCreateStudy(new StudyImpl(refTag, getSourceCitation(), null, ExternalIdUtil.toCitation(contributors, description, publicationYear)));
if (StringUtils.isNotBlank(externalId)) {
study.setExternalId(ExternalIdUtil.urlForExternalId(TaxonomyProvider.ID_PREFIX_GAME + externalId));
}
referenceIdToStudy.put(refId, study);
}
Aggregations