Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
3fdc46d
Add design spec for internal strain genomic segment record
jbrestel Jul 31, 2026
91c5989
Resolve the ontology-visibility question in the strain segment spec
jbrestel Jul 31, 2026
d33a8f5
Add implementation plan for the strain genomic segment record
jbrestel Jul 31, 2026
a98ddaa
Drop all project scoping from the new strain segment record
jbrestel Jul 31, 2026
84f9735
Sync spec and plan with the shipped StrainSegmentId grammar
jbrestel Jul 31, 2026
37350e5
Add organism-dependent strain vocabulary param for strain segments
jbrestel Jul 31, 2026
fb5666e
Dedupe strain vocabulary on node id and drop the project-restricted o…
jbrestel Jul 31, 2026
b9d7872
Add validating ID query for strain genomic segments
jbrestel Jul 31, 2026
f91996c
Remove the organism param: a sequence ID already determines its organism
jbrestel Jul 31, 2026
dce329e
Drop the organism param from strain segment queries
jbrestel Jul 31, 2026
1fd3f08
Add strain coordinate conversion attribute query
jbrestel Jul 31, 2026
2589a39
Drive strain vocabulary from protocolappnode and clarify query comments
jbrestel Jul 31, 2026
0281aa9
Key strain offsets on the primary key to stop cross-sequence contamin…
jbrestel Jul 31, 2026
b2deb6c
Record the PK-keying and deletion-inversion decisions in the spec
jbrestel Jul 31, 2026
889f023
Make strain-offset derivation duplicate-safe; correct false underscor…
jbrestel Jul 31, 2026
8396af3
Correct the spec's attribute list and the node-count claims
jbrestel Jul 31, 2026
0787ef1
Refuse to mint a primary key for a colon-bearing reference sequence
jbrestel Jul 31, 2026
c062fc5
Add strain segment record class and question, and import the model files
jbrestel Jul 31, 2026
d41cfb6
Fix plan and spec defects that would have broken Tasks 6 and 7
jbrestel Jul 31, 2026
47f9e14
Apply Task 5 review findings to the strain segment record and question
jbrestel Jul 31, 2026
06c656f
Correct comment claims found in the Task 5 re-review
jbrestel Jul 31, 2026
db185b8
Register the BED reporter on the strain segment record class
jbrestel Jul 31, 2026
5431e02
Record that wb model does not compile ApiCommonWebsite/Model
jbrestel Jul 31, 2026
6c0bfd8
Correct the illustrative defline to what DeflineBuilder actually emits
jbrestel Jul 31, 2026
2c60a74
Update the three comments Task 6 falsified
jbrestel Jul 31, 2026
9686013
Record that the dev instance's appDb has no apidb.indel
jbrestel Jul 31, 2026
0b2272b
Record the new appDb, its test cases, and why the first gated rebuild…
jbrestel Aug 1, 2026
59d56ed
Make the DNASeq injector dormant while dnaseq processing is redone
jbrestel Jul 30, 2026
a09d8da
Stop consuming communitycount, which this branch stopped producing
jbrestel Jul 30, 2026
0d24155
Inject the DeRisi time series questions instead of hardcoding them
jbrestel Jul 30, 2026
4656a38
Drop a dataset-specific attribute from a generic compound search
jbrestel Jul 30, 2026
a27fd49
Stop the id-SQL macro from expanding inside a comment
jbrestel Aug 1, 2026
aab2436
Record that apidb.indel.location is the VCF anchor base
jbrestel Aug 1, 2026
acbc27d
Gate strain segments on organism, not exact sequence
jbrestel Aug 1, 2026
707b838
Add the shareable end-to-end test report
jbrestel Aug 1, 2026
f05574e
Drop apidb.indel coordinates from the shareable test report
jbrestel Aug 1, 2026
cf8c49c
Stamp provenance on the strain-segment numbers and correct the wrong …
jbrestel Aug 1, 2026
14d852a
Tighten the shareable test report
jbrestel Aug 1, 2026
1c8cc32
Convert the end-to-end test report to markdown
jbrestel Aug 1, 2026
4265007
Make the strain-segment search multi-strain: one search, N BED lines
jbrestel Aug 1, 2026
fa8fc20
Note that the strain list is a comma-delimited string, not a JSON array
jbrestel Aug 1, 2026
4357458
Show the mito SNP the identity figure refers to
jbrestel Aug 1, 2026
d31885f
Merge branch 'master' into strain-segment-record
bgajria Aug 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
193 changes: 193 additions & 0 deletions Model/lib/dst/microarrayDeRisiTimeSeries.dst
Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@
[templateStart]
name=microarrayDeRisiTimeSeriesFoldChangeQuestion
anchorFile=ApiCommonModel/Model/lib/wdk/model/questions/geneQuestions.xml
prop=datasetName
prop=includeProjects
prop=includeProjectsExcludeEuPathDB
>templateTextStart<

<question name="GenesByMicroarray${datasetName}" includeProjects="${includeProjects}"
displayName="P.falciparum Erythrocytic expression time series (3D7, DD2, HB3) Microarray (fold change)"
shortDisplayName="IDC 48 hr Marray (fc)"
searchCategory="Transcript Expression"
queryRef="GeneId.GenesByGenericFoldChange"
recordClassRef="TranscriptRecordClasses.TranscriptRecordClass">

<paramRef groupRef="paramGroups.dynamicParams" ref="geneParams.profileset_generic" queryRef="GeneVQ.PFTimeSeriesFoldChangeProfileSet"/>
<paramRef groupRef="paramGroups.dynamicParams" ref="geneParams.samples_fc_ref_generic" displayType="treeBox" multiPick="true" queryRef="GeneVQ.PFTimeSeriesSamples" />
<paramRef groupRef="paramGroups.dynamicParams" ref="geneParams.samples_fc_comp_generic" displayType="treeBox" multiPick="true" queryRef="GeneVQ.PFTimeSeriesSamples" />
<paramRef ref="geneParams.hard_floor" groupRef="paramGroups.dynamicParams" default="0"/>
<paramRef groupRef="paramGroups.dynamicParams" ref="geneParams.protein_coding_only" default="yes" visible="true"/>
<paramRef groupRef="paramGroups.dynamicParams" ref="geneParams.fold_change" default="2"/>
<sqlParamValue name="isLogged">1</sqlParamValue>
<attributesList includeProjects="${includeProjectsExcludeEuPathDB}"
summary="organism,gene_product,fold_change_chosen_display,chose_group_two,chose_group_one,exprGraphAttr${datasetName}_expr_graph"
sorting="fold_change_chosen_display desc" />

<attributesList includeProjects="EuPathDB"
summary="organism,gene_product,fold_change_chosen_display,chose_group_two,chose_group_one"
sorting="fold_change_chosen_display desc" />

<summary>
<![CDATA[
Find genes which are differentially expressed in a Microarray experiment.
]]>
</summary>

<description>
<![CDATA[
Find genes which are differentially expressed in a Microarray experiment. First choose an experiment as the available samples may change. If only one "Experiment" is shown, this field will be selected for you.
<br/><br/>
After selecting samples you have the option to take the average, minimum, or maximum expression value within each group. (If choosing only one sample from a group, the selected 'operation' will not affect your results). Time series experiments will offer an extra parameter called "Global min/max" which allows you to filter your results further. Finally, you can choose the directionality and the magnitude of the difference. For example, selecting up-regulated with a fold difference of 2 will only show results where the comparator is twice that of the reference.
<br /><br/>


]]>
</description>

<dynamicAttributes>
<columnAttribute name="fold_change_avg" displayName="Fold Difference (Avg)" align="center">
<reporter name="histogram" displayName="Histogram" scopes=""
implementation="org.gusdb.wdk.model.report.reporter.HistogramAttributeReporter">
<description>Display the histogram of the values of this attribute</description>
<property name="type">int</property>
</reporter>
</columnAttribute>
<columnAttribute name="fold_change_chosen" displayName="Fold Difference" align="center">
<reporter name="histogram" displayName="Histogram" scopes=""
implementation="org.gusdb.wdk.model.report.reporter.HistogramAttributeReporter">
<description>Display the histogram of the values of this attribute</description>
<property name="type">int</property>
</reporter>
</columnAttribute>
<columnAttribute name="fold_change_chosen_display" displayName="Fold Change" align="center" inReportMaker="false" help="* indicates that the chosen reference has been set to 1 to compute the fold change"/>
<columnAttribute name="avg_group_one" displayName="Avg Comp (log2)" align="center">
<reporter name="histogram" displayName="Histogram" scopes=""
implementation="org.gusdb.wdk.model.report.reporter.HistogramAttributeReporter">
<description>Display the histogram of the values of this attribute</description>
<property name="type">int</property>
</reporter>
</columnAttribute>
<columnAttribute name="avg_group_two" displayName="Avg Ref (log2)" align="center">
<reporter name="histogram" displayName="Histogram" scopes=""
implementation="org.gusdb.wdk.model.report.reporter.HistogramAttributeReporter">
<description>Display the histogram of the values of this attribute</description>
<property name="type">int</property>
</reporter>
</columnAttribute>
<columnAttribute name="min_group_one" displayName="Min Comp (log2)" align="center">
<reporter name="histogram" displayName="Histogram" scopes=""
implementation="org.gusdb.wdk.model.report.reporter.HistogramAttributeReporter">
<description>Display the histogram of the values of this attribute</description>
<property name="type">int</property>
</reporter>
</columnAttribute>
<columnAttribute name="min_group_two" displayName="Min Ref (log2)" align="center">
<reporter name="histogram" displayName="Histogram" scopes=""
implementation="org.gusdb.wdk.model.report.reporter.HistogramAttributeReporter">
<description>Display the histogram of the values of this attribute</description>
<property name="type">int</property>
</reporter>
</columnAttribute>
<columnAttribute name="max_group_one" displayName="Max Comp (log2)" align="center">
<reporter name="histogram" displayName="Histogram" scopes=""
implementation="org.gusdb.wdk.model.report.reporter.HistogramAttributeReporter">
<description>Display the histogram of the values of this attribute</description>
<property name="type">int</property>
</reporter>
</columnAttribute>
<columnAttribute name="max_group_two" displayName="Max Ref (log2)" align="center">
<reporter name="histogram" displayName="Histogram" scopes=""
implementation="org.gusdb.wdk.model.report.reporter.HistogramAttributeReporter">
<description>Display the histogram of the values of this attribute</description>
<property name="type">int</property>
</reporter>
</columnAttribute>
<columnAttribute name="chose_group_one" displayName="Chosen Comp (log2)" align="center" help="This number represents the expression value calculated for the 'Comparison Samples' and 'Operation Applied to Comparison Samples' that you chose when setting up the fold change search.">
<reporter name="histogram" displayName="Histogram" scopes=""
implementation="org.gusdb.wdk.model.report.reporter.HistogramAttributeReporter">
<description>Display the histogram of the values of this attribute</description>
<property name="type">int</property>
</reporter>
</columnAttribute>
<columnAttribute name="chose_group_two" displayName="Chosen Ref (log2)" align="center" help="This number represents the expression value calculated for the 'Reference Samples' and 'Operation Applied to Reference Samples' that you chose when setting up the fold change search.">
<reporter name="histogram" displayName="Histogram" scopes=""
implementation="org.gusdb.wdk.model.report.reporter.HistogramAttributeReporter">
<description>Display the histogram of the values of this attribute</description>
<property name="type">int</property>
</reporter>
</columnAttribute>
</dynamicAttributes>

<propertyList name="displayCategory">
<value>fold_change</value>
</propertyList>
</question>
>templateTextEnd<

[templateStart]
name=microarrayDeRisiTimeSeriesPercentileQuestion
anchorFile=ApiCommonModel/Model/lib/wdk/model/questions/geneQuestions.xml
prop=datasetName
prop=includeProjects
prop=includeProjectsExcludeEuPathDB
>templateTextStart<

<question name="GenesByMicroarray${datasetName}Percentile" includeProjects="${includeProjects}"
displayName="P.falciparum Erythrocytic expression time series (3D7, DD2, HB3) Microarray (percentile)"
shortDisplayName="IDC 48 hr Marray (%ile)"
searchCategory="Transcript Expression"
queryRef="GeneId.GenesByGenericPercentile"
recordClassRef="TranscriptRecordClasses.TranscriptRecordClass">

<paramRef ref="geneParams.profileset_generic" queryRef="GeneVQ.PFTimeSeriesFoldChangeProfileSet"/>
<paramRef ref="geneParams.samples_percentile_generic" displayType="treeBox" multiPick="true" queryRef="GeneVQ.PFTimeSeriesSamplesPct" />

<paramRef ref="geneParams.protein_coding_only" default="yes" visible="true"/>

<attributesList includeProjects="${includeProjectsExcludeEuPathDB}"
summary="gene_product,min_percentile_chosen,max_percentile_chosen,pctGraphAttr${datasetName}_pct_graph"
sorting="max_percentile_chosen desc"
/>
<attributesList includeProjects="EuPathDB"
summary="gene_product,min_percentile_chosen,max_percentile_chosen"
sorting="max_percentile_chosen desc"
/>

<summary>
<![CDATA[
Find genes which are expressed in a Microarray experiment.
]]>
</summary>

<description>
<![CDATA[
Find genes which are expressed in a Microarray experiment. For each Experiment and Sample, genes were ranked by expression level. This search enables you to find genes w/in a specified range of values. This search does allow you to search for genes with low levels of expression, however, care should be taken when drawing conclusions because there are many factors which may contribute to a negative result.
<br /><br/>


]]>
</description>

<dynamicAttributes>
<columnAttribute name="min_percentile_chosen" displayName="Min %ile (Within Chosen Samples)" align="center">
<reporter name="histogram" displayName="Histogram" scopes=""
implementation="org.gusdb.wdk.model.report.reporter.HistogramAttributeReporter">
<description>Display the histogram of the values of this attribute</description>
<property name="type">int</property>
</reporter>
</columnAttribute>
<columnAttribute name="max_percentile_chosen" displayName="Max %ile (Within Chosen Samples)" align="center">
<reporter name="histogram" displayName="Histogram" scopes=""
implementation="org.gusdb.wdk.model.report.reporter.HistogramAttributeReporter">
<description>Display the histogram of the values of this attribute</description>
<property name="type">int</property>
</reporter>
</columnAttribute>
</dynamicAttributes>

<propertyList name="displayCategory">
<value>percentile</value>
</propertyList>
</question>
>templateTextEnd<
7 changes: 7 additions & 0 deletions Model/lib/wdk/apiCommonModel.xml
Original file line number Diff line number Diff line change
Expand Up @@ -423,6 +423,13 @@
<import file="model/questions/queries/spanQueries.xml"/>
<import file="model/questions/spanQuestions.xml"/>

<!-- Strain Genomic Segments (reference-coordinate segment -> strain coordinates) -->
<import file="model/records/strainSegmentAttributeQueries.xml"/>
<import file="model/records/strainSegmentRecord.xml"/>
<import file="model/questions/params/strainSegmentParams.xml"/>
<import file="model/questions/queries/strainSegmentQueries.xml"/>
<import file="model/questions/strainSegmentQuestions.xml"/>

<!-- SNPs -->
<!-- UNCOMMENT WHEN SNPS are AVAILABLE
<import file="model/records/snpAttributeQueries.xml"/>
Expand Down
11 changes: 8 additions & 3 deletions Model/lib/wdk/model/questions/compoundQuestions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -273,10 +273,15 @@
<summary>
Find compounds by metabolite levels
</summary>
<attributesList
summary="compound_name,fold_change,one_value,two_value,secondary_ids,metaboliteProfiles_LlinasMetabolites_RSRC_metabolite_graph"
<!-- metaboliteProfiles_LlinasMetabolites_RSRC_metabolite_graph dropped from this
summary: that attribute is injected per metabolomics dataset (metabolomics.dst),
so naming one dataset's copy in a generic search breaks model load wherever that
dataset is not loaded, and shows that one dataset's graph regardless of what the
user searched. -->
<attributesList
summary="compound_name,fold_change,one_value,two_value,secondary_ids"
sorting="fold_change desc"
/>
/>
<description>
<![CDATA[
Find compounds with variation in metabolite levels. Note that when the compound has multiple isotopomers, the metabolite isotopomers levels were summed. <br><br>
Expand Down
Loading