Skip to content

Instantly share code, notes, and snippets.

View rahulbhadani's full-sized avatar
🎯
Panda boy! 🍫

Rahul Bhadani rahulbhadani

🎯
Panda boy! 🍫
View GitHub Profile
@rahulbhadani
rahulbhadani / RAII.cpp
Created May 22, 2022 11:12
RAII examples
// OPTION 1
class Object
{
private:
int* data;
public:
Object(const int size)
{
data = new int[size];
} // Acquisition
@rahulbhadani
rahulbhadani / optional2.cpp
Created May 22, 2022 08:35
std::optional example 2
#include <string>
#include <functional>
#include <iostream>
#include <optional>
std::optional<bool> boolcar(std::string value)
{
if (value=="Toyota")
{
return true;
@rahulbhadani
rahulbhadani / optional1.cpp
Created May 22, 2022 07:53
std::optional example 1
#include <string>
#include <functional>
#include <iostream>
#include <optional>
std::optional<std::string> getcar(std::string value)
{
if (value=="Toyota")
{
@rahulbhadani
rahulbhadani / kmeans.cpp
Last active March 18, 2022 21:18
K-means cluster of LiDAR 3D point cloud
#include <cstdint>
#include <iostream>
#include <limits>
#include <algorithm>
#include <vector>
#include <cassert>
#include <random>
using namespace std;
@rahulbhadani
rahulbhadani / louvain_clustering_umap.py
Created March 10, 2022 06:17
Louvain Cluster on Single-Cell Count Data
import scanpy as sc
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
# change location of data here
folder = 'fig2(data7_check_10plots)/data1/'
file = '1g.csv'
count_df = pd.read_csv(folder + file)
count_df.set_index('Unnamed: 0', inplace=True)
@rahulbhadani
rahulbhadani / louvain_clustering.py
Created February 21, 2022 19:11
Louvain Clustering
import scanpy as sc
import pandas as pd
datafolder = "scRNAseqData/GSE146590"
adata = anndata.read_mtx(datafolder+'/GSM4396313_Ctrl_matrix.mtx.gz')
adata = adata1.T
adata.obs.index = pd.read_csv(datafolder+'/GSM4396313_Ctrl_barcodes.tsv.gz', header=None, index_col=0).index
genes = pd.read_csv(datafolder+'/GSM4396313_Ctrl_features.tsv.gz', header=None, index_col=0, sep='\t')[1].values
@rahulbhadani
rahulbhadani / gw-3.py
Created January 27, 2022 03:16
The GW Distance
p = ot.unif(n_samples)
q = ot.unif(n_samples)
gw0, log0 = ot.gromov.gromov_wasserstein(
C1, C2, p, q, 'square_loss', verbose=True, log=True)
print('Gromov-Wasserstein distances: ' + str(log0['gw_dist']))
pl.figure(1, (10, 5))
pl.imshow(gw0, cmap='jet')
pl.title('Gromov Wasserstein')
pl.colorbar()
@rahulbhadani
rahulbhadani / gw-2.py
Created January 27, 2022 03:13
The GW distance
C1 = sp.spatial.distance.cdist(xs, xs)
C2 = sp.spatial.distance.cdist(xt, xt)
C1 /= C1.max()
C2 /= C2.max()
pl.figure()
pl.subplot(121)
pl.imshow(C1)
pl.subplot(122)
@rahulbhadani
rahulbhadani / gw-1.py
Created January 27, 2022 03:10
GW Distance
import scipy as sp
import numpy as np
import matplotlib.pylab as pl
from mpl_toolkits.mplot3d import Axes3D # noqa
import ot
n_samples = 50 # nb samples
mu_s = np.array([0, 0])
@rahulbhadani
rahulbhadani / eigen_polyfit.cpp
Last active February 22, 2025 21:28
Least Square Polynomial Fit
#include <Eigen/Dense>
#include <iostream>
#include <cmath>
#include <vector>
#include <Eigen/QR>
void polyfit( const std::vector<double> &t,
const std::vector<double> &v,
std::vector<double> &coeff,
int order