package htsjdk.samtools;
import java.io.File;
/**
* @author mccowan
*/
public class SamFiles {
/**
* Finds the index file associated with the provided SAM file. The index file must exist and be reachable to be found.
*
* @return The index for the provided SAM, or null if one was not found.
*/
public static File findIndex(final File samFile) {
// If input is foo.bam, look for foo.bai
File indexFile;
final String fileName = samFile.getName();
if (fileName.endsWith(BamFileIoUtils.BAM_FILE_EXTENSION)) {
final String bai = fileName.substring(0, fileName.length() - BamFileIoUtils.BAM_FILE_EXTENSION.length()) + BAMIndex.BAMIndexSuffix;
indexFile = new File(samFile.getParent(), bai);
if (indexFile.isFile()) {
return indexFile;
}
}
// If foo.bai doesn't exist look for foo.bam.bai
indexFile = new File(samFile.getParent(), samFile.getName() + BAMIndex.BAMIndexSuffix);
if (indexFile.isFile()) {
return indexFile;
} else {
return null;
}
}
}