@@ -295,7 +295,18 @@ private String resolveSequenceId(String refName, int genomeId)
295295 @ Override
296296 public void exec (ResultSet rs ) throws SQLException
297297 {
298- cachedReferences .put (rs .getString ("name" ), rs .getString ("name" ));
298+ String name = rs .getString ("name" );
299+ cachedReferences .put (name , name );
300+
301+ // Always store the numeric version, if present:
302+ if (name .startsWith ("chr0" ))
303+ {
304+ cachedReferences .put (name .replaceFirst ("chr0" , "" ), name );
305+ }
306+ else if (name .startsWith ("chr" ))
307+ {
308+ cachedReferences .put (name .replaceFirst ("chr" , "" ), name );
309+ }
299310
300311 if (StringUtils .trimToNull (rs .getString ("genbank" )) != null )
301312 {
@@ -338,6 +349,22 @@ public void exec(Results rs) throws SQLException
338349
339350 //UCSC is a main source of chain files, so deal with their quirks:
340351 // https://genome.ucsc.edu/cgi-bin/hgGateway
352+ if (refName .startsWith ("chr0" ))
353+ {
354+ // Allow chr01, chr1 -> 1
355+ String toTest = refName .replaceFirst ("chr0" , "" );
356+ if (cachedReferences .containsKey (toTest ))
357+ {
358+ return cachedReferences .get (toTest );
359+ }
360+
361+ toTest = refName .replaceFirst ("chr0" , "chr" );
362+ if (cachedReferences .containsKey (toTest ))
363+ {
364+ return cachedReferences .get (toTest );
365+ }
366+ }
367+
341368 if (refName .startsWith ("chr" ))
342369 {
343370 String toTest = refName .replaceFirst ("chr" , "" );
0 commit comments