Skip to content
Snippets Groups Projects
Commit e5471855 authored by tjc's avatar tjc
Browse files

allow for SP type change in bcftoools

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@16072 ee4ac58c-ac51-4696-9907-e4b3aa274f04
parent 2d9f0c0c
No related branches found
No related tags found
No related merge requests found
...@@ -49,6 +49,8 @@ class BCFReader extends AbstractVCFReader ...@@ -49,6 +49,8 @@ class BCFReader extends AbstractVCFReader
private int nsamples; private int nsamples;
private String metaData; private String metaData;
private String fileName; private String fileName;
private boolean longSP = true;
private static org.apache.log4j.Logger logger4j = private static org.apache.log4j.Logger logger4j =
org.apache.log4j.Logger.getLogger(BCFReader.class); org.apache.log4j.Logger.getLogger(BCFReader.class);
...@@ -106,7 +108,14 @@ class BCFReader extends AbstractVCFReader ...@@ -106,7 +108,14 @@ class BCFReader extends AbstractVCFReader
if(bcfRecord.getPos() >= beg && bcfRecord.getPos() <= end) if(bcfRecord.getPos() >= beg && bcfRecord.getPos() <= end)
return bcfRecord; return bcfRecord;
} }
} }
catch(ArrayIndexOutOfBoundsException ae)
{
if(longSP)
longSP = false;
else
throw ae;
}
catch(Exception e) catch(Exception e)
{ {
if(is.read() != -1) // eof if(is.read() != -1) // eof
...@@ -213,7 +222,7 @@ class BCFReader extends AbstractVCFReader ...@@ -213,7 +222,7 @@ class BCFReader extends AbstractVCFReader
int n_alleles = bcfRecord.getAlt().getNumAlleles(); int n_alleles = bcfRecord.getAlt().getNumAlleles();
int nc = (int) (n_alleles * ((float)(((float)n_alleles+1.f)/2.f))); int nc = (int) (n_alleles * ((float)(((float)n_alleles+1.f)/2.f)));
if(bcfRecord.getAlt().isNonVariant()) if(bcfRecord.getAlt().isNonVariant() && bcfRecord.getAlt().equals("."))
nc = 1; nc = 1;
String fmts[] = VCFRecord.COLON_PATTERN.split( bcfRecord.getFormat() ); String fmts[] = VCFRecord.COLON_PATTERN.split( bcfRecord.getFormat() );
...@@ -325,7 +334,12 @@ class BCFReader extends AbstractVCFReader ...@@ -325,7 +334,12 @@ class BCFReader extends AbstractVCFReader
else if(tag.equals("PL")) // Phred-scaled likelihood else if(tag.equals("PL")) // Phred-scaled likelihood
return nsamples*nc; // uint8_t[n*x] return nsamples*nc; // uint8_t[n*x]
else if(tag.equals("SP")) // else if(tag.equals("SP")) //
return nsamples; // uint8_t[n] {
if(longSP) // type changed in bcftools
return 4*nsamples; // uint32_t[n]
else
return nsamples; // uint8_t[n]
}
else // misc else // misc
return 4*nsamples; // uint32_t+char* return 4*nsamples; // uint32_t+char*
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment