본문 바로가기

파이썬3

리스트 안에 겹치는 것이 1개라도 있는 것들을 합치는 기능 import networkx as nx coll = [['aaaa', 'aaab', 'abaa'], ['bbbb', 'bbbb'], ['aaaa', 'bbbb'], ['dddd', 'dddd'], ['bbbb', 'bbbb', 'cccc','aaaa'], ['eeee','eeef','gggg','gggi'], ['gggg','hhhh','iiii']] edges = [] for i in range(len(coll)): a = coll[i] for j in range(len(coll)): if i != j: b = coll[j] if set(a).intersection(set(b)): edges.append((i,j)) G = nx.Graph() G.add_nodes_from(range(len(coll)).. 더보기
단백질 서열로부터 BLOSUM (Blocks substitution matrix)을 만들기 위한 내용들 1. 개요 어떤 목적이 있어서 정렬된 펩타이드들로부터 blosum을 만들어야할 필요가 있기도 한다. 그런데, 그런 과정을 하나하나 정리한 글은 찾기가 어렵다. 이 블로그 글은 이러한 목적을 가진 사람들을 위해 작성된 것으로 원본 데이터의 출처와 어떻게 만들어가는 지를 정리했다. 다만, blosum을 만들 때 쓰인 서열이 정리된 파일은 없고 frequency테이블로부터 출발하므로 여기서는 그 테이블에서 만드는 것은 다루지 않는다. 언어는 파이썬3 (python3)로 작성됐다. 2. 내용 원본 데이터는 아래의 방법을 통해 얻을 수 있다. ftp://ftp.ncbi.nih.gov/repository/blocks/unix/blosum/blosum.tar.Z wget ftp://ftp.ncbi.nih.gov/re.. 더보기
정렬된 펩타이드 서열로부터 아미노산 교체 오즈비 (substitution odd-ratio) 구하는 기능 1. 개요 우리는 이미 잘 계산된 blosum62과 같은 아미노산 간의 교체되는 것이 기대치에 비해 얼만큼 빈번히 일어나는지를 나타내는 오즈비 (odds-ratio) 매트릭스를 사용하고 있다. 그런데, 스스로 이것을 계산하고 싶을 때가 있다. 이것은 그 때를 위한 파이썬 스크립트이다. 2. 내용 blosum62는 오즈비 (odds-ratio)를 구한 후에 2*log2(odds-ratio)로 변환된 값이기 때문에 아래에서 계산된 값에서 한 번 더 처리가 필요하다. 다만, 알아둬야할 것은 아래 기능에서는 negative inifinite가 나올 경우 계산할 방법이 없다는 것이다. 정렬된 펩타이드 서열 (aligned-read)가 너무 적은 경우에 교체가 일어나지 않는 아미노산들도 있기에 pseudo-coun.. 더보기
pickle용 저장/불러들이기 기능 import pickle def load_pickle(path): import pickle with open(path,'rb') as f: f1=pickle.load(f) f.close() return f1 def save_pickle(path,obj): import pickle with open(path,'wb') as f: pickle.dump(obj=obj,file=path) f.close() 더보기
numpy를 이용하여 데이터 값의 분포를 binning후 숫자 세기. 1. 개요 데이터의 분포가 어떻게 나타나는지는 여러방법이 있다. 그중에는 값의 최대와 최소를 일정한 구간으로 나눈 후에 값들이 어떻게 각 구간 별로 분포하는지 확인하는 법이 있다. 즉 히스토그램을 만든다고 생각하면 된다. 이를 위해서 numpy에서는 쉬운 기능을 제공한다. 2. 방법 사용하는 것은 np.linspace와 np.digitize 그리고 np.bincount 이다. np.linspace (min, max, bins) : 최소와 최대 구간을 정해진 구간 (bins)만큼으로 일정하게 나눠준다. np.digitize (data, binned_values) : 주어진 data를 np.linspace를 통해 나온 구간의 index로 변환해준다. np.bincount(digitized) : np.digi.. 더보기
[IEDB] MHC ligand binding dataset 파싱 파이썬 스크립트. def select_necessary_info_in_iedb(x): # x : mhc_ligand_full.tsv나 mhc_ligand_full.csv를 pd.read_csv로 불러들인 후의 DataFrame import pandas as pd from tqdm import tqdm import re import gc remove_col=['Reference.1','Epitope','Reference.4','Reference.3','Assay ID', 'Reference.5','Reference.6','Reference.7','Epitope.1','Epitope.8','Epitope.9','Epitope.3', 'Epitope.4','Epitope.5','Epi.. 더보기
[개인용] 디렉토리 내의 특정 패턴의 파일들 백업하는 기능 아래에 있는 기능은 작업 중에 썼던 스크립트 파일들을 복사하기 위한 스크립트임. ''' 각 디렉토리에서 python script를 저장하기 위한 스크립트. 오로지 백업하는 것은 스크립트만임. ''' #파라미터 및 라이브러리 셋팅 params={ 'top-dir':'data' # 가장 최상위 디렉토리의 패턴 ,'2nd-dir':'/project/sjoh' # 2번 째 디렉토리의 패턴 ,'script-backup-dir':'/data03/project/sjoh/00_archive/sjoh-backup/script-backup' } # 데이터 경로 탐색 import os import subprocess as sbp from tqdm import tqdm def find_files_to_be_backup(par.. 더보기
파이썬 list안의 list를 풀어주는 기능 (unlist) def unlist(lst): ''' lst : list 오브젝트 ''' result=[] for i in lst: if type(i) is list: result+=unlist(i) else: result+=[i] return result 더보기