Comments (16)
This is now supported, I used the files you provided. There is an example here
Also from the igv.org test app. https://tinyurl.com/22t9mzrp
To highlight eqtls or phenotypes you search from the track gear menu, rather than the top level locus/search box as you do at GTEx. Also, it is assumed you are zoomed into the general region of interest. To see how it works try searching for the following from the "Search for..." menu item from the B Cell eqtl track
- rs5751764
- SMARCB1
You can also right-click on an eqtl and select "highlight associated features". If any tracks are loaded containing the phenotype features they will be highlighted. For an eQTL this is often the gene track. For other types you will need to load a track with the phenotypes if you want to see them. I created a track for the histone peaks from your file to illustrate.
More info will follow on the file format but the files you used will work. You can tabix-index them if you wish, as I did for the examples.
{
type: "qtl",
format: "qtl",
name: "B cell eQTL",
url: "https://igv-genepattern-org.s3.amazonaws.com/test/qtl/B.cell_eQTL.tsv.gz",
indexURL: "https://igv-genepattern-org.s3.amazonaws.com/test/qtl/B.cell_eQTL.tsv.gz.tbi",
visibilityWindow: 4000000
}
from igv.js.
GTEx uses igv.js, so this should be possible. The documentation is the code, my suggestion would be to start with the EQTL track and search for the string "gtex" throughout the code base. The functionality you mention is specific to gtex.
Leave the issue open, when I can find time I will look at generalizing this functionality. I have other priorities at the moment.
from igv.js.
Thank you for your previous response and guidance regarding the use of igv.js for GTEx. I have been exploring the EQTL track functionality as you suggested but have encountered some challenges. Specifically, after changing the track type to "eqtl," the data does not display correctly.
Unfortunately, I was unable to find relevant tutorials or documentation for the eQTL track in the official igv.js resources. Could you kindly provide an example or further guidance on how to properly utilize the eQTL track? This would be incredibly helpful for our implementation.
from igv.js.
Sorry I'm not able to do that, but if you would like to open an issue as a feature request for this functionality please feel free to do so. I would need a good description of what you are trying to achieve, as well as a test data case.
from igv.js.
Thank you for your response. We appreciate your suggestion to open an issue as a feature request. We have already sent test data and a detailed description of our needs via email to [email protected]. If possible, please consider this feature request for future updates. Thank you!
from igv.js.
From private email
Request: Would it be possible to create an xQTL track based on the GWAS track format that includes five columns: CHR, SNP, BP, Phenotype, and P? This track should allow searching and highlighting data points where the Phenotype column matches specified values. We believe this functionality would greatly enhance our ability to analyze various xQTLs directly within IGV.
from igv.js.
Thank you for considering our request.
from igv.js.
Hi, I'm working on this now. Is this format a recognized standard in the field for xQTL data? If not is there a recognized standard? We do not need to use the gwas format if there is a better one.
CHR SNP BP P Phenotype
10 rs146165798 50023438 0.000106 A1CF
10 rs1937725 51879303 0.000485 A1CF
If find a somewhat different format from this resource https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5785926/
sID,chr,pos,A1,A2,ENSG,geneSym,TSS,beta,se,t,p
rs376835509,10,65030,C,A,ENSG00000015171,ZMYND11,180405,1.64981083e-02,7.19706854e-03,2.29233725e+00,2.22757220e-02
from igv.js.
The "Phenotype" field is problematic. For eQTL data we can associate the locus with a gene, as we do for gtex. But there is no way to know from the data in this file if these are gene names. In the hQTL file, for example, it contains the following
H3K27ac(chr10:100005048-100011461)
I am guessing this means that this feature is associated with H3K27ac at the location in the parentheses, but there really isn't much igv.js can do with this information. What were you hoping to implement here?
from igv.js.
Thank you very much for considering this request. Your understanding is correct: in eQTL data, the "Phenotype" typically correlates with specific genes, akin to what you do with the gtex project. However, for other types of xQTL data such as mQTL and hQTL, the "Phenotype" might refer to specific molecular phenotypes affected by SNPs, not just gene names. For instance, mQTLs often relate to changes in DNA methylation patterns, while hQTLs involve specific histone modifications like the H3K27ac mentioned in the file.
In this context, I am hoping to implement a feature in IGV that allows users to search for a specific phenotype (e.g., "H3K27ac(chr10:100005048-100011461)") to highlight and navigate to the corresponding genomic region. This would greatly enhance IGV’s capability, especially in handling and displaying complex xQTL data, providing more direct and detailed biological insights.
Therefore, I would like to inquire if it's possible to add support for the "Phenotype" field in IGV's search functionality, allowing matches based on the values in the Phenotype column to be highlighted. This way, users could quickly locate relevant genomic areas directly through phenotype information.
from igv.js.
For this to work we are going to need a track for the "phenotype", when it is not a gene. We already have a track for genes. So, for example, you might load a BED file track for the histone modifications with entries like this
chr10 100005047 100011461 H3K27ac(chr10:100005048-100011461)
This would enable users to search by the phenotype name. We could generalize the GTEX portal behavior to highlight the phenotype feature and associated xQTLs as GTEX does for genes.
from igv.js.
Thank you very much for considering this request. I will create several sample xQTL test files and then send them to [email protected]
from igv.js.
@yrjia1015 I am making progress on this, I don't need any additional data at this time.
from igv.js.
from igv.js.
Hi,
Thank you for reaching out.
The data we have shared with you (B.cell_eQTL.tsv and Monocyte_hQTL.tsv) is not considered sensitive. We appreciate your efforts in creating public examples for this feature.
from igv.js.
Thank you for the detailed instructions and the example on the igv.org test app. The new search and highlight features are particularly useful.
Thank you again for your support and the valuable enhancements you've implemented.
from igv.js.
Related Issues (20)
- The YC tag in bam does not work and does not display the corresponding color HOT 5
- Docs: Add `compressedIndexURL` and clarify `indexURL` behavior HOT 5
- copy sequence from selected region as in IGV desktop HOT 2
- Issue with Loading Large GWAS Data Track in igv.js HOT 6
- IGV renames "chromosome_1" to "omosome_1" HOT 3
- Add option to display alignments arranged 1 per line
- customize a reference genome
- loadTracks example not working HOT 2
- Make igv.js work with TypeScript: Add TypeScript API description HOT 8
- a lot of tracks are blank at first and only appear when you change the locus. HOT 3
- Sequence Track not using nucleotideColors creation option HOT 2
- IGV in a secondary tab does not show initially HOT 5
- Alignment coverage track base mismatch depth indicator missing HOT 3
- Baseline shift for spliceJunction tracks? HOT 5
- Issue with searching consecutive regions with .search() in same IGV browser since v3.0.0 HOT 3
- ERROR: Cannot read properties of undefined (reading 'table') HOT 5
- VariantTrack header.INFO undefined HOT 1
- Htsget Bam support broken since v2.9.0 HOT 7
- IGVweb not loading GFF compressed and index files when served from a server HOT 13
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from igv.js.