2013-10-14 10 views
-1

read.alignment (라이브러리 seqinr)를 사용하여 정렬을 읽은 ​​후 클래스 정렬 객체 (secuen)가 있습니다. 네 가지 구성 요소가 있는데, 관심이있는 것은 보안 성을 저장하는 "nam"입니다. 또한 두 개의 변수가있는 data.frame (샘플)이 있습니다. 하나는 secuences의 이름 (첫 번째 오브젝트보다 시퀀스 이름이 깁니다)과 각 시퀀스가 ​​속하는 샘플의 이름입니다. 두 개의 객체 사이의 시퀀스 이름을 mathc 할 때마다 샘플 이름으로 시퀀스의 이름을 바꾸고 싶습니다. 나는 grep과 루프를 시도했지만, 얻을 수 없었다. 예목록의 구성 요소에서 요소 바꾸기

> sequen$nam #(length 3091) 
"HZSC42M02F3H7C" "HZSC42M02F2MMT" "HZSC42M02F03D5" 
> samples 
V1    V2 
HZSC42M02F3H7C sample_1 
HZSC42M02F2MMT sample_2 
HZSC42M02F03D5 sample_3 

sequen$nam (길이 3091) 벡터는 (is.vector 반환 TRUE)와 문자 (is.character 반환 TRUE), 그러나 sample$V1 (길이 61632)는 벡터도 아니고 문자가 아닌

어떻게 나는 진행 하는가? 나는

마지막으로 내가 해결책을 가지고
+1

'samples'는 데이터 프레임이고 'samples $ V1'은 요인입니다. –

답변

0

, macth와

순서 이름

test<-match(sequen$nam,samples$V1) 

다음 하나 개의 파일에서 비 일치 열을 제거하고 단지 보존 두 파일에서 일치 열을 찾기 위해 R 함께 일하고 새로운 이름

pre<-sample[test,] 
pre1<-pre[,2] 

마지막으로 새 시퀀스 이름 (pre1)과 sequen 목록의 시퀀스가있는 새로운 fasta 파일을 작성합니다.

write.fasta(sequences = sec$seq, names = pre1, nbchar = 478, file.out = "final_test.fasta") 
관련 문제