package org.genedb.crawl.dao.backend;
import java.util.ArrayList;
import java.util.List;
import org.genedb.crawl.CrawlException;
import org.genedb.crawl.bam.BioDataFileStoreInitializer;
import org.genedb.crawl.bam.Sam;
import org.genedb.crawl.model.Alignment;
import org.genedb.crawl.model.MappedCoverage;
import org.genedb.crawl.model.MappedQuery;
import org.genedb.crawl.model.MappedSAMHeader;
import org.genedb.crawl.model.MappedSAMSequence;
import org.genedb.crawl.model.Organism;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class SamDAO extends BaseDAO implements org.genedb.crawl.dao.SamDAO {
private Sam sam = new Sam();
@Autowired
public void setBioDataFileStoreInitializer(
BioDataFileStoreInitializer initializer) {
sam.setAlignmentStore(initializer.getAlignments());
}
public MappedSAMHeader header(int fileID)
throws Exception {
return sam.header(fileID);
}
public List<MappedSAMSequence> sequences(int fileID)
throws Exception {
return sam.sequence(fileID);
}
public MappedQuery query(
int fileID,
String sequence,
int start,
int end,
Boolean contained,
int filter,
String[] properties)
throws Exception {
return sam.query(fileID, sequence, start, end, contained, properties,
filter);
}
public synchronized MappedCoverage coverage(
int fileID,
String sequence,
int start,
int end,
int window,
Integer filter)
throws Exception {
return sam.coverage(fileID, sequence, start, end, window, filter);
}
public List<Alignment> list() {
return sam.list();
}
public List<Alignment> listfororganism(String organism) throws CrawlException {
List<Alignment> matchedAlignments = new ArrayList<Alignment>();
Organism mappedOrganism = util.getOrganism(organism);
if (mappedOrganism != null) {
matchedAlignments = sam.listfororganism(mappedOrganism.common_name);
}
return matchedAlignments;
}
public List<Alignment> listforsequence(String sequence) throws Exception {
List<Alignment> matchedAlignments = sam.listforsequence(sequence);
return matchedAlignments;
}
}