susyong1의 등록된 링크

 susyong1로 등록된 네이버 블로그 포스트 수는 36건입니다.

Rosalind_7. Counting DNA nucleotides [내부링크]

with open ('rosalind_dna.txt','r') as handle: for line in handle: seq=line.strip() count={'A':0,'C':0,'G':0,'T':0} for s in seq: if s in count: count[s]+=1 print(count.values()) dictionary 활용해 각 A,T,G,C의 각 염기를 Key로 지정. Sequence에 각 염기가 나올 때마다 Value에 +1

Rosalind_8. Transcribing DNA into RNA [내부링크]

# 방법1. 기본함수 사용 with open ('rosalind_rna.txt','r') as handle: for line in handle: seq=line.strip() seq.replace('T','U') print(seq) # 방법2. biopython 사용 from Bio.Seq import Seq with open ('rosalind_rna.txt','r') as handle: for line in handle: seq=line.strip() bioseq=Seq(seq) print(bioseq.transcribe())

Rosalind_9. Complementing a Strand of DNA [내부링크]

# 방법1. 기본 함수 사용 with open('rosalind_revc.txt','r') as handle: for line in handle: seq=line.strip() print(seq) seq=seq[::-1] dir={'A':'T','T':'A','C':'G','G':'C'} rev_comp='' for s in seq: rev_comp+=dir[s] print(rev_comp) 1. sep[::-1]로 sequence를 반대방향으로 읽음 2. dictionary에 상보적 결합하는 염기 매칭 3. rev_comp에 string 형태로 역상보서열 입력 # 방법2. biopython 사용 from Bio.Seq import Seq with open('rosalind_revc.txt','r') as handle: for line in handle: seq=line.strip() print(bioseq.reverses_complement())

Rosalind_10. Rabbits and Recurrence Relations [내부링크]

def fibonacci(n,k): if n==1 or n==2: return(1) else: return k*fibonacci(n-2,k)+fibonacci(n-1,k) fibonacci(33,5) 기본 Fibonacci sequence: Fn=Fn-2+Fn-1 각 개월마다 생식 가능한 토끼, 불가능한 토끼 나누어 계산 Fn=k*Fn-2+Fn-1

Rosalind_11. Computing GC Content [내부링크]

# 방법1. 기본 함수 사용 f=open('rosalind_gc.txt','r') dic={} for part in f.read().split('>')[1:]: name=part.split('\n')[0] seq=part.split('\n')[1:] seq=''.join(seq) gc=(seq.count('G')+seq.count('C'))/len(seq) dic[name]=gc print(max(dic,key=dic.get)) print(100*max(dic.values())) f.close() 1. FASTA 파일에서 이름과 sequence를 분리 이름 앞에 붙는 '>'를 사용하여 각 sequence 분리 각 seq을 줄('\n')로 분리하여 첫번째 줄은 이름, 나머지 줄은 seq로 할당 한 sequence가 list 형태로 구분되어 있으므로 join함수 사용하여 string화 2. 각 sequence에서 'G'와 'C'의 갯수 더하여 전체 길이로 나눔 3. dictionary

Rosalind_12. Counting Point Mutations [내부링크]

# 방법 1. 일반 반복문 사용 f=open('rosalind_hamm.txt','r') seq=f.read().split('\n') seq1=seq[0] seq2=seq[1] mutation_sum=0 for i in range(len(seq1)): if seq1[i]!=seq2[i]: mutation_sum+=1 print(mutation_sum) f.close() Seq 1과 2를 분리하여 string 형식으로 저장 같은 위치에서 두 Seq의 염기가 다르면 mutation_sum에 +1 # 방법 2. List comprehension f=open('rosalind_hamm.txt','r') seq=f.read().split('\n') seq1=seq[0] seq2=seq[1] mutations=[[a,b] for a,b in zip(seq1, seq2) if a!=b] print(len(mutations)) f.close() List comprehension: 간결한 코드 사용

Rosalind_13. Mendel's First Law [내부링크]

문제 1세대에 AA(homozygous dominant), Aa (heterozygous), aa(homozygous recessive) 유전자형 가지는 개체가 각각 k.m,n마리다. 무작위 교배를 가정했을 때, 2세대 후에 태어난 개체가 우성형질을 가질 확률 (AA, Aa) def prob(k,m,n): tot=k+m+n re_re=n/tot*(n-1)/(tot-1) het_re=m/tot*n/(tot-1)*2 het_het=m/tot*(m-1)/(tot-1) return round(1-(re_re+het_re/2+het_het/4),5) prob(30,22,18) 1. 외부적 힘이 작용하지 않는 한 (무작위 교배), 세대가 지나도 유전자형의 빈도는 변하지 않는다. (하디 바인베르크의 법칙) 두 유전자형이 짝지어질 확률은 집단 내에서의 그 유전자형 빈도의 곱과 같다 유전자형의 빈도는 변하지 않으므로 몇세대 후인지는 중요하지 않음 2. P(AA 또는 Aa)= 1-P(1세대 집단이 무

Rosalind_14. Translating RNA into Protein [내부링크]

f=open('rosalind_prot.txt','r') from Bio.Seq import Seq seq=Seq(f.read()) print(seq.translate(to_stop=True)) f.close() dictionary를 활용하여 codon-아미노산 매칭하여 풀 수도 있지만 시간이 오래 걸릴 듯 해 생략. translate(to_stop=True)를 통해 stop codon에서 번역을 마치도록 설정하였다.

Rosalind_15. Finding a Motif in DNA [내부링크]

# 방법 1. 일반 반복문 사용 f=open('rosalind_subs.txt','r') data=f.read().split('\n') seq=data[0] motif=data[1] mot_loc=[] for i in range(len(seq)): if seq[i:i+len(motif)]==motif: mot_loc.append(i+1) print(' '.join(map(str,mot_loc))) f.close() join 함수로 리스트의 요소들을 string 형식으로 바꿈. 앞의 ' '. 를 통해 요소들을 공백으로 구분 join은 리스트의 요소들이 string일 때만 사용 가능하기 때문에 map과 str 함수를 사용해 요소들을 string화 시킴 # 방법 2. List comprehension f=open('rosalind_subs.txt','r') data=f.read().split('\n') seq=data[0] motif=data[1] lst=[i+1 for i in rang

Rosalind_16. Consensus and Profile [내부링크]

문제 1. 길이가 같은 여러 서열들이 주어졌을 때, 각 위치에 가장 빈도수가 많은 염기서열을 배치하여 서열을 완성하라. 2. A,T,G,C의 각 위치에서의 빈도 구하여라 f=open('rosalind_cons.txt','r') data=''.join(f.read().split('\n')).split('>')[1:] sequences=[] for s in data: sequences.append(s[13:]) n=len(sequences[1]) profile_matrix={ 'A':[0]*n, 'C':[0]*n, 'G':[0]*n, 'T':[0]*n} for seq in sequences: for pos,nuc in enumerate(seq): profile_matrix[nuc][pos]+=1 result=[] for pos in range(n): max_count=0 max_nuc=None for nuc in ['A','T','G','C']: count=profile_matrix[n

Rosalind_17. Mortal Fibonacci Rabbits [내부링크]

문제 피보나치 수열의 변형: 토끼의 수명이 m개월일 때, n개월 후의 토끼 개체수 def fibo(n,m): youth=[1,0] result=[1,1] x=3 while x<=n: if x<=m: youth.append(sum(youth[:-1])) result.append(sum(result[-2:])) else: youth.append(sum(youth[-m:-1])) result.append(sum(youth[-m:])) x+=1 return result[-1] fibo(96,18) 전체 토끼, 미성숙한 토끼로 나누어 패턴 탐색 Tx=ax+ax-1+ax-2+ .... ax-m-1 (x>m) ax=ax-2+ax-3+ .... ax-m (x>m) 2. 위 패턴은 x>m 일 때 적용 가능하므로, 개월수에 따라 나누어 패턴 탐색 Tx=Tx-1+Tx-2 (x<=m) ax=ax-2+ax-3+ .... a1 (x<=m) 3. n,m의 크기와 관계없이 2개월까지의 토끼 수는 동일하므로, 이

Rosalind_18. Overlap Graphs [내부링크]

문제 여러 Sequences가 주어졌을 때 prefix와 suffix가 가 매칭되는 서열들을 짝짓기 ## 1. 기본 함수 사용 f=open('rosalind_grph.txt','r') lines=f.readlines() sequences={} for i,s in enumerate(lines): s=s.rstrip() if s.startswith('>'): s=s.replace('>','') sequences[s]=lines[i+1].rstrip()+lines[i+2].rstrip() k=3 for suf_name, suf_seq in sequences.items(): suffix=suf_seq[-k:] for pre_name, pre_seq in sequences.items(): if pre_name != suf_name: prefix=pre_seq[:k] if suffix==prefix: print(suf_name, pre_name) f.close() dictionary 사용하여

Rosalind_19. Calculating Expected Offspring [내부링크]

문제 각각의 유전자형을 가지는 부부 수가 주어졌을 때, 다음 세대에서 우성형질을 나타내는 자녀 수의 기댓값 (한 부부가 두명의 자녀를 낳는다고 가정) f=open('rosalind_iev_1.txt','r') population=f.read().rstrip().split(' ') population=list(map(int,population)) exp=[2,2,2,1.5,1,0] result=[] for i,k in enumerate (population): result.append(k*exp[i]) print(sum(result)) f.close()

Rosalind_20. Finding a shared Motif [내부링크]

문제 여러 DNA 서열들이 주어졌을 때, 공통되는 motif들 중 가장 긴 것을 구하시오 from Bio import SeqIO sequences=[] for line in SeqIO.parse('rosalind_lcsm_1.txt','fasta'): sequences.append(str(line.seq)) n_seq=len(sequences) motif_lst=[] min_dna=min(sequences,key=len) for i,s in enumerate(min_dna): for k in range (len(min_dna)): motif=min_dna[i:i+k] shared_seq=0 for seq in sequences: if motif in seq: shared_seq+=1 if shared_seq==n_seq: motif_lst.append(motif) print(max(motif_lst, key=len)) 1. 여러 서열들 중 길이가 가장 짧은 서열을 찾음 2. min_

Rosalind_21. Independent Alleles [내부링크]

문제 Tom은 AaBb의 유전자형을 가지고 있다 (0세대). Tom은 두 명의 자녀가 있고 (1세대), 각각의 자녀들은 두명의 자녀를 낳는다 (2세대). Tom의 후손들이 모두 AaBb의 유전자형을 가지는 배우자를 만난다고 가정하면, k세대의 자녀들 중 AaBb를 가지는 사람이 N명 이상일 확률을 구하시오. def fact(n): result=1 while n>0: result*=n n-=1 return result def IA(k,N): child=2**k prob=0 for i in range(N,child+1): x=fact(child)/(fact(child-i)*fact(i))*(0.25**i)*(0.75**(child-i)) prob+=x return round(prob,3) IA(5,8) 1. PAaBb=0.25 (세대가 지나도 변하지 않음) 2. k세대 자녀들의 수= 2k (child) 3. 2k명의 자녀들 중 AaBb인 사람이 N명일 확률= childCN*(0.25)N

Rosalind_22. Finding a Protein Motif [내부링크]

문제 protein motif sequence와 여러 protein들의 Uniprot ID가 주어졌을 때, motif를 포함하는 protein ID 및 motif 위치를 구하시오 ## 1. urlopen으로 protein sequence 데이터 수집 from urllib.request import urlopen from Bio import SeqIO import re ID=[] with open('rosalind_mprt.txt','r') as f: for line in f: ID.append(line.strip()) for i,s in enumerate (ID): url='http://www.uniprot.org/uniprot/'+s.split('_')[0]+'.fasta' data=urlopen(url) fasta=data.read().decode('utf-8','ignore') with open('fasta_data.fasta','a') as handle: handle.writ

Rosalind_23. Inferring mRNA from Protein [내부링크]

문제 Protein sequence가 주어졌을 때, 이 서열을 합성할 수 있는 mRNA의 갯수를 구하시오. (1,000,000으로 나눈 나머지) from Bio.Data import CodonTable table=CodonTable.unambiguous_rna_by_name['Standard'] print(table) codon_dictionary={'F':['UUU','UUC'], 'L':['UUA','UUG','CUU','CUC','CUA','CUG'], 'I':['AUU','AUC','AUA'], 'M':['AUG'], 'V':['GUU','GUC','GUA','GUG'], 'S':['UCU','UCC','UCA','UCG','AGU','AGC'], 'P':['CCU','CCC','CCA','CCG'], 'T':['AUC','ACC','ACA','ACG'], 'A':['GCU','GCC','GCA','GCG'], 'Y':['UAU','UAC'], '*':['UAA','UAG',

Rosalind_24. Open Reading Frames [내부링크]

문제 DNA sequence가 주어졌을 때, 이 서열로부터 합성될 수 있는 단백질 서열들을 모두 구하시오 from Bio import Seq, SeqIO import re from itertools import chain sequences=[] for line in SeqIO.parse('rosalind_orf.txt','fasta'): for i in range(0,3): prt=line[i:].seq.translate() rev_prt=line.seq.reverse_complement()[i:].translate() sequences.append(str(prt)) sequences.append(str(rev_prt)) ref=re.compile(r'(?=([M][A-Z]*[*]))') ORFs=[] for seq in sequences: ORFs.append(re.findall(ref,seq)) ORFs=list(set((chain(*ORFs)))) for s in ORFs: p

Rosalind_25. Enumerating Gene Orders [내부링크]

문제 n개의 synteny block들을 정수 1~n으로 생각할 때, genome rearrangement의 경우의 수 및 조합을 출력하시오. from itertools import permutations def PERM(x): blocks=list(range(1,x+1)) per=list(permutations(blocks,x)) print(len(per)) for s in per: print(' '.join(map(str,s))) PERM(5) 1. 1~x의 정수로 이루어진 list 생성 2. itertools의 permutations(a,b) 사용하여 genome rearrangement 조합 생성 a 수열을 사용해, b개 요소로 이루어진 순열들 생성, 각 순열은 튜플 형식으로 구성 마찬가지로, itertools.combinations(a,b)도 가능 ORF에서 itertools의 chain()도 사용한 바 있음 3. 순열 갯수 및 각 순열 원하는 형식으로 출력

Rosalind_26. Calculating Protein Mass [내부링크]

문제 아미노산 서열이 주어졌을 때, 각 잔기들의 Monoisotopic mass의 합을 구하시오. ## 1. 기본 함수 사용 dic={'A':71.03711, 'C':103.00919, 'D':115.02694, 'E':129.04259, 'F':147.06841, 'G':57.02146, 'H':137.05891, 'I':113.08406, 'K':128.09496, 'L':113.08406, 'M':131.04049, 'N':114.04293, 'P':97.05276, 'Q':128.05858, 'R':156.10111, 'S':87.03203, 'T':101.04768, 'V':99.06841, 'W':186.07931, 'Y':163.06333 } with open('rosalind_prtm.txt','r') as f: seq=f.read().rstrip() sum=0 for s in seq: sum+=dic[s] round(sum,3) 단순하게 각 아미노산 잔기의 질량 합을

Rosalind_27. Locating Restriction Sites [내부링크]

문제: 주어진 서열에서 길이가 4~12 bp인 reverse palindrome를 모두 찾아 위치와 길이를 반환하시오 with open('rosalind_revp.txt','r')as f: seq=f.read().strip().split('\n')[1:] seq=''.join(seq) def complement(seq): return ''.join('T' if s=='A' else 'A' if s=='T' else 'G' if s=='C' else 'C' for s in seq) for length in range(4,13,2): for i in range(len(seq)-length+1): string=seq[i:i+length] if(string==complement(string)[::-1]): print(i+1,length) Palindromic site는 sense strand와 antisense strand가 동일하게 읽힘 (5' -> 3') 2. Palindromic si

Rosalind_28. RNA splicing [내부링크]

문제: precursor RNA와 intron sequences가 주어졌을 때, RNA splicing 이후 translation이 수행된 protein sequence를 반환하시오. from Bio.Seq import Seq from Bio import SeqIO seq=[] for s in SeqIO.parse('rosalind_splc.txt','fasta'): seq.append(str(s.seq)) intron=seq[1:] seq=seq[0] result=seq for motif in intron: result=result.replace(motif,'') print(Seq(result).translate(to_stop=True)) 1. Precursor RNA에서 intron sequences를 찾아 제거 2. translation 이후 단백질 서열 반환

Rosalind_29. Enumerating k-mers Lexicographically [내부링크]

문제: 10개 미만의 서로 다른 문자(symbols)와 10 이하의 숫자(n)가 주어졌을 때, n개의 symbol로 이루어진 문자열의 모든 조합을 알파벳 순서대로 출력하시오 from itertools import product handle=[] with open('rosalind_lexf.txt','r') as f: for line in f: handle.append(line.strip()) symbols=sorted(handle[0].replace(' ','')) length=int(handle[1]) result=list(product(symbols,repeat=length)) for s in result: print(''.join(s)) 1. 주어진 파일에서 symbols와 n을 분리 2. itertools의 product ()함수 사용해 모든 조합을 출력 3. product()는 각 요소를 튜플 형태로 출력하므로, 문자열로 전환

자료형 기본함수 [내부링크]

문자열 포매팅 number=10 day='three' #1 print('I ate %d apples. So I was sick for %s days.' %(number, day)) %s:문자열 %d:정수 %f:실수 'Error is %d%%.' %98 #포매팅 연산자 %d와 % 같이 쓸 때는 %% 사용 '%10s' %'hi' #전체 길이가 10인 문자열 공간에서 오른쪽 정렬 '%-10sjane' %'hi' #전체 길이가 10인 문자열 공간에서 hi를 왼쪽정렬. 이후 11번째 공간부터 jane 출력 '%0.4f' %3.42134234 #소수점 네번째까지 출력 '%10.4f' %3.42134234 #오른쪽 정렬 & 소수점 네번째까지 출력 #2 print('I ate {0} apples. So I was sick for {1} days.'.format(number,day)) #3 print(f'I ate {number} apples. So I was sick for {day} days.'

제어문 기본함수 [내부링크]

If문 활용 pocket=['paper','money','cellphone'] if 'money' in pocket: pass #조건을 만족할 경우 아무것도 실행하지 않음 else: print('카드를 꺼내라') if 'money' in pocket: pass else: print('카드를 꺼내라') #조금 더 간결한 조건문 #조건부 표현식 message='success' if score>=60 else 'failure' 2. while문 활용 #홀수만 출력 a=0 while a<10: a+=1 if a%2==0: continue #2로 나누었을 때 나머지가 0이면 처음으로 돌아감 print(a) 3. for문 활용 #for문과 continue marks=[90,25,67,45,80] number=0 for mark in marks: number+=1 if mark<60: continue print('%d번 학생 축하합니다. 합격입니다.' %number) #List comprehen

함수 및 파일 읽고 쓰기 [내부링크]

함수(def)의 활용 #매개변수의 갯수를 특정하지 않는 함수 def add_mul(choice.*arg): if choice=='add': result==0 for i in args: resuilt+=i #choice가 'add'면 choice 이후의 모든 매개변수들을 더함 if choice=='mul': result==1 for i in args: result*=i #choice가 'mul'이면 choice 이후의 모든 매개변수들 곱함 return result #return을 활용한 특정상황 함수탈출 def say_nick(nick): if nick=='바보': return print('나의 별명은 %s입니다.' %nick) #lambda 사용 add= lambda a,b: a+b 2. 파일 읽고 쓰기 r - 읽기모드 w - 쓰기모드 a - 추가모드 #파일 새로 써서 생성 f=open('new_file.txt','w') for i in range(1,11): data='%d번째 줄

클래스 (Class) [내부링크]

덧셈뺄셈 클래스 만들기 class add_sub: def __init__(self,first,second): #생성자: 객체가 생성될 때 자동으로 호출되는 메서드 self.first=first self.second=second def add(self): result=self.first+self.second return result def sub(self): result=self.first-self.second return result a=add_sub(5,2) #add_sub 클래스를 사용하여 a 객체 생성 print(a.add()) #5+2=7 반환 2. 클래스의 상속 class fourcal(add_sub): #add_sub 클래스를 상속받아 mul(), div() 메서드를 추가하여 fourcal 클래스 생성 def mul(self): result=self.first*self.second return result def div(self): result=self.first/self

PLINK [내부링크]

GWAS plink2 --bfile [bfile] --pheno [phenotype file] --pheno-name [phenotype colname] --covar [covariate file] --keep [sample list file]\ --maf 0.01 --hwe 0.000001 --mind 0.05 --geno 0.05\ --glm hide-covar --covar-variance-standardize --freq --ci 0.95\ --out [output file] --allow-no-sex --chr 1-22 Input file bfile (.bim, .bed, .fam), phenotype file, covariate file, sample list file (option) QC (quality control) maf: minor allele frequency가 기준 미만인 variant 제외 hwe: Hardy-Weinberg equilibrium P-valu

UK Biobank data access guide [내부링크]

역학데이터 다운로드 Basket의 데이터 다운로드 (MD5 checksum 필요) 다운로드 받은 데이터 사용에 필요한 세가지 프로그램 다운로드 및 실행 wget -nd biobank.ndph.ox.ac.uk/ukb/util/ukbmd5 wget -nd biobank.ndph.ox.ac.uk/ukb/util/ukbconv wget -nd biobank.ndph.ox.ac.uk/ukb/util/ukbunpack ./ukbmd5 [downloaded file] # 파일 잘 받아졌는지 확인 ./ukbunpack [downloaded file] # 압축 해제 ./ukbconv [unpacked file] [format] # 원하는 형식으로 저장, [format]: r, sas, stata, csv, txt etc. 2. gfetch를 활용한 genotype 데이터 (.bim, .bed, .fam) 다운로드 # gfetch 다운로드 wget -nd biobank.ndph.ox.ac.uk/ukb

METAL [내부링크]

이미 수행된 GWAS 결과들을 활용하여 병합된 통계값을 반환하는 프로그램 (A tool for meta-GWAS) 성별, 인종 분포의 차이 등으로 인해, 함께 해석되기 어려운 연구들을 통합할 때 사용됨 genomic control, 가중치 부여 등의 옵션들 존재 결과 파일에서, effect allele과 reference allele이 랜덤하게 바뀌니 정리 필요 (EA, RA, EAF, effect direction) ./metal <<EOF #이후의 script에 '\' 생략 가능 SEPARATOR WITHSPACE COLUMNCOUNTING STRICT GENOMICCONTROL ON #genomic control -> genomic inflation 방지 AVERAGEFREQ ON MINMAXFREQ ON SCHEME STDERR #Inversed-variance weighted method MARKER SNP #Colnames of input files ALLELE RA EA

모듈 (Module) [내부링크]

모듈 생성 아래 명렁어를 저장하여 생성된 py 파일이 모듈 함수, 변수, 클래스 포함 가능 if __name__=="__main__": #module_1.py def add(a,b): return a+b def sub(a,b): return a-b PI=3.1415 class Math: def __init__(self,r): self.r=r def solv(self): return PI**(self.r**2) if __name__=="__main__": #직접 해당 파일 실행했을 때만 아래 명령문 출력 되고, 다른 파일에서 모듈로 불러올 때는 출력 안됨. print(add(1,4)) print(sub(4,2)) 모듈 불러오기 import를 이용한 단순 호출 파이썬 라이브러리에 경로 추가 명령 프롬프터에서 환경변수에 모듈 디렉토리 추가 #모듈과 현재 파일이 동일한 디렉토리에 있어야 함 import mod1 #파이썬 라이브러리에 모듈 경로 추가: 모든 디렉토리에서 호출 가능 import

MAGMA [내부링크]

GWAS result를 이용해, 동일한 유전자에 위치한 SNP들의 통계값들을 통합 Genome-wide gene-based analysis 수행 홈페이지에서 MAGMA 프로그램 및, gene location file과 LD reference panel 다운로드 Gene-SNP annotation 수행 후 gene-based analysis #MAGMA 설치 및 압축해제 wget https://ctg.cncr.nl/software/MAGMA/prog/magma_v1.10.zip unzip magma_v1.10.zip #환경 경로에 MAGMA 추가 -> 모든 디렉토리에서 실행 가능 export PATH=$PATH:[MAGMA 설치 디렉토리/magma_v1.10] #Gene location 및 reference panel 다운로드 wget https://vu.data.surfsara.nl/index.php/s/Pj2orwuF2JYyKxq/download #Gene_location (Grc

패키지 (Package) [내부링크]

패키지: 파이썬 모듈을 계층적 (디렉토리 구조)으로 관리할 수 있게 해줌 game\ # 패키지 이름, 패키지 루트 디렉토리 __init__.py sound\ # 서브 디렉토리 __init__.py echo.py # 모듈 wav.py # 모듈 graphci\ __init__.py render.py # 모듈 패키지 안의 함수 실행 import game.sound.echo print(game.sound.echo.echo_test()) #echo 내부 함수 실행 1 from game.sound import echo print(echo.echo_test()) #echo 내부 함수 실행 2 from game.sound.echo import echo_sound print(echo_test()) #echo 내부 함수 실행 3 import game #game 디렉토리의 모듈, 또는 game 디렉토리의 __init__.py에 정의된 것만 사용 가능 game.sound.echo.echo_test() #

정규표현식_1 [내부링크]

1. 자주 사용하는 문자 클래스 \d 숫자와 매치, [0-9]와 동일 \D 숫자가 아닌 것과 매치, [^0-9]와 동일 \s withspace 문자 (space, tab, 줄바꿈 등) \S withspace가 아닌 것 \w 문자+숫자와 매치 [a-zA-Z0-9]와 동일 \W 문자+숫자가 아닌 것 [^a-zA-Z0-9]와 동일 2. 기타 문자클래스 Dot (.) a.b a + 모든 문자 + b a[.]b: a + . + b 반복 (*) ca*t * 바로 앞에 있는 a가 0번 이상 반복 반복 (+) ca+t + 바로 앞에 있는 a가 1번 이상 반복 반복 {m,n} ca{2,5}t {} 바로 앞에 있는 a가 2~5번 반복 {m}: m번 반복 {m,}: m번 이상 반복 ? ab?c ? 바로 앞에 있는 b가 있어도 되고 없어도 됨 =ab{0,1}c 3. 정규식을 사용한 문자열 검색 match() 문자열의 처음부터 정규식과 매치되는지 조사 group(): 매치된 문자열 start(): 매치된

정규표현식 2 [내부링크]

1. 메타 문자 | re.compile('A|B') A 또는 B를 컴파일 ^ re.compile('^Life') 문자열의 가장 앞에 있는 Life만 컴파일 -> 'My Life'와는 매칭되지 않음 $ re.compile('short$') 문자열의 가장 끝에 있는 short만 컴파일 \b re.compile('\bclass\b') 단어 구분자: class 앞뒤로 withspace에 의해 구분됨 -> 'no class at all'과 매칭 -> 'one subclass is'와 매칭 안됨 \B re.compile('\Bclass\B') \b와 반대, withspace에 의해 구분되지 않은 경우에만 매치 2. 그루핑 () 문자열을 묶어서 정규식을 컴파일하고 싶을 때 import re re.search('(ABC)+','ABCABCABC') 조건을 만족하는 substring 중 원하는 부분만 추출하고 싶을 때 import re data='park 010-1234-5678' p1=re.com

Anaconda 가상환경 구성 [내부링크]

#Anaconda prompt conda create -n ml python=3.9 #-n: 환경 이름 입력 매개변수 #ml: 환경 이름 conda activate ml conda install numpy pandas scikit-learn matplotlib seaborn jupyter conda install -c plotly plotly conda install -c plotly chart-studio jupyter notebook 데이터 과학을 위한 파이썬 머신러닝 : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com