Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
39725fb
Fix comment
bbimber Jan 25, 2021
ed4935d
Fix markdown syntax
bbimber Jan 25, 2021
5cc59ff
Bugfix TCR import
bbimber Jan 26, 2021
60f7ce1
Bugfix TCR hashing
bbimber Jan 26, 2021
4f0fefb
Allow CDR3s from rows lacking C-Gene
bbimber Jan 27, 2021
79ac3e6
Update field name
bbimber Jan 28, 2021
539a196
Checkpoint for MHC migration code
bbimber Jan 28, 2021
1421514
Add validation
bbimber Jan 29, 2021
29cdf6d
Convert MHC migration code to a pipeline job
bbimber Jan 29, 2021
1581941
Store barcodes as list to enforce uniqueness
bbimber Jan 29, 2021
ae386b5
Include default cite-seq-count params for CiteSeq handler
bbimber Jan 31, 2021
67f89f6
Add default trigger scripts
bbimber Feb 1, 2021
5a55983
Dont enforce calling methods for cite-seq only
bbimber Feb 4, 2021
c17cbfc
Update reference study
bbimber Feb 4, 2021
b18d2a1
Add stubs of various files for MCC
bbimber Feb 4, 2021
c3cf85e
Add release notes page
bbimber Feb 4, 2021
8ca15ee
Add more WNPRC ETL code
bbimber Feb 5, 2021
a578266
Update ETLs
bbimber Feb 5, 2021
871f4c4
Allow cellranger VDJ to finish when there are no a/b hits
bbimber Feb 7, 2021
daaf73d
Fail more clearly if no cell barcodes found
bbimber Feb 8, 2021
3bf50ba
Refactor citeseq/hashing to use pre-computed count matrix
bbimber Feb 9, 2021
8c41f3f
Prepare MCC examples
bbimber Feb 11, 2021
bfb9005
Fix case in ETL
bbimber Feb 11, 2021
4bfda56
Remove ETL step
bbimber Feb 11, 2021
e68be34
Further simplify hashing params code
bbimber Feb 11, 2021
b4ef0c8
Add alternate keys
bbimber Feb 11, 2021
ed9495b
Add dummy data loading
bbimber Feb 11, 2021
098d19f
Save metadata table from Seurat objects
bbimber Feb 12, 2021
8a6033b
Left align text
bbimber Feb 12, 2021
6b59497
Merge discvr-20.11 to develop
bbimber Feb 12, 2021
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
4 changes: 4 additions & 0 deletions mGAP/resources/folderTypes/mGAP.folderType.xml
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,6 +84,10 @@
<name>mGAP Variant Releases</name>
<location>body</location>
</webPart>
<webPart>
<name>mGAP Release Notes</name>
<location>body</location>
</webPart>
<webPart>
<name>mGAP Gene Search</name>
<location>right</location>
Expand Down
2 changes: 1 addition & 1 deletion mGAP/resources/views/contact.html
Original file line numberDiff line numberDiff line change
Expand Up@@ -49,7 +49,7 @@
success: function(response){
console.log(response);

Ext4.Msg.alert('Success', 'An account has been requested. You should receive a reply shortly.', function(){
Ext4.Msg.alert('Success', 'Your request has been sent. You should receive a reply shortly.', function(){
window.location = LABKEY.ActionURL.getContextPath() + '/';
});
},
Expand Down
12 changes: 12 additions & 0 deletions mGAP/resources/views/releaseNotes.html
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
<h4>Release 2.0:</h4>
<ul>
<li>Substantial revamp of all data. All samples have been realigned to the <a href="https://www.ncbi.nlm.nih.gov/assembly/GCF_003339765.1/">MMul_10 reference genome</a>, followed by our <a href="mgap-dataProcessing.view">standard GenotypeGVCFs pipeline</a>. The MMul_10 is the most complete rhesus macaque assembly to date, and we expect this should improve accuracy of variant calls. Further, because our data are now aligned to the same assembly as NCBI/Ensembl, it should be easier to translate between mGAP and other databases.</li>
<li>Our internal variant calling process has switched to use GATK's GenomicsDB to pre-aggregate data prior to calling with GenotypeGVCFs, as opposed to CombineGVCFs, which was used in prior releases. This should be a purely technical difference with no change in the resulting data</li>
</ul>

<h4>Future Plans:</h4>
<ul>
<li>We expect to upgrade the genome browser to use the redesigned <a href="https://jbrowse.org/jb2/">JBrowse 2</a> browser. This should provide general performance improvements and will make future mGAP-specific customization easier.</li>
<li>We will support other modes of viewing and downloading variant data, in particular tabular views by gene.</li>
<li>We recognize that the mGAP release VCF can be enormous, particularly because of all the site-specific functional annotation. To support different types of users, upcoming releases will include 'slim' versions of the data, which will be downloadable files with certain information removed to save file size.</li>
</ul>
8 changes: 8 additions & 0 deletions mGAP/resources/views/releaseNotes.view.xml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
<view xmlns="http://labkey.org/data/xml/view" title="mGAP Release Notes">
<permissions>
<permission name="read"/>
</permissions>
<dependencies>
<dependency path="ldk.context"/>
</dependencies>
</view>
6 changes: 6 additions & 0 deletions mGAP/resources/views/releaseNotes.webpart.xml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
<webpart xmlns="http://labkey.org/data/xml/webpart" title="mGAP Release Notes">
<view name="releaseNotes"/>
<locations>
<location name="body"/>
</locations>
</webpart>
2 changes: 1 addition & 1 deletion mGAP/resources/views/variants.html
Original file line numberDiff line numberDiff line change
Expand Up@@ -9,7 +9,7 @@
title: 'Variant Catalog Releases',
schemaName: 'mgap',
queryName: 'variantCatalogReleases',
maxRows: 50,
maxRows: 3,
showRecordSelectors: false,
showDetailsColumn: false,
buttonBar: {position: 'none', includeStandardButtons: false, items: []}
Expand Down
4 changes: 2 additions & 2 deletions mGAP/src/org/labkey/mgap/pipeline/mGapReleaseGenerator.java
Original file line numberDiff line numberDiff line change
Expand Up@@ -953,7 +953,7 @@ private void inspectAndSummarizeVcf(JobContext ctx, File vcfInput, GeneToNameTra
File interestingVariantTable = getVariantTableName(ctx, vcfInput);
try (VCFFileReader reader = new VCFFileReader(vcfInput); CloseableIterator<VariantContext> it = reader.iterator(); CSVWriter writer = new CSVWriter(PrintWriters.getPrintWriter(interestingVariantTable), '\t', CSVWriter.NO_QUOTE_CHARACTER))
{
writer.writeNext(new String[]{"Chromosome", "Position", "Reference", "Allele", "Source", "Reason", "Description", "Overlapping Gene(s)", "OMIM Entries", "OMIM Phenotypes", "AF", "CADD_PH"});
writer.writeNext(new String[]{"Chromosome", "Position", "Reference", "Allele", "Source", "Reason", "Description", "Overlapping Gene(s)", "OMIM Entries", "OMIM Phenotypes", "AF", "Identifier", "CADD_PH"});
while (it.hasNext())
{
Set<List<String>> queuedLines = new LinkedHashSet<>();
Expand DownExpand Up@@ -1113,7 +1113,7 @@ private void inspectAndSummarizeVcf(JobContext ctx, File vcfInput, GeneToNameTra
try
{
String allele = clnAlleles.get(i);
maybeWriteVariantLine(queuedLines, vc, allele, "ClinVar", diseaseSplit.get(j), description, overlappingGenes, omims, omimds, ctx.getLogger(), "ClinVar:" + clnAlleleIds.get(j));
maybeWriteVariantLine(queuedLines, vc, allele, "ClinVar", diseaseSplit.get(j), description, overlappingGenes, omims, omimds, ctx.getLogger(), "ClinVar:" + clnAlleleIds.get(i));

}
catch (IndexOutOfBoundsException e)
Expand Down
113 changes: 110 additions & 3 deletions mcc/resources/etls/snprc.xml
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,121 @@
<?xml version="1.0" encoding="UTF-8"?>
<etl xmlns="http://labkey.org/etl/xml">
<name>SNPRC_Data</name>
<!--NOTE: folder is: /Marmoset R24-->
<!--See also: https://github.com/LabKey/snprcEHRModules/blob/develop/snprc_r24/resources/referenceStudy/datasets/datasets_metadata.xml-->
<description>SNPRC Clinical/Demographics Data</description>
<transforms>
<transform type="RemoteQueryTransformStep" id="step1">
<transform type="RemoteQueryTransformStep" id="demographics">
<description>Copy to target</description>
<source remoteSource="snprcEHR" schemaName="study" queryName="R24DemographicsSrc" />
<destination schemaName="study" queryName="Demographics" targetOption="merge"/>
<source remoteSource="SNPRC" schemaName="study" queryName="Demographics">
<sourceColumns>
<column>AnimalId</column>
<column>date</column>
<column>gender</column>
<column>geographic_origin</column>
<column>birth</column>
<column>death</column>
<column>species</column>
<column>objectid</column>
</sourceColumns>
</source>
<destination schemaName="study" queryName="Demographics" targetOption="truncate" bulkLoad="true">
<columnTransforms>
<column source="AnimalId" target="Id"/>
</columnTransforms>
<alternateKeys>
<column name="objectid"/>
</alternateKeys>
</destination>

</transform>

<!--<transform type="RemoteQueryTransformStep" id="parentage">-->
<!--<description>Copy to target</description>-->
<!--<source remoteSource="SNPRC" schemaName="study" queryName="parentage">-->
<!--<sourceColumns>-->
<!--<column>AnimalId</column>-->
<!--<column>date</column>-->
<!--<column>parent</column>-->
<!--<column>relationship</column>-->
<!--<column>method</column>-->
<!--<column>objectid</column>-->
<!--</sourceColumns>-->
<!--</source>-->
<!--<destination schemaName="study" queryName="parentage" targetOption="merge" bulkLoad="true">-->
<!--<columnTransforms>-->
<!--<column source="AnimalId" target="Id"/>-->
<!--</columnTransforms>-->
<!--</destination>-->

<!--</transform>-->

<!--NOTE: restore once we can filter on date is not null-->
<!--<transform type="RemoteQueryTransformStep" id="birth">-->
<!--<description>Copy to target</description>-->
<!--<source remoteSource="SNPRC" schemaName="study" queryName="Demographics">-->
<!--<sourceColumns>-->
<!--<column>AnimalId</column>-->
<!--<column>birth</column>-->
<!--<column>gender</column>-->
<!--<column>species</column>-->
<!--<column>dam</column>-->
<!--<column>sire</column>-->
<!--<column>objectid</column>-->
<!--</sourceColumns>-->
<!--</source>-->
<!--<destination schemaName="study" queryName="birth" targetOption="truncate" bulkLoad="true">-->
<!--<columnTransforms>-->
<!--<column source="AnimalId" target="Id"/>-->
<!--<column source="birth" target="date" />-->
<!--</columnTransforms>-->
<!--</destination>-->

<!--</transform>-->

<transform type="RemoteQueryTransformStep" id="weight">
<description>Copy to target</description>
<source remoteSource="SNPRC" schemaName="study" queryName="weight">
<sourceColumns>
<column>AnimalId</column>
<column>date</column>
<column>weight</column>
<column>objectid</column>
</sourceColumns>
</source>
<destination schemaName="study" queryName="weight" targetOption="truncate" bulkLoad="true">
<columnTransforms>
<column source="AnimalId" target="Id"/>
</columnTransforms>
<alternateKeys>
<column name="objectid"/>
</alternateKeys>
</destination>

</transform>

<!--<transform type="RemoteQueryTransformStep" id="deaths">-->
<!--<description>Copy to target</description>-->
<!--<source remoteSource="SNPRC" schemaName="study" queryName="deaths">-->
<!--<sourceColumns>-->
<!--<column>AnimalId</column>-->
<!--<column>date</column>-->
<!--<column>cause</column>-->
<!--<column>objectid</column>-->
<!--</sourceColumns>-->
<!--</source>-->
<!--<destination schemaName="study" queryName="deaths" targetOption="merge" bulkLoad="true">-->
<!--<columnTransforms>-->
<!--<column source="AnimalId" target="Id"/>-->
<!--</columnTransforms>-->
<!--<alternateKeys>-->
<!--<column name="objectid"/>-->
<!--</alternateKeys>-->
<!--</destination>-->

<!--</transform>-->
</transforms>

<incrementalFilter className="ModifiedSinceFilterStrategy" timestampColumnName="modified" />
<schedule>
<!--11PM-->
Expand Down
103 changes: 97 additions & 6 deletions mcc/resources/etls/wnprc.xml
Original file line numberDiff line numberDiff line change
Expand Up@@ -3,17 +3,108 @@
<name>WNPRC_Data</name>
<description>WNPRC Clinical/Demographics Data</description>
<transforms>
<transform type="RemoteQueryTransformStep" id="step1">
<transform type="RemoteQueryTransformStep" id="demographics">
<description>Copy to target</description>
<source remoteSource="wnprcEHR" schemaName="study" queryName="Demographics"/>
<destination schemaName="study" queryName="Demographics" targetOption="merge"/>
<source remoteSource="WNPRC" schemaName="study" queryName="Demographics">
<sourceColumns>
<column>Id</column>
<column>date</column>
<column>gender</column>
<column>geographic_origin</column>
<column>birth</column>
<column>death</column>
<column>species</column>
<column>objectid</column>
</sourceColumns>
</source>
<destination schemaName="study" queryName="Demographics" targetOption="truncate" bulkLoad="true">
<alternateKeys>
<column name="objectid"/>
</alternateKeys>
</destination>

</transform>

<transform type="RemoteQueryTransformStep" id="parentage">
<description>Copy to target</description>
<source remoteSource="WNPRC" schemaName="study" queryName="parentage">
<sourceColumns>
<column>Id</column>
<column>date</column>
<column>parent</column>
<column>relationship</column>
<column>method</column>
<column>objectid</column>
</sourceColumns>
</source>
<destination schemaName="study" queryName="parentage" targetOption="truncate" bulkLoad="true">
<alternateKeys>
<column name="objectid"/>
</alternateKeys>
</destination>

</transform>

<transform type="RemoteQueryTransformStep" id="birth">
<description>Copy to target</description>
<source remoteSource="WNPRC" schemaName="study" queryName="birth">
<sourceColumns>
<column>Id</column>
<column>date</column>
<column>gender</column>
<column>species</column>
<column>geographic_origin</column>
<column>dam</column>
<column>sire</column>
<column>objectid</column>
</sourceColumns>
</source>
<destination schemaName="study" queryName="birth" targetOption="truncate" bulkLoad="true">
<alternateKeys>
<column name="objectid"/>
</alternateKeys>
</destination>

</transform>

<transform type="RemoteQueryTransformStep" id="weight">
<description>Copy to target</description>
<source remoteSource="WNPRC" schemaName="study" queryName="weight">
<sourceColumns>
<column>Id</column>
<column>date</column>
<column>weight</column>
<column>objectid</column>
</sourceColumns>
</source>
<destination schemaName="study" queryName="weight" targetOption="truncate" bulkLoad="true">
<alternateKeys>
<column name="objectid"/>
</alternateKeys>
</destination>
</transform>

<transform type="RemoteQueryTransformStep" id="deaths">
<description>Copy to target</description>
<source remoteSource="WNPRC" schemaName="study" queryName="deaths">
<sourceColumns>
<column>Id</column>
<column>date</column>
<column>cause</column>
<column>objectid</column>
</sourceColumns>
</source>
<destination schemaName="study" queryName="deaths" targetOption="truncate" bulkLoad="true">
<alternateKeys>
<column name="objectid"/>
</alternateKeys>
</destination>
</transform>
</transforms>
<!--species~eq=Marmoset-->

<incrementalFilter className="ModifiedSinceFilterStrategy" timestampColumnName="modified" />
<schedule>
<!--101PM-->
<cron expression="0 0 20 * * ?"/>
<!--9PM-->
<cron expression="0 0 21 * * ?"/>
</schedule>
</etl>
21 changes: 21 additions & 0 deletions mcc/resources/module.xml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
<module xmlns="http://labkey.org/moduleProperties/xml/">
<properties>
<propertyDescriptor name="MCCContainer">
<canSetPerContainer>false</canSetPerContainer>
<description>This is the path to the container holding the primary MCC Study. Use of slashes is very important - it should be in the format '/myProject/mcc'</description>
<editPermissions>
<permission>ADMIN</permission>
</editPermissions>
</propertyDescriptor>
<propertyDescriptor name="MCCContactUsers">
<canSetPerContainer>false</canSetPerContainer>
<description>This is a comma separated list of LabKey user names of users that should be notified by email when requests are submitted through MCC.</description>
<editPermissions>
<permission>ADMIN</permission>
</editPermissions>
</propertyDescriptor>
</properties>
<clientDependencies>

</clientDependencies>
</module>
14 changes: 14 additions & 0 deletions mcc/resources/queries/study/animalGroupMembership.js
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
/*
* Copyright (c) 2011-2014 LabKey Corporation
*
* Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0
*/

require("ehr/triggers").initScript(this);

function onInit(event, helper){
helper.setScriptOptions({
allowFutureDates: true,
removeTimeFromDate: true
});
}
Loading