Skip to content

Instantly share code, notes, and snippets.

Avatar
💭
I may be slow to respond.

Francesco G. Brundu fbrundu

💭
I may be slow to respond.
View GitHub Profile
@fbrundu
fbrundu / hyper.md
Last active Oct 12, 2020
Calculate hypergeometric probability with Python SciPy
View hyper.md

A poker hand consists of 5 cards dealt at random without replacement from a standard deck of 52 cards of which 26 are red and the rest black. A poker hand is dealt. Find the chance that the hand contains three red cards and two black cards.

To achieve it, we use the [hypergeometric][1] probability mass function. We want 3 cards from the set of 26 red cards and 2 from the set of 26. So the parameters for the hypergeometric function are:

M = 52  # Total number of cards
n = 26  # Number of Type I cards (e.g. red cards) 
N = 5   # Number of draws (5 cards dealt in one poker hand)
k = 3   # Number of Type I cards we want in one hand
@fbrundu
fbrundu / binom.md
Last active Oct 5, 2019
Calculate binomial probability in Python with SciPy
View binom.md

If you bet on "red" at roulette, you have chance 18/38 of winning. Suppose you make a sequence of independent bets on “red” at roulette, with the decision that you will stop playing once you have won 5 times. What is the chance that after 15 bets you are still playing?

We use [binomial][1] probability mass function. To calculate the probability, you have to estimate the probability of having up to 4 successful bets after the 15th. So the final probability will be the sum of the probability to get 0 successful bets in 15 bets, plus the probability to get 1 successful bet, ..., to the probability of having 4 successful bets in 15 bets.

To achieve it:

import scipy.stats as ss

n = 15         # Number of total bets
p = 18./38     # Probability of getting "red" at the roulette
@fbrundu
fbrundu / makeenv.sh
Created Apr 5, 2017
Use local R installation
View makeenv.sh
alias R="<path_to_R>/R-X.Y.Z/bin/R"
export R_LIBS="<path_to_R>/packages"
export PATH="<path_to_R>/R-X.Y.Z/bin:${PATH}"
@fbrundu
fbrundu / gdc_tcga.py
Created Mar 27, 2017
Retrieve TCGA gene expression data using GDC api
View gdc_tcga.py
# -*- coding: utf-8 -*-
import logging as log
import pandas as pd
import requests as rq
class TCGA:
def __init__(self, gdc_url='https://gdc-api.nci.nih.gov', per_page=100,
@fbrundu
fbrundu / onedark-vivid.terminal
Created Mar 8, 2017
one dark vivid macOS terminal scheme
View onedark-vivid.terminal
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ANSIBlackColor</key>
<data>
YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS
AAGGoKMHCA9VJG51bGzTCQoLDA0OVU5TUkdCXE5TQ29sb3JTcGFjZVYkY2xhc3NPECcw
LjExNzY0NzA1ODggMC4xMjk0MTE3NjQ3IDAuMTUyOTQxMTc2NQAQAYAC0hAREhNaJGNs
YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp
@fbrundu
fbrundu / .vimrc
Last active Mar 7, 2017
My vimrc
View .vimrc
" no vi-compatible
set nocompatible
let g:python_host_prog=$HOME.'/.pyenv/versions/neovim2/bin/python'
let g:python3_host_prog=$HOME.'/.pyenv/versions/neovim3/bin/python'
" Setting up Vundle - the vim plugin bundler
let iCanHazVundle=1
let vundle_readme=expand('~/.vim/bundle/vundle/README.md')
if !filereadable(vundle_readme)
@fbrundu
fbrundu / jprob_cmatrix.py
Last active Dec 30, 2015
Generation of a joint probability consensus matrix from pandas dataframe
View jprob_cmatrix.py
import numpy as np
import pandas as pd
# load data
mat = pd.read_table('matrix.txt', index_col=0)
# get classes
classes = np.unique(mat.values)
classes = classes[~np.isnan(classes)]
@fbrundu
fbrundu / consensus_array.py
Last active Dec 30, 2015
Generate consensus array from pandas DataFrame (NaN values are ignored)
View consensus_array.py
import pandas as pd
# load data
mat = pd.read_table('class_matrix.txt', index_col=0)
# initialize consensus array
consensus_a = pd.Series(index=mat.index)
# define columns subset on which compute consensus
# in this case all columns are used
@fbrundu
fbrundu / fastcluster_to_k.py
Last active Dec 30, 2015
Get k clusters from pandas dataframe using fastcluster. Use fastcluster to make a hierarchical clustering cropped to k clusters.
View fastcluster_to_k.py
import fastcluster as fc
import pandas as pd
import scipy.cluster.hierarchy as sch
# define total number of cluster to obtain
k = 5
# define matrix path
mat_path = 'matrix.txt'
@fbrundu
fbrundu / custom.css
Created Apr 6, 2015
Custom css for ipython3 notebook
View custom.css
.CodeMirror, div.prompt.input_prompt, div.prompt.output_prompt, pre {
font-family: "Inconsolata for Powerline";
font-size: 100%;
}