Skip to content

Commit 7d1c5ae

Browse files
committed
Add ability to give local alias to genome sequences
1 parent 55c2247 commit 7d1c5ae

File tree

6 files changed

+45
-1
lines changed

6 files changed

+45
-1
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ALTER TABLE sequenceanalysis.reference_library_members ADD alias VARCHAR(4000);
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ALTER TABLE sequenceanalysis.reference_library_members ADD alias VARCHAR(4000);

SequenceAnalysis/resources/schemas/sequenceanalysis.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2234,6 +2234,9 @@
22342234
<fkColumnName>rowid</fkColumnName>
22352235
</fk>
22362236
</column>
2237+
<column columnName="alias">
2238+
<description>Optional. Can be used to give the sequence a local name</description>
2239+
</column>
22372240
<column columnName="start">
22382241
<description>Optional. Can be used in conjunction with stop to select a subsequence of the reference. If blank the region will begin at the first base of the reference</description>
22392242
</column>

SequenceAnalysis/src/org/labkey/sequenceanalysis/SequenceAnalysisModule.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ public String getName()
178178
@Override
179179
public Double getSchemaVersion()
180180
{
181-
return 12.324;
181+
return 12.325;
182182
}
183183

184184
@Override

SequenceAnalysis/src/org/labkey/sequenceanalysis/pipeline/ImportGenomeTrackTask.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,8 @@ private Map<String, Pair<String, Integer>> getNameTranslationMap(List<RefNtSeque
357357

358358
getJob().getLogger().info("building list of chromosome name translations");
359359
Map<String, Pair<String, Integer>> ret = new CaseInsensitiveHashMap<>();
360+
361+
TableInfo rlm = SequenceAnalysisSchema.getTable(SequenceAnalysisSchema.TABLE_REF_LIBRARY_MEMBERS);
360362
for (RefNtSequenceModel m : refNtSequenceModels)
361363
{
362364
if (m.getOffsetsFile() != null && m.getOffsetsFile().exists())
@@ -446,6 +448,18 @@ private Map<String, Pair<String, Integer>> getNameTranslationMap(List<RefNtSeque
446448
String strPart = m.getName().toLowerCase().replaceAll("^chr", "");
447449
ret.put(strPart, Pair.of(m.getName(), 0));
448450
}
451+
452+
SimpleFilter filter = new SimpleFilter(FieldKey.fromString("library_id"), getPipelineJob().getLibraryId());
453+
filter.addCondition(FieldKey.fromString("ref_nt_id"), m.getRowid());
454+
TableSelector ts = new TableSelector(rlm, PageFlowUtil.set("alias"), filter, null);
455+
if (ts.exists())
456+
{
457+
String alias = ts.getObject(String.class);
458+
if (alias != null)
459+
{
460+
ret.put(alias, Pair.of(m.getName(), 0));
461+
}
462+
}
449463
}
450464
}
451465
}

SequenceAnalysis/src/org/labkey/sequenceanalysis/util/ChainFileValidator.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,19 @@
77
import org.junit.Assert;
88
import org.junit.Test;
99
import org.labkey.api.collections.CaseInsensitiveHashMap;
10+
import org.labkey.api.data.CompareType;
1011
import org.labkey.api.data.DbScope;
12+
import org.labkey.api.data.Results;
1113
import org.labkey.api.data.SQLFragment;
1214
import org.labkey.api.data.Selector;
15+
import org.labkey.api.data.SimpleFilter;
1316
import org.labkey.api.data.SqlSelector;
17+
import org.labkey.api.data.TableSelector;
18+
import org.labkey.api.query.FieldKey;
19+
import org.labkey.api.sequenceanalysis.RefNtSequenceModel;
1420
import org.labkey.api.util.FileUtil;
21+
import org.labkey.api.util.PageFlowUtil;
22+
import org.labkey.sequenceanalysis.SequenceAnalysisSchema;
1523

1624
import java.io.BufferedWriter;
1725
import java.io.File;
@@ -301,6 +309,23 @@ public void exec(ResultSet rs) throws SQLException
301309
}
302310
});
303311

312+
SimpleFilter filter = new SimpleFilter(FieldKey.fromString("library_id"), genomeId);
313+
filter.addCondition(FieldKey.fromString("alias"), null, CompareType.NONBLANK);
314+
TableSelector ts = new TableSelector(SequenceAnalysisSchema.getTable(SequenceAnalysisSchema.TABLE_REF_LIBRARY_MEMBERS), PageFlowUtil.set("ref_nt_id", "alias"), filter, null);
315+
if (ts.exists())
316+
{
317+
ts.forEachResults(new Selector.ForEachBlock<Results>()
318+
{
319+
@Override
320+
public void exec(Results rs) throws SQLException
321+
{
322+
String name = RefNtSequenceModel.getForRowId(rs.getInt(FieldKey.fromString("ref_nt_id"))).getName();
323+
String alias = rs.getString(FieldKey.fromString("alias"));
324+
cachedReferences.put(alias, name);
325+
}
326+
});
327+
}
328+
304329
_cachedReferencesByGenome.put(genomeId, cachedReferences);
305330
}
306331

0 commit comments

Comments
 (0)