MoleculeStructureIndex<Long>[] structureIndexes = createMoleculeStructureIndexes(graphNumber);
ReadableIndex<Long> readIndex = new ReadableIndexImpl(structureIndexes);
WritableIndex<Long> writeIndex = new WritableIndexImpl(structureIndexes);
LongIndex[] longIndexes = new LongIndex[]{new LongIndexAdapter(structureIndexes[0]),
new LongIndexAdapter(structureIndexes[1]), new LongIndexAdapter(structureIndexes[2])};
IteratorTrackingCollectionFactory collectionFactory = base.createCollectionFactory(graphNumber);
Graph graph = new OrderedGraphFactoryImpl(longIndexes, nodePool, collectionFactory).getGraph();
final long curMaxMoleculeId = readIndex.getMaxMoleculeId();
Localizer localizer = new LocalizerImpl(nodePool, STRING_MAPPER);
MoleculeLocalizer moleculeLocalizer = new MoleculeLocalizerImpl(localizer, curMaxMoleculeId);
return new MoleculeGraphImpl(writeIndex, readIndex, moleculeLocalizer, graph, nodePool);