R의 데이터에는 벡터와 팩터가 있다. 그리고 숫자벡터-문자벡터-팩터간에 변환이 가능하다. 어쨌든 가능함. 팩터란 무엇인가 뮤츠씨가 좋아하는거 그건 팩트고 아무튼 벡터와 달리 팩터를 단식으로 뽑게 되면 한 가지 요소가 더 나오게 된다. 그것이 바로 '레벨'이다. > v=factor(c("A","B","C","D","E","F")) > v [1] A B C D E F Levels: A B C D E F > w=factor(c("35S Promoter","pHellsgate","pStargate","pWatergate","pHellsgate")) > w [1] 35S Promoter pHellsgate pStargate pWatergate pHellsgate Levels: 35S Promoter pHellsg..
이거 쿡복 보니까 시리즈가 개 많고... 분량이 그냥 종류별로 있습니다... 농담같지만 실화임. 그래서 세부적으로 나갈거예요... 근데 데이터프레임에 csv 불러오는 건 생각 좀 해봐야겠음. 분량이 정말 살인적입니다. 농담 아님. 아 참고로 데이터프레임 정리하기에 라이브러리가 하나 필요합니다. plyr이라고... 그거 없이 하는 방법도 있긴 한데 나중에 뭉텅이로 처리하려면 plyr 필요해요. install.packages("plyr") 설치 ㄱㄱ. sort() 벡터는 sort()로 정렬한다. 그죠 여기 벡터가 나온다는 건 데이터프레임도 있다 이겁니다. (스포일러) > v=sample(1:25) > v [1] 11 2 12 18 23 21 22 14 3 19 13 9 1 16 5 20 6 10 25 8 4..
MSA: multiple sequence alignment 여기에 관한 이론적인 설명은 나중에 또 입 털어드림 ㅇㅇ 아 참고로 MSA 관련해서 다른건 다 결과가 제대로 나왔는데 툴 관련해서 결과가 안나왔어요 이게 암만 찾아도 답이 없어서 좀 더 알아보고 수정할 가능성이 있음 시범조교 앞으로 오늘은 시범조교 가짓수가 좀 많은데 그 중에서도 FASTA 파일들을 좀 올리고자 한다. 이거 말고도 pfam에서 두갠가 받았는데 그건 걍 가서 암거나 받으면 된다. 해당 파일은 박테리아의 16s rRNA 시퀀스가 들어있는 파일이다. FASTA 파일이라 메모장 있으면 일단 열 수는 있다. 리눅스에서는 gedit으로 만들고 편집하고 다 했다. (vim 안씀) rRNA 시퀀스는 Silva에서 가져왔다. 고마워요 실바! Ag..
파이참 쓰다보니 키보드 먹통돼서 재부팅 여러번 했다. 이것도 갈 때 된 듯... *참고로 그냥 리드나 파싱으로 긁어오는 방법은 첫 글에서 썼으므로 생략한다. Iteration 활용하기 근데 들어도 이건 뭔 기능인가 싶긴 함. from Bio import SeqIO identifiers = [seq_record.id for seq_record in SeqIO.parse("/home/koreanraichu/sequence.gb", "genbank")] print(identifiers) 뭐야 wrap 넣어줘요... 레코드와 for문을 조합해서 원하는 데이터(ID나 시퀀스, description)만 가져올 수 있다. from Bio import SeqIO identifiers = [seq_record.id fo..
오늘껀 근데 하면서 나도 이해 못했음... SeqRecord를 만들려면 뭘 또 모셔와야 하는데 바로 from Bio.SeqRecord import SeqRecord 이놈이다. 이정도면 복잡한 거 돌리려면 아주 모셔오는데만 열댓줄 쓰게 생겼는데??? 텐서플로우나 저기 그 넘파이 판다스처럼 합쳐버리지 그러냐... (걔네는 일단 한 번 데려오면 다 써먹을 수 있음) 레코드 생성하기 이모지 넣고싶은데 이거 리눅스라 이모지 넣는 법을 모름... 아무튼 레코드는 이렇게 생성하면 된다. from Bio.SeqRecord import SeqRecord from Bio.Seq import Seq EcoRI=Seq("GAATTC") # ECoRI sequence ECoRI_r=SeqRecord(EcoRI) #로 레코드를 ..
전에요? 아니 그건 가져온거고. 시퀀스도 텍스트나 리스트처럼 인덱싱과 슬라이싱이 된다. 방법도 똑같다. 그래서 그건 생략할 예정임... 그리고 그거 아니어도 분량이 많아요 또. .count() 특정 문자열이 몇 개인지 세 준다. 뭐 시퀀스에서 아데닌이나 구아닌 갯수 세주고 그런거다. 이걸 이용하면 특정 단백질 시퀀스에서 특정 아미노산(카테고리면 겁나 세야된다...)이 차지하는 비율도 볼 수 있다. 쉬어가는 코너-Primer에서 GC함량 구하기 아 이거 중요합니다. Primer 만들 때 중요한 요소 중 하나가 GC 함량이다. 참고로 여기서는 두 가지 방법으로 구해볼건데 첫번째는 .count()를 이용해 G와 C의 수를 세서 전체 DNA 염기 수로 나누는 거고, 두번째는 바이오파이썬의 모듈을 이용하는 방법이..
참고로 다른 코딩글은 여기다가 안 올린다. 코드블럭도 없고 카테고리도 없어서 어지간한 코딩 이야기는 노션과 워드프레스에 올리는 중... 아니면 미디움이나. 근데 이건 우째도 올렸네? 아 생물학 카테고리가 있잖아요. Biopython은 생물정보학에서 쓰는건데 마침 심심하던 차에 잘됐다 써봐야징 해서 어제 깔았다. 리눅스의 경우 pip install bio(안되면 biopython)으로 걍 터미널에서 깔면 된다(우분투 20.02 LTS 기준). 윈도우마냥 pip 있는 데 안 찾아가도 됨 ㄹㅇ 편함. 근데 파이참 바로가기 없는 건 너무한 거 아니냐고... 내가 터미널 열고 직접 모시러 가야것냐... *Notes: Biopython을 사용하려면 사용할 기능에 맞는 모듈을 모셔와야 한다. 코드에 그게 생략되는 경..
read.csv() data data=read.csv("http://www.cookbook-r.com/Data_input_and_output/Loading_data_from_a_file/datafile.csv") > data First Last Sex Number 1 Currer Bell F 2 2 Dr. Seuss M 49 3 Student 21 웹에서 가져오는 것도 된다. read.table() data data=read.table("http://www.cookbook-r.com/Data_input_and_output/Loading_data_from_a_file/datafile.csv",strip.white=TRUE) > data V1 V2 1 First ,"Last","Sex","Number" 2 ..
하는김에 어? 이거 되나? 해서 찾아봄. 미분 > f D(f,"x") a * (5 * x^4) + b * (2 * x) 미분은 이런 식으로 한다. 근데 계산은 안 해준다. 믿고보는 알파신이 짱이다 > f D(f,"x") exp(x) y=e^x를 미분하면 이게 정상이다. 으아아 미분했는데 왜 그대로야 정상입니다 손님 편미분 마려워요? > f D(f,'x') 2 * x * y^2 + 2 * y # x로 미분해주세요 > D(f,'y') x^2 * (2 * y) + 2 * x + 1 # y로 미분해주세요 저 D에서 기호를 바꿔주면 알아서 편미분이 된단다. 위 코드는 각각 x로 한 번, y로 한 번 미분한 결과. (그러니까 어쨌든 한 번 미분했다) > D(D(f,'x'),'y') 2 * x * (2 * y) + ..
공식 번외편도 따로 나갑니다. as.formula() y~x y ~ x 이놈은 문자고 as.formula("y~x") y ~ x 이놈은 공식이다. 뭔 차이인지는 모르겠다. > measurevar="y" > groupvars=c("x1","x2","x3") paste(measurevar,paste(groupvars,collapse="+"),sep="=") [1] "y=x1+x2+x3" 이놈도 문자인데 as.formula(paste(measurevar, paste(groupvars, collapse=" + "), sep=" ~ ")) y ~ x1 + x2 + x3 이놈은 공식이다. 역시 뭔 차이인지 모른다. 공식의 구조 t=y~x1+x2 이렇게 공식을 만들어서 확인해보면(아, 참고로 f=as.formula(..
쿡북 분량은 일단 짧다. 다음것도 짧다. grep() v=c("피카츄","피츄","라이츄","에몽가","따라큐") w=c("Alticuno","moltres","zapdos","lugia","Ho-oh") 참고로 오늘의 시범조교다. grep("따라큐",v) [1] 5 grep은 문자를 찾아주는 함수. grep("alticuno",w) integer(0) ...인데 대소문자를 가린다. grep("alticuno",w,ignore.case=TRUE) [1] 1 그래서 ignore.case=TRUE를 줘야 대소문자 상관 없이 찾아준다. ^와 $ 각각 문자의 시작과 끝을 지정해서 찾아주는 것. grep("^피",v) [1] 1 2 # 시작 문자 지정하기 grep("츄$",v) [1] 1 2 3 # 끝 문자 지정..
파이썬에서는 똑같은 걸 해보려면 모듈을 불러야 하는데 얘는 모듈 X까! 걍 해! 같은 느낌... 이 다음편 문자열인데 분량 개짧습니다(스포일러) 난수 만들기 runif(1) [1] 0.7232427 runif()를 쓰면 0부터 1까지 중 아무 숫자나 하나 출력한다. runif(4) [1] 0.8477728 0.4359127 0.4291748 0.4625472 저 괄호 안에 숫자는 범위가 아니고 개수 지정하는거다. runif(5,min=0,max=100) [1] 87.75978 48.65714 87.73802 18.87537 75.90590 범위는 이런 식으로 지정한다. floor(runif(6,min=0,max=7)) [1] 1 4 6 4 4 4 소수점 떼뿌라!!! floor는 밑에 설명할건데 그거 보면..