platonb / ld-tools Goto Github PK
View Code? Open in Web Editor NEWld-tools: toolkit for linkage disequilibrium calculation designed to work locally
License: GNU General Public License v3.0
ld-tools: toolkit for linkage disequilibrium calculation designed to work locally
License: GNU General Public License v3.0
Сейчас в придачу к LD выводится несколько основополагающих характеристик вариантов. Берутся они из того же источника, что юзается для расчёта LD - 1000 Genomes. Рассматриваю возможность расширять аннотирование, присоединяя другие ресурсы. Явно напрашивается дополнять вывод медицинскими проявлениями. По моему опыту, наилучшее ранжирование пар генотип-фенотип выполняет агрегатор DisGeNET.
Предполагаемая реализация:
Подводные камни:
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
В последней, да и, наверное, во всех версиях ld-tools, есть баг: бэкенд способен отбирать смесь мужских и женских сэмплов, а фронтенды не учитывают, что фазированные генотипы Y-хромосомы могут быть только для носителей этой хромосомы.
I've been trying to run my first test set of data using this tool, but an error showed and no 1000 genome data was downloaded. Here is the code I run on Bash in a Linux system, where [$path] is my real path on the server.
#Establish conda environment and export path
conda create -y --prefix [$path]/miniconda3/envs/ldtools python=3.7
conda activate ldtools
conda install -y -c bioconda pysam=0.15.4
conda install -y -c conda-forge tabulate
conda install -y -c conda-forge plotly
conda install -y -c anaconda numpy
export PATH=[$path]/miniconda3/envs/ldtools/:[$path]/miniconda3/envs/ldtools/bin:[$path]/miniconda3/envs/ldtools/lib/python3.7/site-packages:$PATH
alias python='[$path]/miniconda3/envs/ldtools/bin/python3.7'
#My code to run the ld-tools:
INPUT_DIR=[$path]
G1000Genome=[$path]/Refdata/1000genome/
ldtools=[$path]/ldtools/ld-tools-master/
python $ldtools/ld_triangle.py -S $INPUT_DIR/ -D $G1000Genome -t $INPUT_DIR/ -m 1 -e all -z 0.8 -o table
#My small dataset under $INPUT_DIR/try_data.tsv look like this:
rsID chr Range
rs2252865 chr1 1
rs880315 chr1 1
rs3748817 chr1 1
rs3007421 chr1 1
rs760816 chr1 1
rs2273291 chr1 1
rs17367504 chr1 1
rs709209 chr1 1
rs6685497 chr1 1
rs2843152 chr1 1
And the output looks like this:
samples.txt... OK
conversion.db... OK
samples... OK
urls.txt... OK
id... Traceback (most recent call last):
File "/research/labs/pharmacology/lwrwpharm/m176113/tools/ldtools/ld-tools-master//ld_triangle.py", line 390, in
prep_single_proc = PrepSingleProc(args)
File "/research/labs/pharmacology/lwrwpharm/m176113/tools/ldtools/ld-tools-master//ld_triangle.py", line 31, in init
self.intgen_convdb_path = prep_intgen_data(self.intgen_dir_path)
File "/research/labs/pharmacology/lwrwpharm/m176113/tools/ldtools/ld-tools-master/backend/prep_intgen_data.py", line 183, in prep_intgen_data
cursor.execute('CREATE INDEX IF NOT EXISTS "id" ON variants (ID)')
sqlite3.OperationalError: no such table: main.variants
I could not figure out what is the problem here. Could you please help me with that? Thank you!
Сейчас максимально тёмную окраску из всех возможных в палитре получают клеточки с наибольшим значением LD. Но стоит учитывать, что наибольшее - не значит большое. Получается, что если самая неравновесно сцепленная пара имеет весьма скромное LD, соответствующая клеточка всё равно зальётся почти чёрным.
А психологически мы ожидаем от тёмной ячейки значение, равное, или близкое к 1
.
В документации к plotly
предлагаются параметры zmin
и zmax
, которые должны решить проблему. Но если задействовать аргументы zmin=0
и zmax=1
в тепловой карте с надписями, то значительная часть этих надписей сольётся с заливкой клеточек. Очень надеюсь на скорое исправление этого бага разработчиками plotly
. Однако, если у кого-то из вас уже появилась идея обхода проблемы - пишите.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Сейчас качаются и эксплуатируются 1000 Genomes-данные, которые криво сконвертированы с hg19 на hg38. Из переписки с EBI я выяснил, что в прошлом году у них появились hg38-датасеты, полученные полноценным пайплайном. Но там пока нет rsIDs. Этой проблемой должны были заняться разработчики dbSNP. Короче, надо просто ждать.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Сейчас строятся диаграммы, близкие к пропорциям современного экрана, т.е. прямоугольные. Кому-то это может показаться неэстетично, а кому-то захочется, чтобы было как в LDmatrix. Планирую сделать выбор между прямоугольной и квадратной формами.
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
Полагаю, надо создавать не список словарей, а словарь таковых с rsID-ключами. Это избавит от необходимости использовать for
для доступа к нужному SNP:
if 'rs123' in dct:
do_smth(dct['rs123']['hg38_pos'])
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.