uk.ac.ebi.ep.mm
Class MegaLuceneMapper

java.lang.Object
  extended by uk.ac.ebi.ep.mm.MegaLuceneMapper
All Implemented Interfaces:
MegaMapper

public class MegaLuceneMapper
extends Object
implements MegaMapper

Mega-mapper writing/reading to/from a lucene index.
Use MegaDbMapper if possible, as a Lucene index does store information horizontally.

Author:
rafa

Nested Class Summary
 
Nested classes/interfaces inherited from interface uk.ac.ebi.ep.mm.MegaMapper
MegaMapper.Constraint
 
Constructor Summary
MegaLuceneMapper(String luceneIndexDir)
           
 
Method Summary
 void closeMap()
          Closes the mega-map.
 void commit()
          Commits any pending changes to the underlying mega-map.
protected  void finalize()
           
 List<String> getAllUniProtAccessions(MmDatabase database)
           
 List<XRef> getChMBLXrefs(MmDatabase db, String accession, MmDatabase... xDb)
          Retrieves cross references from the mega-map for a given accession where database name is CheMBL.
 Map<?,?> getCompounds(MmDatabase db, String accession, MmDatabase... xDbs)
           
 Map<String,String> getDisease(MmDatabase db, String accessions, MmDatabase... xDbs)
           
 Entry getEntryForAccession(MmDatabase db, String accession)
          Retrieves an entry for a given accession.
protected  File getIndexDir(String luceneIndexDir)
           
 Collection<XRef> getXrefs(Collection<Entry> entries, MmDatabase... db)
          Retrieves cross references from the mega-map for several entries.
 Collection<XRef> getXrefs(Entry entry)
          Retrieves cross references from the mega-map regardless of the referencing/referenced database.
 Collection<XRef> getXrefs(Entry entry, MmDatabase... db)
          Retrieves cross references from the mega-map.
 Collection<XRef> getXrefs(MmDatabase db, String accession)
          Retrieves cross references from the mega-map for a given accession (not ID) regardless of the referencing/referenced database..
 Collection<XRef> getXrefs(MmDatabase db, String idFragment, MegaMapper.Constraint constraint, MmDatabase... xDbs)
          Retrieves cross references from the mega-map for a given text which matches an entry ID, who is related to the given databases.
This method is provided in order to search for UniProt ID prefixes (ex.
 Collection<XRef> getXrefs(MmDatabase db, String idFragment, MegaMapper.Constraint constraint, Relationship relationship)
          Retrieves cross references from the mega-map for a given text which matches an entry ID, who has a given relationship (if any).
This method is provided in order to search for UniProt ID prefixes (ex.
 Collection<XRef> getXrefs(MmDatabase db, String accession, MmDatabase... xDb)
          Retrieves cross references from the mega-map for a given accession (not ID) to/from the given database(s).
 Collection<XRef> getXrefs(MmDatabase db, String accession, Relationship relationship)
          Retrieves cross references from the mega-map for a given accession (not ID) given a concrete relationship.
 int getXrefsSize(MmDatabase db, String accession, MmDatabase... xDb)
          retrieves the total number of Xrefs found for a given accession.
 void handleError()
          Handles any errors which might affect the mega-map.
 void openMap()
          Opens the mega-map for writing.
 void rollback()
          Rolls back any pending changes to the underlying mega-map.
 void write(Collection<Entry> entries, Collection<XRef> rels)
          Writes entries and relationships to the mega-map.
 void writeEntries(Collection<Entry> entries)
           
 void writeEntry(Entry entry)
          Writes one entry to the mega-map.
 void writeXref(XRef relationship)
          Writes one cross-reference to the mega-map.
 void writeXrefs(Collection<XRef> xrefs)
           
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MegaLuceneMapper

public MegaLuceneMapper(String luceneIndexDir)
Method Detail

openMap

public void openMap()
             throws IOException
Description copied from interface: MegaMapper
Opens the mega-map for writing.

Specified by:
openMap in interface MegaMapper
Throws:
IOException

writeEntry

public void writeEntry(Entry entry)
                throws org.apache.lucene.index.CorruptIndexException,
                       IOException
Description copied from interface: MegaMapper
Writes one entry to the mega-map.

Specified by:
writeEntry in interface MegaMapper
Throws:
IOException
org.apache.lucene.index.CorruptIndexException

writeXref

public void writeXref(XRef relationship)
               throws org.apache.lucene.index.CorruptIndexException,
                      IOException
Writes one cross-reference to the mega-map.
Currently, this implementation just adds the entries at both ends of the relationship to the same lucene document.

Specified by:
writeXref in interface MegaMapper
Throws:
IOException
org.apache.lucene.index.CorruptIndexException

write

public void write(Collection<Entry> entries,
                  Collection<XRef> rels)
           throws org.apache.lucene.index.CorruptIndexException,
                  IOException
Description copied from interface: MegaMapper
Writes entries and relationships to the mega-map.

Specified by:
write in interface MegaMapper
Throws:
IOException
org.apache.lucene.index.CorruptIndexException

getXrefs

public Collection<XRef> getXrefs(Entry entry)
Description copied from interface: MegaMapper
Retrieves cross references from the mega-map regardless of the referencing/referenced database.

Specified by:
getXrefs in interface MegaMapper
Parameters:
entry - The entry we want relationships for.
Returns:
a collection of xrefs in the map, regardless of the database. Note that the entry used in the query may be either the origin or the target of an xref.

getXrefs

public Collection<XRef> getXrefs(Entry entry,
                                 MmDatabase... db)
Description copied from interface: MegaMapper
Retrieves cross references from the mega-map.

Specified by:
getXrefs in interface MegaMapper
Parameters:
entry - The entry we want relationships for.
db - The database(s) to which the entry is related.
Returns:
a collection of xrefs in the map. Note that the entry used in the query may be either the origin or the target of an xref.

getXrefs

public Collection<XRef> getXrefs(Collection<Entry> entries,
                                 MmDatabase... db)
Description copied from interface: MegaMapper
Retrieves cross references from the mega-map for several entries.

Specified by:
getXrefs in interface MegaMapper
Parameters:
entries - The entries we want relationships for.
db - The database(s) to which the entries are related.
Returns:
a collection of xrefs in the map. Note that the entries used in the query may be either the origin or the target of an xref.

getXrefs

public Collection<XRef> getXrefs(MmDatabase db,
                                 String accession)
Description copied from interface: MegaMapper
Retrieves cross references from the mega-map for a given accession (not ID) regardless of the referencing/referenced database..

Specified by:
getXrefs in interface MegaMapper
Parameters:
db - the database where the accession is from.
accession - the accession number.
Returns:
a collection of xrefs in the map. Note that the accession used in the query may be either the origin or the target of an xref.

getXrefs

public Collection<XRef> getXrefs(MmDatabase db,
                                 String accession,
                                 MmDatabase... xDb)
Description copied from interface: MegaMapper
Retrieves cross references from the mega-map for a given accession (not ID) to/from the given database(s).

Specified by:
getXrefs in interface MegaMapper
Parameters:
db - the database where the accession is from.
accession - the accession number.
xDb - the referencing/referenced database(s).
Returns:
a collection of xrefs in the map, or null if none found. Note that the accession used in the query may be either the origin or the target of an xref.

handleError

public void handleError()
                 throws IOException
Description copied from interface: MegaMapper
Handles any errors which might affect the mega-map.

Specified by:
handleError in interface MegaMapper
Throws:
IOException

closeMap

public void closeMap()
              throws IOException
Description copied from interface: MegaMapper
Closes the mega-map.

Specified by:
closeMap in interface MegaMapper
Throws:
IOException

getIndexDir

protected File getIndexDir(String luceneIndexDir)
                    throws IOException
Throws:
IOException

finalize

protected void finalize()
                 throws Throwable
Overrides:
finalize in class Object
Throws:
Throwable

getEntryForAccession

public Entry getEntryForAccession(MmDatabase db,
                                  String accession)
Description copied from interface: MegaMapper
Retrieves an entry for a given accession.

Specified by:
getEntryForAccession in interface MegaMapper
Returns:
an Entry, or null if not found.

writeEntries

public void writeEntries(Collection<Entry> entries)
                  throws IOException
Specified by:
writeEntries in interface MegaMapper
Throws:
IOException

writeXrefs

public void writeXrefs(Collection<XRef> xrefs)
                throws IOException
Specified by:
writeXrefs in interface MegaMapper
Throws:
IOException

commit

public void commit()
Description copied from interface: MegaMapper
Commits any pending changes to the underlying mega-map.

Specified by:
commit in interface MegaMapper

rollback

public void rollback()
Description copied from interface: MegaMapper
Rolls back any pending changes to the underlying mega-map.

Specified by:
rollback in interface MegaMapper

getAllUniProtAccessions

public List<String> getAllUniProtAccessions(MmDatabase database)
Specified by:
getAllUniProtAccessions in interface MegaMapper

getChMBLXrefs

public List<XRef> getChMBLXrefs(MmDatabase db,
                                String accession,
                                MmDatabase... xDb)
Description copied from interface: MegaMapper
Retrieves cross references from the mega-map for a given accession where database name is CheMBL. (not ID).

Specified by:
getChMBLXrefs in interface MegaMapper
Parameters:
db - the database where the accession is from.
accession - the accession number.
xDb - the referencing/referenced database(s).
Returns:
a List of xrefs in the map, or null if none found. Note that the accession used in the query may be either the origin or the target of an xref.

getXrefsSize

public int getXrefsSize(MmDatabase db,
                        String accession,
                        MmDatabase... xDb)
Description copied from interface: MegaMapper
retrieves the total number of Xrefs found for a given accession.

Specified by:
getXrefsSize in interface MegaMapper
Parameters:
db - the database where the accession is found
accession - the accession number
xDb - the referencing/referenced database(s).
Returns:
the total number of Xrefs found or 0 if none was found.

getCompounds

public Map<?,?> getCompounds(MmDatabase db,
                             String accession,
                             MmDatabase... xDbs)
Specified by:
getCompounds in interface MegaMapper

getDisease

public Map<String,String> getDisease(MmDatabase db,
                                     String accessions,
                                     MmDatabase... xDbs)
Specified by:
getDisease in interface MegaMapper

getXrefs

public Collection<XRef> getXrefs(MmDatabase db,
                                 String accession,
                                 Relationship relationship)
Description copied from interface: MegaMapper
Retrieves cross references from the mega-map for a given accession (not ID) given a concrete relationship.

Specified by:
getXrefs in interface MegaMapper
Parameters:
db - the database where the accession is from.
accession - the accession number.
relationship - the relationship between the given accession and its cross references.
Returns:
a collection of xrefs in the map, or null if none found. Note that the accession used in the query may be either the origin or the target of an xref.

getXrefs

public Collection<XRef> getXrefs(MmDatabase db,
                                 String idFragment,
                                 MegaMapper.Constraint constraint,
                                 Relationship relationship)
Description copied from interface: MegaMapper
Retrieves cross references from the mega-map for a given text which matches an entry ID, who has a given relationship (if any).
This method is provided in order to search for UniProt ID prefixes (ex. "CFTR_") but can be used for other purposes as well.

Specified by:
getXrefs in interface MegaMapper
Parameters:
db - the Database providing IDs matching idFragment. If null, all databases will be considered.
idFragment - A text which matches entry IDs. Please note that when searching for UniProt ID prefixes it is advisable to include the underscore (_) character, so that "DHSA" won't return xrefs for "DHSA1".
constraint - the constraint to use with the given idFragment.
relationship - The relationship searched, if any (can be null).
Returns:
a collection of xrefs in the map, or null if none found. Note that the entries corresponding to the query may be either the origin or the target of an xref.

getXrefs

public Collection<XRef> getXrefs(MmDatabase db,
                                 String idFragment,
                                 MegaMapper.Constraint constraint,
                                 MmDatabase... xDbs)
Description copied from interface: MegaMapper
Retrieves cross references from the mega-map for a given text which matches an entry ID, who is related to the given databases.
This method is provided in order to search for UniProt ID prefixes (ex. "CFTR_") but can be used for other purposes as well.

Specified by:
getXrefs in interface MegaMapper
Parameters:
db - the Database providing IDs matching idFragment. If null, all databases will be considered.
idFragment - A text which matches entry IDs. Please note that when searching for UniProt ID prefixes it is advisable to include the underscore (_) character, so that "DHSA" won't return xrefs for "DHSA1".
constraint - the constraint to use with the given idFragment.
xDbs - the databases for which we want cross-references to be retrieved.
Returns:
a collection of xrefs in the map, or null if none found. Note that the entries corresponding to the query may be either the origin or the target of an xref.


Copyright © 2012 EMBL-EBI. All Rights Reserved.