Skip to content

Commit

Permalink
feat: Adding functionality to the complexity command (#4)
Browse files Browse the repository at this point in the history
Co-authored-by: Melissa Gymrek <[email protected]>
Co-authored-by: Melissa Gymrek <[email protected]>
Co-authored-by: Arya Massarat <[email protected]>
  • Loading branch information
4 people authored Sep 26, 2024
1 parent c8bd2f7 commit 4aa3a0b
Show file tree
Hide file tree
Showing 25 changed files with 1,540 additions and 264 deletions.
29 changes: 25 additions & 4 deletions docs/commands/complexity.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,45 @@ complexity

Compute the complexity of a pangenome graph.

The ``complexity`` command outputs a single float to ``stdout``.
The ``complexity`` command outputs a file with complexity metrics for an entire graph or for a specified set of regions from a graph.

If a GFA file is provided, the whole graph is processed.

If a GBZ file is provided, you must specify a region or list of regions to process.

Usage
~~~~~
.. code-block:: bash
panct complexity \
--verbosity [CRITICAL|ERROR|WARNING|INFO|DEBUG|NOTSET] \
GFA
--gfa GFAFILE \
--out OUTFILE
--verbosity [CRITICAL|ERROR|WARNING|INFO|DEBUG|NOTSET]
Examples
~~~~~~~~
.. code-block:: bash
panct complexity tests/data/basic.gfa
panct complexity --gfa tests/data/test.gfa --out test.tab
All files used in these examples are described :doc:`here </project_info/example_files>`.

Additional examples
~~~~~~~~~~~~~~~~~~~

Below are additional examples based on the HPRC .gbz format graph (not included in this repo but available `here <https://github.com/human-pangenomics/hpp_pangenome_resources>`_).

.. code-block:: bash
# Run on a single region
panct complexity --gbz hprc-v1.1-mc-grch38.gbz \
--region chr11:119077050-119178859 --out test.tab \
--metrics sequniq-normwalk,sequniq-normnode
# Run on a file with a list of regions
panct complexity --gbz hprc-v1.1-mc-grch38.gbz \
--region regions.bed --out test.tab \
--metrics sequniq-normwalk,sequniq-normnode
Detailed Usage
~~~~~~~~~~~~~~
Expand Down
22 changes: 22 additions & 0 deletions example-analysis/example.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/bash

# Get complexity for an example region
panct complexity \
--region chr11:119077050-119178859 --out test.tab \
--metrics sequniq-normwalk,sequniq-normnode \
../testdata/hprc-v1.1-mc-grch38.gbz

# Make windows across hg38
bedtools makewindows -g hg38.txt -w 100000 > hg38_windows_100kb.bed

# Get complexity for each window
panct complexity \
--region-file hg38_windows_100kb.bed --out hg38_100kb.tab \
--metrics sequniq-normwalk,sequniq-normnode \
../testdata/hprc-v1.1-mc-grch38.gbz

# Test out for list of GWAS hits
panct complexity \
--region-file trubetskoy_scz_hg38.bed --out hg38_100kb_trubetskoy.tab \
--metrics sequniq-normwalk,sequniq-normnode \
../testdata/hprc-v1.1-mc-grch38.gbz
25 changes: 25 additions & 0 deletions example-analysis/hg38.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
chr1 248956422
chr2 242193529
chr3 198295559
chr4 190214555
chr5 181538259
chr6 170805979
chr7 159345973
chrX 156040895
chr8 145138636
chr9 138394717
chr11 135086622
chr10 133797422
chr12 133275309
chr13 114364328
chr14 107043718
chr15 101991189
chr16 90338345
chr17 83257441
chr18 80373285
chr20 64444167
chr19 58617616
chrY 57227415
chr22 50818468
chr21 46709983
chrM 16569
281 changes: 281 additions & 0 deletions example-analysis/trubetskoy_scz_hg38.bed
Original file line number Diff line number Diff line change
@@ -0,0 +1,281 @@
chr1 2390694 2490694
chr1 6658796 6758796
chr1 8312616 8412616
chr1 28656068 28756068
chr1 29904792 30004792
chr1 35858222 35958222
chr1 43581859 43681859
chr1 60547553 60647553
chr1 65808435 65908435
chr1 71660017 71760017
chr1 73472466 73572466
chr1 83694780 83794780
chr1 95071217 95171217
chr1 96630491 96730491
chr1 97975692 98075692
chr1 147442254 147542216
chr1 150093302 150193132
chr1 153898088 153998088
chr1 173561164 173661164
chr1 177256870 177356870
chr1 200395831 200495831
chr1 200944697 201044697
chr1 226552300 226652300
chr1 238985659 239085659
chr1 243797139 243897139
chr2 8499601 8599601
chr2 22424627 22524627
chr2 27746989 27846989
chr2 37298993 37398993
chr2 57879448 57979448
chr2 60112227 60212227
chr2 60441212 60541212
chr2 72880266 72980266
chr2 73560828 73660828
chr2 76007700 76107700
chr2 97030789 97130789
chr2 104315291 104415291
chr2 134033396 134133396
chr2 144333974 144433974
chr2 145612421 145712421
chr2 155014774 155114774
chr2 155929281 156029281
chr2 161899898 161999898
chr2 172041538 172141721
chr2 174036454 174136454
chr2 184686693 184786693
chr2 193010916 193110916
chr2 197399844 197499844
chr2 199099760 199199760
chr2 199896234 199996234
chr2 224517753 224617753
chr2 228068782 228168782
chr2 232828399 232928399
chr3 2456102 2556102
chr3 17765201 17865201
chr3 30014678 30114678
chr3 36753031 36853031
chr3 45226079 45326079
chr3 52731889 52831889
chr3 63878942 63978942
chr3 80449727 80549727
chr3 107610990 107710990
chr3 136384626 136484626
chr3 162009247 162109247
chr3 177023838 177123838
chr3 180409281 180509281
chr3 180961360 181061360
chr4 662911 762912
chr4 19845085 19945085
chr4 23325498 23425498
chr4 24217999 24317999
chr4 33590992 33690992
chr4 37197362 37297362
chr4 79232847 79332847
chr4 89654947 89754947
chr4 102217552 102317552
chr4 104474048 104574048
chr4 117881831 117981831
chr4 142835070 142935070
chr4 155246326 155346326
chr4 165233337 165333337
chr4 169351161 169451161
chr4 175760250 175860250
chr5 7195551 7295551
chr5 45202398 45302398
chr5 50199235 50299235
chr5 58398961 58498961
chr5 61385631 61485631
chr5 64382139 64482139
chr5 89398733 89498733
chr5 90926380 91026380
chr5 91641479 91741479
chr5 107349789 107449789
chr5 109797640 109897640
chr5 138497009 138597009
chr5 139636403 139736403
chr5 140904367 141004367
chr5 152819522 152919522
chr5 154087341 154187341
chr5 156298065 156398065
chr6 11937848 12037848
chr6 27506090 27606090
chr6 43167995 43267995
chr6 63366275 63466275
chr6 64186418 64286418
chr6 68519919 68619919
chr6 72398224 72498224
chr6 83604846 83704846
chr6 92388623 92488623
chr6 95966184 96066184
chr6 104974445 105074445
chr6 108612324 108712324
chr6 111451486 111551486
chr6 130211862 130311862
chr6 143276528 143376528
chr6 144532381 144632381
chr6 146365272 146465272
chr7 1940231 2040232
chr7 2613182 2713182
chr7 8475394 8575394
chr7 21384992 21484992
chr7 24628350 24728350
chr7 71253731 71353731
chr7 72281013 72381013
chr7 79668885 79768885
chr7 86732905 86832905
chr7 87565644 87665644
chr7 104121724 104221723
chr7 105239803 105339803
chr7 110383698 110483698
chr7 111303455 111403455
chr7 126199609 126299609
chr7 131885088 131985088
chr7 133703379 133803379
chr7 137339794 137439794
chr7 138865234 138965234
chr7 139283563 139383563
chr7 153777030 153877030
chr8 4272568 4372568
chr8 9837140 9937140
chr8 18500348 18600348
chr8 26371657 26471657
chr8 27534610 27634610
chr8 33956043 34056043
chr8 38352915 38452915
chr8 59736236 59836236
chr8 64330638 64430638
chr8 88213003 88313003
chr8 102608852 102708852
chr8 110518341 110618341
chr8 142181572 142281572
chr8 143801283 143909285
chr9 10189181 10289181
chr9 14459107 14559107
chr9 22717165 22817165
chr9 36269931 36369931
chr9 74664641 74764641
chr9 82071388 82171388
chr9 93518217 93618217
chr9 98258205 98358205
chr9 126852860 126952860
chr9 128988245 129088245
chr9 131861161 131961161
chr10 3729369 3829369
chr10 18406176 18506176
chr10 21005844 21105844
chr10 33701365 33801365
chr10 62578606 62678605
chr10 90979731 91079731
chr10 102710520 102810520
chr10 104790585 104890585
chr10 122094041 122194041
chr11 24302999 24402999
chr11 27577033 27677033
chr11 28571014 28671014
chr11 46452463 46552463
chr11 57768190 57868190
chr11 65620874 65720874
chr11 104757143 104857143
chr11 112993958 113093958
chr11 113450036 113550036
chr11 123473928 123573928
chr11 124393006 124493006
chr11 124703596 124803596
chr11 130972000 131072000
chr11 132653495 132753495
chr11 133932789 134032789
chr11 134376490 134476490
chr11 134660697 134760697
chr12 2249028 2349028
chr12 6707661 6807661
chr12 29718510 29818510
chr12 39074491 39174491
chr12 50019542 50119542
chr12 53286380 53386380
chr12 57239173 57339173
chr12 71815041 71915041
chr12 74097115 74197115
chr12 74896622 74996622
chr12 89496725 89596725
chr12 91813042 91913042
chr12 94751517 94851517
chr12 99118884 99218884
chr12 104187774 104287774
chr12 108174853 108274853
chr12 110235440 110335440
chr12 120892741 120992741
chr12 121151854 121251854
chr12 123134688 123234688
chr13 37737607 37837607
chr13 38244041 38344041
chr13 39881945 39981945
chr13 43704868 43804868
chr13 53827489 53927489
chr13 56304562 56404562
chr13 58078612 58178612
chr13 73701362 73801362
chr13 79235321 79335321
chr13 101320297 101420297
chr14 28950167 29050167
chr14 29497833 29597833
chr14 32784334 32884334
chr14 71084362 71184362
chr14 71908188 72008188
chr14 78130996 78230996
chr14 84147944 84247944
chr14 90605973 90705973
chr14 99217047 99317047
chr14 103739232 103839232
chr15 34730206 34830206
chr15 40224558 40324558
chr15 43908115 44008115
chr15 58699813 58799813
chr15 61510533 61610533
chr15 78592209 78692209
chr15 82647545 82747544
chr15 84555000 84655000
chr15 89250719 89350719
chr15 90833330 90933330
chr16 4398485 4498485
chr16 7650857 7750857
chr16 9765266 9865266
chr16 13608499 13708499
chr16 29932365 30032365
chr16 58581485 58681485
chr16 68331072 68431072
chr16 82564909 82664909
chr16 89761567 89861567
chr17 1292148 1392148
chr17 2204480 2304480
chr17 5372867 5472842
chr17 19188913 19288913
chr17 19992506 20092506
chr17 36491033 36590447
chr17 46162466 46262466
chr17 57610379 57710379
chr17 63418418 63518418
chr17 80537803 80637803
chr18 4942677 5042677
chr18 29851722 29951722
chr18 53150189 53250189
chr18 55482886 55582886
chr18 56078283 56178283
chr18 72057043 72157043
chr18 79843508 79943508
chr19 2105137 2205137
chr19 11238696 11338696
chr19 11688921 11788921
chr19 19316175 19416175
chr19 35989660 36089660
chr19 49609652 49709652
chr19 50480986 50580986
chr19 56628350 56728350
chr20 38779366 38879366
chr20 49424242 49524242
chr21 15017644 15117644
chr21 20694184 20794181
chr22 39605161 39705161
chr22 41141552 41241552
chr22 43700399 43800399
chr22 50614663 50714663
Loading

0 comments on commit 4aa3a0b

Please sign in to comment.