2012-07-06 4 views
1

내 fasta 파일이 단일 라인 시퀀스로 끝나면 Bioperl에 의해 반환 된 시퀀스에는 누락 된 하나의 뉴클레오티드가 있다는 것을 발견했습니다. fasta 파일이 새 행으로 끝나면 완료 순서가 리턴됩니다. 왜 이해가 안되니? fasta 파일이 빈 줄 바꿈으로 끝나는 요구 사항입니까?Bioperl reading fasta sequences

이것은 내가

my $obj = $db->get_Seq_by_id($id); 
my $seq = $obj->seq; # returns 36 or 35 nucleotides depending if last new line exists 
my $length = $obj->length; # returns 36 or 35 

그리고 FASTA 시퀀스를 사용하고있는 코드 :

승기를 | 37423 | EMB | X04588.1 | 골격 트로포 TM30 (㎚)에 대한 인간 2.5 킬로바이트 mRNA의 당신은 당신의 FASTA 파일 라인의 짝수이 있는지 확인해야합니다

답변

1

CCCTTTAAATTTCCCTTTAAATTTCCCTTTAAATTTT : wc -l file.fasta합니다.

fasta 파일의 각 줄에 현재 줄 문자의 끝이 있어야합니다 ($). vi 편집기를 사용하는 경우 :set list을 입력하여 숨겨진 문자를 표시하십시오. 또는 줄 끝을 보려면 cat -A file.fasta을 입력하십시오.

또한 실제 파일 인 경우 헤더 행은 > 문자로 시작해야합니다.


아마도 파일의 마지막 줄에 줄 바꾸기가 포함 된 경우 줄의 평탄함이 아닐 수도 있습니다. 이 경우

cat -A fasta.file | awk 'END { print substr ($0, length, 1) }' 

가하는 달러 기호 ($)을 반환, 당신은 당신의 FASTA 파일을 사용하여 문제가있을 수 없습니다.


는 (심지어 줄 지어)이 함께 '좋은'에서 FASTA 파일을 마지막 개행 문자를 제거 할 수 있습니다 문제를 복제하려면 다음

perl -i -pe 'chomp if eof' fasta.file 

그리고 당신의 마지막에 줄 바꿈을 추가 할 수 있습니다 당신의 파일은 다음과 같습니다 :

perl -i -ne 'chomp; print "$_\n"' fasta.file 
+0

지금은 이상합니다. 더 이상이 문제를 복제 할 수 없습니다. 이제 Bioperl은 고르지 않은 선으로도 시퀀스를 올바르게 반환합니다. 어떤 아이디어? – Andriusa

+0

@ 안드레아 : 편집을 참조하십시오. Bioperl로 테스트 해 주시겠습니까? – Steve