{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Bar Chart\n",
"\n",
"Bar chart is the bread and butter of data visualization. You can basically meet 90% of data analytics needs with bar chart.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"::::{grid}\n",
":gutter: 3\n",
"\n",
":::{grid-item-card} Motivation\n",
"Often, online examples have 1 final example with 50-line chart-generating code, which can be daunting for begginers. I aim to to display, incremental, line-by-line additions with the corresponding outputs, which is best for learning.\n",
":::\n",
"\n",
":::{grid-item-card} Approach\n",
"Typically, most data visualization experts usually do it for creating \"dashboard\" output, but for me, data visualization is a mechanism to understand data, and often few of the output ends up becoming useful by chance. \n",
":::\n",
"\n",
"::::\n",
"\n",
"The \"iterative\" development is often unintentionally discouraged given today's \"Scrum\" culture - you need to definite your X and Y before you even get to the data. Data analysis, especially on new data, requires a lot of exploration."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Playground Data\n",
"\n",
"Polars is my favorite dataframe library. There is an interesting open-source effort in biomedical space called OpenTargets.\n",
"\n",
"Downloaded the (tab-separated value) from OpenTargets's `IgA Glomerulonephritis`: https://platform.opentargets.org/disease/EFO_0004194 "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
""
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"
shape: (5, 12)diseaseId | diseaseName | drugId | drugName | type | mechanismOfAction | actionType | symbol | name | phase | status | source |
---|
str | str | str | str | str | str | str | str | str | i64 | str | str |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL429910" | "DAPAGLIFLOZIN" | "Small molecule… | "Sodium/glucose… | "Inhibitor" | "SLC5A2" | "solute carrier… | 4 | "Not yet recrui… | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL1168" | "RAMIPRIL" | "Small molecule… | "Angiotensin-co… | "Inhibitor" | "ACE" | "angiotensin I … | 4 | "Not yet recrui… | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL1535" | "HYDROXYCHLOROQ… | "Small molecule… | "Toll-like rece… | "Antagonist" | "TLR7" | "toll like rece… | 4 | "Completed" | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL1639" | "ALISKIREN" | "Small molecule… | "Renin inhibito… | "Inhibitor" | "REN" | "renin" | 4 | "Completed" | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL4594217" | "CANAGLIFLOZIN" | "Small molecule… | "Sodium/glucose… | "Inhibitor" | "SLC5A2" | "solute carrier… | 4 | "Not yet recrui… | "https://clinic… |
"
],
"text/plain": [
"shape: (5, 12)\n",
"┌────────────┬────────────┬────────────┬───────────┬───┬───────────┬───────┬───────────┬───────────┐\n",
"│ diseaseId ┆ diseaseNam ┆ drugId ┆ drugName ┆ … ┆ name ┆ phase ┆ status ┆ source │\n",
"│ --- ┆ e ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- │\n",
"│ str ┆ --- ┆ str ┆ str ┆ ┆ str ┆ i64 ┆ str ┆ str │\n",
"│ ┆ str ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n",
"╞════════════╪════════════╪════════════╪═══════════╪═══╪═══════════╪═══════╪═══════════╪═══════════╡\n",
"│ EFO_000419 ┆ IGA glomer ┆ CHEMBL4299 ┆ DAPAGLIFL ┆ … ┆ solute ┆ 4 ┆ Not yet ┆ https://c │\n",
"│ 4 ┆ ulonephrit ┆ 10 ┆ OZIN ┆ ┆ carrier ┆ ┆ recruitin ┆ linicaltr │\n",
"│ ┆ is ┆ ┆ ┆ ┆ family 5 ┆ ┆ g ┆ ials.gov/ │\n",
"│ ┆ ┆ ┆ ┆ ┆ member 2 ┆ ┆ ┆ ct2/s… │\n",
"│ EFO_000419 ┆ IGA glomer ┆ CHEMBL1168 ┆ RAMIPRIL ┆ … ┆ angiotens ┆ 4 ┆ Not yet ┆ https://c │\n",
"│ 4 ┆ ulonephrit ┆ ┆ ┆ ┆ in I conv ┆ ┆ recruitin ┆ linicaltr │\n",
"│ ┆ is ┆ ┆ ┆ ┆ erting ┆ ┆ g ┆ ials.gov/ │\n",
"│ ┆ ┆ ┆ ┆ ┆ enzyme ┆ ┆ ┆ ct2/s… │\n",
"│ EFO_000419 ┆ IGA glomer ┆ CHEMBL1535 ┆ HYDROXYCH ┆ … ┆ toll like ┆ 4 ┆ Completed ┆ https://c │\n",
"│ 4 ┆ ulonephrit ┆ ┆ LOROQUINE ┆ ┆ receptor ┆ ┆ ┆ linicaltr │\n",
"│ ┆ is ┆ ┆ ┆ ┆ 7 ┆ ┆ ┆ ials.gov/ │\n",
"│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ct2/s… │\n",
"│ EFO_000419 ┆ IGA glomer ┆ CHEMBL1639 ┆ ALISKIREN ┆ … ┆ renin ┆ 4 ┆ Completed ┆ https://c │\n",
"│ 4 ┆ ulonephrit ┆ ┆ ┆ ┆ ┆ ┆ ┆ linicaltr │\n",
"│ ┆ is ┆ ┆ ┆ ┆ ┆ ┆ ┆ ials.gov/ │\n",
"│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ct2/s… │\n",
"│ EFO_000419 ┆ IGA glomer ┆ CHEMBL4594 ┆ CANAGLIFL ┆ … ┆ solute ┆ 4 ┆ Not yet ┆ https://c │\n",
"│ 4 ┆ ulonephrit ┆ 217 ┆ OZIN ┆ ┆ carrier ┆ ┆ recruitin ┆ linicaltr │\n",
"│ ┆ is ┆ ┆ ┆ ┆ family 5 ┆ ┆ g ┆ ials.gov/ │\n",
"│ ┆ ┆ ┆ ┆ ┆ member 2 ┆ ┆ ┆ ct2/s… │\n",
"└────────────┴────────────┴────────────┴───────────┴───┴───────────┴───────┴───────────┴───────────┘"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import polars as pl\n",
"\n",
"df = pl.read_csv(\"data/EFO_0004194-known-drugs.tsv\", separator=\"\\t\")\n",
"df.head(5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Data Viz as exploratory data analysis"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"\n",
"## Preview the data\n",
"\n",
"For starters, an easy way to explore complex datasets like this is to explore seemingly obvious ones.\n",
"\n",
"The data contains:\n",
"- row-by-row information for disease IgA glomerulonephritis (IgA nephropathy)\n",
"\n",
"## Base Bar Chart\n",
"\n",
"`status` column is relatively understandable, even if you don't come from biomedical background.\n",
"\n",
"Let's start with plotting a count of different `status` counts.\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
""
],
"text/plain": [
"alt.Chart(...)"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import altair as alt\n",
"\n",
"fig = (\n",
" alt.Chart(df).mark_bar().encode(\n",
" x=\"distinct(drugId):Q\",\n",
" y=alt.X(\"status:N\")\n",
" )\n",
")\n",
"\n",
"fig"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Adding a Tooltip"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
""
],
"text/plain": [
"alt.Chart(...)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import altair as alt\n",
"\n",
"fig = (\n",
" alt.Chart(df).mark_bar().encode(\n",
" x=\"distinct(drugId):Q\",\n",
" y=alt.Y(\"status:N\"),\n",
" tooltip=[\n",
" \"distinct(drugId):Q\", \n",
" \"status:N\"\n",
" ]\n",
" )\n",
")\n",
"\n",
"fig"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Reorder Y-axis (status) by x-axis (count)\n",
"\n",
"Altair syntax allows you to sort by another field. In our case, we want to sort by the data result mapped to \"x\" (which is `distinct(drugId)`) but in descending order.\n",
"\n",
"When you start to add in more complex encodings and parameters, you have to start using Altair's object representations such as `alt.X()` or `alt.Color()` rather than the column names themselves (this is a shortcut to an extent)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
""
],
"text/plain": [
"alt.Chart(...)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import altair as alt\n",
"\n",
"fig = (\n",
" alt.Chart(df).mark_bar().encode(\n",
" x=\"distinct(drugId):Q\",\n",
" y=alt.Y(\"status:N\").sort(\"-x\"),\n",
" tooltip=[\n",
" \"distinct(drugId):Q\", \n",
" \"status:N\"\n",
" ]\n",
" )\n",
")\n",
"\n",
"fig"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Add Color encoding"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
""
],
"text/plain": [
"alt.Chart(...)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import altair as alt\n",
"\n",
"fig = (\n",
" alt.Chart(df).mark_bar().encode(\n",
" x=\"distinct(drugId):Q\",\n",
" y=alt.Y(\"status:N\").sort(\"-x\"),\n",
" color=alt.Color(\"status:N\"),\n",
" tooltip=[\n",
" \"distinct(drugId):Q\", \n",
" \"status:N\"\n",
" ]\n",
" )\n",
")\n",
"\n",
"fig"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Remove Unnecesary Titles\n",
"\n",
"Many times, I find titles unnecessary or not-presentation ready. \n",
"\n",
"For such cases, it's very easy to modify encoding channel titles (e.g. axis titles, legend titles) in Altair.\n",
"\n",
"Use `.title()` after each encoding definition."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
""
],
"text/plain": [
"alt.Chart(...)"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import altair as alt\n",
"\n",
"fig = (\n",
" alt.Chart(df).mark_bar().encode(\n",
" x=alt.X(\"distinct(drugId):Q\").title(\"Unique Drugs\"),\n",
" y=alt.Y(\"status:N\").sort(\"-x\").title(\"Status\"),\n",
" color=alt.Color(\"status:N\").title(None),\n",
" tooltip=[\n",
" \"distinct(drugId):Q\", \n",
" \"status:N\"\n",
" ]\n",
" )\n",
")\n",
"\n",
"fig"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
""
],
"text/plain": [
"alt.Chart(...)"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import altair as alt\n",
"\n",
"fig = (\n",
" alt.Chart(df).mark_bar().encode(\n",
" x=alt.X(\"distinct(drugId):Q\").title(\"Unique Drugs\"),\n",
" y=alt.Y(\"status:N\").sort(\"-x\").title(\"Status\"),\n",
" color=alt.Color(\"status:N\").title(None),\n",
" tooltip=[\n",
" \"distinct(drugId):Q\", \n",
" \"status:N\"\n",
" ]\n",
" )\n",
").properties(\n",
" title=\"Drug Trials for IgA Nephropathy\",\n",
")\n",
"\n",
"fig"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"\n",
""
],
"text/plain": [
"alt.Chart(...)"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"alt.Chart(df).mark_bar().encode(\n",
" x=alt.X(\"distinct(drugId):Q\").title(\"Unique Drugs\"),\n",
" y=alt.Y(\"mechanismOfAction:N\").sort(\"-x\").title(\"Status\"),\n",
" tooltip=[\n",
" \"distinct(drugId):Q\", \n",
" \"mechanismOfAction:N\"\n",
" ]\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"
shape: (86, 12)diseaseId | diseaseName | drugId | drugName | type | mechanismOfAction | actionType | symbol | name | phase | status | source |
---|
str | str | str | str | str | str | str | str | str | i64 | str | str |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL429910" | "DAPAGLIFLOZIN" | "Small molecule… | "Sodium/glucose… | "Inhibitor" | "SLC5A2" | "solute carrier… | 4 | "Not yet recrui… | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL1168" | "RAMIPRIL" | "Small molecule… | "Angiotensin-co… | "Inhibitor" | "ACE" | "angiotensin I … | 4 | "Not yet recrui… | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL1535" | "HYDROXYCHLOROQ… | "Small molecule… | "Toll-like rece… | "Antagonist" | "TLR7" | "toll like rece… | 4 | "Completed" | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL1639" | "ALISKIREN" | "Small molecule… | "Renin inhibito… | "Inhibitor" | "REN" | "renin" | 4 | "Completed" | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL4594217" | "CANAGLIFLOZIN" | "Small molecule… | "Sodium/glucose… | "Inhibitor" | "SLC5A2" | "solute carrier… | 4 | "Not yet recrui… | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL1535" | "HYDROXYCHLOROQ… | "Small molecule… | "Toll-like rece… | "Antagonist" | "TLR9" | "toll like rece… | 4 | "Completed" | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL578" | "ENALAPRIL" | "Small molecule… | "Angiotensin-co… | "Inhibitor" | "ACE" | "angiotensin I … | 4 | "Completed" | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL1456" | "MYCOPHENOLATE … | "Small molecule… | "Inosine-5'-mon… | "Inhibitor" | "IMPDH1" | "inosine monoph… | 4 | "Unknown status… | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL1069" | "VALSARTAN" | "Small molecule… | "Type-1 angiote… | "Antagonist" | "AGTR1" | "angiotensin II… | 4 | "Unknown status… | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL1690" | "HYDROXYCHLOROQ… | "Small molecule… | "Toll-like rece… | "Antagonist" | "TLR7" | "toll like rece… | 4 | "Completed" | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL1535" | "HYDROXYCHLOROQ… | "Small molecule… | "Toll-like rece… | "Antagonist" | "TLR9" | "toll like rece… | 4 | "Unknown status… | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL608" | "PROBUCOL" | "Small molecule… | "ATP-binding ca… | "Inhibitor" | "ABCA1" | "ATP binding ca… | 4 | "Completed" | "https://clinic… |
… | … | … | … | … | … | … | … | … | … | … | … |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL4594460" | "AT-1501" | "Unknown" | "CD40 ligand in… | "Inhibitor" | "CD40LG" | "CD40 ligand" | 2 | "Recruiting" | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL1742986" | "ATACICEPT" | "Protein" | "Tumor necrosis… | "Inhibitor" | "TNFSF13" | "TNF superfamil… | 2 | "Active, not re… | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL4594614" | "SIBEPRENLIMAB" | "Antibody" | "Tumor necrosis… | "Inhibitor" | "TNFSF13" | "TNF superfamil… | 2 | "Active, not re… | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL4594579" | "FELZARTAMAB" | "Antibody" | "Lymphocyte dif… | "Inhibitor" | "CD38" | "CD38 molecule" | 2 | "Recruiting" | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL1487" | "ATORVASTATIN" | "Small molecule… | "HMG-CoA reduct… | "Inhibitor" | "HMGCR" | "3-hydroxy-3-me… | 2 | "Completed" | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL3989871" | "AVACOPAN" | "Small molecule… | "C5a anaphylato… | "Antagonist" | "C5AR1" | "complement C5a… | 2 | "Completed" | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL1370" | "BUDESONIDE" | "Small molecule… | "Glucocorticoid… | "Agonist" | "NR3C1" | "nuclear recept… | 2 | "Completed" | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL2103830" | "FOSTAMATINIB" | "Small molecule… | "Tyrosine-prote… | "Inhibitor" | "SYK" | "spleen associa… | 2 | "Completed" | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL578" | "ENALAPRIL" | "Small molecule… | "Angiotensin-co… | "Inhibitor" | "ACE" | "angiotensin I … | 2 | "Completed" | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL3989516" | "FOSTAMATINIB D… | "Small molecule… | "Tyrosine-prote… | "Inhibitor" | "SYK" | "spleen associa… | 2 | "Withdrawn" | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL4297722" | "CEMDISIRAN" | "Oligonucleotid… | "Complement C5 … | "Rnai inhibitor… | "C5" | "complement C5" | 2 | "Active, not re… | "https://clinic… |
"EFO_0004194" | "IGA glomerulon… | "CHEMBL4594614" | "SIBEPRENLIMAB" | "Antibody" | "Tumor necrosis… | "Inhibitor" | "TNFSF13" | "TNF superfamil… | 1 | "Completed" | "https://clinic… |
"
],
"text/plain": [
"shape: (86, 12)\n",
"┌────────────┬────────────┬────────────┬───────────┬───┬───────────┬───────┬───────────┬───────────┐\n",
"│ diseaseId ┆ diseaseNam ┆ drugId ┆ drugName ┆ … ┆ name ┆ phase ┆ status ┆ source │\n",
"│ --- ┆ e ┆ --- ┆ --- ┆ ┆ --- ┆ --- ┆ --- ┆ --- │\n",
"│ str ┆ --- ┆ str ┆ str ┆ ┆ str ┆ i64 ┆ str ┆ str │\n",
"│ ┆ str ┆ ┆ ┆ ┆ ┆ ┆ ┆ │\n",
"╞════════════╪════════════╪════════════╪═══════════╪═══╪═══════════╪═══════╪═══════════╪═══════════╡\n",
"│ EFO_000419 ┆ IGA glomer ┆ CHEMBL4299 ┆ DAPAGLIFL ┆ … ┆ solute ┆ 4 ┆ Not yet ┆ https://c │\n",
"│ 4 ┆ ulonephrit ┆ 10 ┆ OZIN ┆ ┆ carrier ┆ ┆ recruitin ┆ linicaltr │\n",
"│ ┆ is ┆ ┆ ┆ ┆ family 5 ┆ ┆ g ┆ ials.gov/ │\n",
"│ ┆ ┆ ┆ ┆ ┆ member 2 ┆ ┆ ┆ ct2/s… │\n",
"│ EFO_000419 ┆ IGA glomer ┆ CHEMBL1168 ┆ RAMIPRIL ┆ … ┆ angiotens ┆ 4 ┆ Not yet ┆ https://c │\n",
"│ 4 ┆ ulonephrit ┆ ┆ ┆ ┆ in I conv ┆ ┆ recruitin ┆ linicaltr │\n",
"│ ┆ is ┆ ┆ ┆ ┆ erting ┆ ┆ g ┆ ials.gov/ │\n",
"│ ┆ ┆ ┆ ┆ ┆ enzyme ┆ ┆ ┆ ct2/s… │\n",
"│ EFO_000419 ┆ IGA glomer ┆ CHEMBL1535 ┆ HYDROXYCH ┆ … ┆ toll like ┆ 4 ┆ Completed ┆ https://c │\n",
"│ 4 ┆ ulonephrit ┆ ┆ LOROQUINE ┆ ┆ receptor ┆ ┆ ┆ linicaltr │\n",
"│ ┆ is ┆ ┆ ┆ ┆ 7 ┆ ┆ ┆ ials.gov/ │\n",
"│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ct2/s… │\n",
"│ EFO_000419 ┆ IGA glomer ┆ CHEMBL1639 ┆ ALISKIREN ┆ … ┆ renin ┆ 4 ┆ Completed ┆ https://c │\n",
"│ 4 ┆ ulonephrit ┆ ┆ ┆ ┆ ┆ ┆ ┆ linicaltr │\n",
"│ ┆ is ┆ ┆ ┆ ┆ ┆ ┆ ┆ ials.gov/ │\n",
"│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ct2/s… │\n",
"│ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … ┆ … │\n",
"│ EFO_000419 ┆ IGA glomer ┆ CHEMBL578 ┆ ENALAPRIL ┆ … ┆ angiotens ┆ 2 ┆ Completed ┆ https://c │\n",
"│ 4 ┆ ulonephrit ┆ ┆ ┆ ┆ in I conv ┆ ┆ ┆ linicaltr │\n",
"│ ┆ is ┆ ┆ ┆ ┆ erting ┆ ┆ ┆ ials.gov/ │\n",
"│ ┆ ┆ ┆ ┆ ┆ enzyme ┆ ┆ ┆ ct2/s… │\n",
"│ EFO_000419 ┆ IGA glomer ┆ CHEMBL3989 ┆ FOSTAMATI ┆ … ┆ spleen ┆ 2 ┆ Withdrawn ┆ https://c │\n",
"│ 4 ┆ ulonephrit ┆ 516 ┆ NIB ┆ ┆ associate ┆ ┆ ┆ linicaltr │\n",
"│ ┆ is ┆ ┆ DISODIUM ┆ ┆ d ┆ ┆ ┆ ials.gov/ │\n",
"│ ┆ ┆ ┆ ┆ ┆ tyrosine ┆ ┆ ┆ ct2/s… │\n",
"│ ┆ ┆ ┆ ┆ ┆ kinas… ┆ ┆ ┆ │\n",
"│ EFO_000419 ┆ IGA glomer ┆ CHEMBL4297 ┆ CEMDISIRA ┆ … ┆ complemen ┆ 2 ┆ Active, ┆ https://c │\n",
"│ 4 ┆ ulonephrit ┆ 722 ┆ N ┆ ┆ t C5 ┆ ┆ not recru ┆ linicaltr │\n",
"│ ┆ is ┆ ┆ ┆ ┆ ┆ ┆ iting ┆ ials.gov/ │\n",
"│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ct2/s… │\n",
"│ EFO_000419 ┆ IGA glomer ┆ CHEMBL4594 ┆ SIBEPRENL ┆ … ┆ TNF super ┆ 1 ┆ Completed ┆ https://c │\n",
"│ 4 ┆ ulonephrit ┆ 614 ┆ IMAB ┆ ┆ family ┆ ┆ ┆ linicaltr │\n",
"│ ┆ is ┆ ┆ ┆ ┆ member 13 ┆ ┆ ┆ ials.gov/ │\n",
"│ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ┆ ct2/s… │\n",
"└────────────┴────────────┴────────────┴───────────┴───┴───────────┴───────┴───────────┴───────────┘"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "data-expressions-XOHyUNvQ-py3.10",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.8"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}