diff --git a/docs/tutorial.rst b/docs/tutorial.rst index e54b558..6ccdf40 100644 --- a/docs/tutorial.rst +++ b/docs/tutorial.rst @@ -27,21 +27,13 @@ explained later on. .. image:: images/options_fig_wm.png -To showcase its functionalities we will load some example data using a dictionary, however Pyranges -includes a series of data loading options like gff, gtf, bam... (take a look at `Pyranges documentation `_ -to know more!). +To showcase its functionalities we will load some example data included in the Pyranges Plot package, +however Pyranges provides a series of data loading options like gff, gtf, bam... (take a look +at `Pyranges documentation `_ to know more!). .. code-block:: - import pyranges as pr - - p = pr.PyRanges({"Chromosome": [1, 1, 2, 2, 2, 2, 2, 3], - "Strand": ["+", "+", "-", "-", "+", "+", "+", "+"], - "Start": [1, 40, 10, 70, 85, 110, 150, 140], - "End": [11, 60, 25, 80, 100, 115, 180, 152], - "transcript_id":["t1", "t1", "t2", "t2", "t3", "t3", "t3", "t4"], - "feature1": ["a", "a", "b", "b", "c", "c", "c", "d"], - "feature2": ["A", "A", "B", "B", "C", "C", "C", "D"]}) + p = prp.example_data.p1 print(p) .. code-block:: @@ -207,25 +199,11 @@ values are accepted. .. code-block:: # Store data - p_ala = pr.PyRanges({ - "Start": [10, 50, 90] + [13, 60, 72, 120], - "End": [20, 75, 130] + [16, 63, 75, 123], - "Chromosome": [1]*7, - "id": ["gene1"]*7, - "trait1": ["exon"]*3 + ["aa"]*4 , - "trait2": ["gene_1"]*3 + ["Ala"]*4, - "depth": [0]*3 + [1]*4, - }) - - p_cys = pr.PyRanges({ - "Start": [10, 50, 90] + [15, 55, 62, 100, 110], - "End": [20, 75, 130] + [18, 58, 65, 103, 113], - "Chromosome": [1]*8, - "id": ["gene1"]*8, - "trait1": ["exon"]*3 + ["aa"]*5 , - "trait2": ["gene_1"]*3 + ["Cys"]*5, - "depth": [0]*3 + [1]*5, - }) + p_ala = prp.example_data.p_ala + p_cys = prp.example_data.p_cys + + print(p_ala) + print(p_cys) # Plot both PyRanges using depth to differentiate prp.plot( @@ -235,6 +213,38 @@ values are accepted. thickness_col="trait1", ) +.. code-block:: + + index | Start End Chromosome id trait1 trait2 depth + int64 | int64 int64 int64 object object object int64 + ------- --- ------- ------- ------------ -------- -------- -------- ------- + 0 | 10 20 1 gene1 exon gene_1 0 + 1 | 50 75 1 gene1 exon gene_1 0 + 2 | 90 130 1 gene1 exon gene_1 0 + 3 | 13 16 1 gene1 aa Ala 1 + 4 | 60 63 1 gene1 aa Ala 1 + 5 | 72 75 1 gene1 aa Ala 1 + 6 | 120 123 1 gene1 aa Ala 1 + PyRanges with 7 rows, 7 columns, and 1 index columns. + Contains 1 chromosomes. + + index | Start End Chromosome id trait1 trait2 depth + int64 | int64 int64 int64 object object object int64 + ------- --- ------- ------- ------------ -------- -------- -------- ------- + 0 | 10 20 1 gene1 exon gene_1 0 + 1 | 50 75 1 gene1 exon gene_1 0 + 2 | 90 130 1 gene1 exon gene_1 0 + 3 | 15 18 1 gene1 aa Cys 1 + 4 | 55 58 1 gene1 aa Cys 1 + 5 | 62 65 1 gene1 aa Cys 1 + 6 | 100 103 1 gene1 aa Cys 1 + 7 | 110 113 1 gene1 aa Cys 1 + PyRanges with 8 rows, 7 columns, and 1 index columns. + Contains 1 chromosomes. + + + + .. image:: images/prp_rtd_11.png Another way to highligh these overlapping regions playing with colors and depth.This time the @@ -267,20 +277,31 @@ the "Feature" column of the data. A usage example is: .. code-block:: - pp = pr.PyRanges({ - "Chromosome": [1, 1, 2, 2, 2, 2, 2, 3, 4, 4, 4, 4, 4, 4], - "Strand": ["+", "+", "-", "-", "+", "+", "+", "+", "-", "-", "-", "-", "+", "+"], - "Start": [1, 40, 10, 70, 85, 110, 150, 140, 30100, 30150, 30500, 30647, 29850, 29970], - "End": [11, 60, 25, 80, 100, 115, 180, 152, 30300, 30300, 30700, 30700, 29900, 30000], - "transcript_id": ["t1", "t1", "t2", "t2", "t3", "t3", "t3", "t4", "t5", "t5", "t5", "t5", "t6", "t6"], - "feature1": ["1", "1", "1", "1", "1", "2", "2", "2", "2", "2", "2", "2", "2", "2"], - "feature2": ["A", "A", "B", "B", "C", "C", "C", "D", "E", "E", "E", "E", "F", "F"], - "Feature": ["exon", "exon", "CDS", "CDS", "CDS", "CDS", "CDS", "exon", "exon", "CDS", "CDS", "exon", "CDS", "CDS"] + pp = prp.example_data.p2 - }) + print(pp) prp.plot(pp, thick_cds=True) +.. code-block:: + + index | Chromosome Strand Start End transcript_id feature1 feature2 Feature + int64 | int64 object int64 int64 object object object object + ------- --- ------------ -------- ------- ------- --------------- ---------- ---------- --------- + 0 | 1 + 1 11 t1 1 A exon + 1 | 1 + 40 60 t1 1 A exon + 2 | 2 - 10 25 t2 1 B CDS + 3 | 2 - 70 80 t2 1 B CDS + ... | ... ... ... ... ... ... ... ... + 10 | 4 - 30500 30700 t5 2 E CDS + 11 | 4 - 30647 30700 t5 2 E exon + 12 | 4 + 29850 29900 t6 2 F CDS + 13 | 4 + 29970 30000 t6 2 F CDS + PyRanges with 14 rows, 8 columns, and 1 index columns. + Contains 4 chromosomes and 2 strands. + + + .. image:: images/prp_rtd_12.png @@ -296,17 +317,31 @@ coordinate range, while when an int is given it will be interpreted as number of .. code-block:: - ppp = pr.PyRanges({'Chromosome': ['1'] * 10 + ['2'] * 10, - 'Strand': ['+', '+', '+', '+', '-', '-', '-', '-', '+', '+'] + ["+", "+", "+", "+", "-", "-", "-", "-", "+", "+"], - 'Start': [90, 61, 104, 228, 9, 142, 52, 149, 218, 151] + [5, 27, 37, 47, 1, 7, 42, 37, 60, 80], - 'End': [92, 64, 113, 229, 12, 147, 57, 155, 224, 153] + [8, 32, 40, 50, 5, 10, 46, 40, 70, 90], - 'transcript_id': ['t1', 't1', 't1', 't1', 't2', 't2', 't2', 't2', 't3', 't3'] + ["t4", "t4", "t4", "t4", "t5", "t5", "t5", "t5", "t6", "t6"], - 'Feature': ["exon"] * 20 - }) + ppp = prp.example_data.p3 + + print(ppp) prp.plot(ppp, shrink=True) prp.plot(ppp, shrink=True, shrink_threshold=0.2) +.. code-block:: + + index | Chromosome Strand Start End transcript_id + int64 | object object int64 int64 object + ------- --- ------------ -------- ------- ------- --------------- + 0 | 1 + 90 92 t1 + 1 | 1 + 61 64 t1 + 2 | 1 + 104 113 t1 + 3 | 1 + 228 229 t1 + ... | ... ... ... ... ... + 16 | 2 - 42 46 t5 + 17 | 2 - 37 40 t5 + 18 | 2 + 60 70 t6 + 19 | 2 + 80 90 t6 + PyRanges with 20 rows, 5 columns, and 1 index columns. + Contains 2 chromosomes and 2 strands. + + .. image:: images/prp_rtd_13.png .. image:: images/prp_rtd_14.png diff --git a/src/pyranges_plot/__init__.py b/src/pyranges_plot/__init__.py index 72c885b..77dc593 100644 --- a/src/pyranges_plot/__init__.py +++ b/src/pyranges_plot/__init__.py @@ -13,3 +13,4 @@ ) from .plot_main import plot # noqa: F401 from .pr_register_plot import register_plot # noqa: F401 +from .example_data import p1, p2, p3, p_ala, p_cys # noqa: F401