나는 내가 만든 루비 스크립트에 의해 만들어진 fasta 파일을 가지고있다. 그러나, 다른 순서 ID의 아래에 중복 된 시퀀스의 번호를 가지고 있는데이 파일 FASTA ... 입력에fasta 파일을 평평하게하기
데이터를 나는이에서 얻을 수 있도록 파일을 평평 할 (example.fa)
(출력 파일 - output.fa)이에>isotig00009_f3.4.1
ITLKPCGVPFSCCIPDQASGVANTQCGYGVRSPEQQNTFHTKIYTTGCADMFTMWINRYLYYIAGIAGVIVLVELFGFCFAHSLINDIKRQKARWAHR
>isotig00037_f3.1.1
KLSLIVVNHSMVASKFERVILAYTSIIIEVSPAKRRRNGKILRKNTIRFRWQTFRILSAFTVVTFSKMMTQKI
>isotig00045_f1.15.3
YKINKRP
>isotig00046_f3.15.3
YKINKRP
>isotig00047_f3.15.3
YKINKRP
>isotig00048_f1.15.3
YKINKRP
>isotig00049_f1.15.3
YKINKRP
>isotig00050_f2.15.3
YKINKRP
>isotig00051_f1.15.3
YKINKRP
나는 꽤 많은 시간 동안 노력에도 불구하고 시퀀스의 사본 만을 취 작은 스크립트를 만들었습니다
>isotig00009_f3.4.1
ITLKPCGVPFSCCIPDQASGVANTQCGYGVRSPEQQNTFHTKIYTTGCADMFTMWINRYLYYIAGIAGVIVLVELFGFCFAHSLINDIKRQKARWAHR
>isotig00037_f3.1.1
KLSLIVVNHSMVASKFERVILAYTSIIIEVSPAKRRRNGKILRKNTIRFRWQTFRILSAFTVVTFSKMMTQKI
>isotig00045_f1.15.3 : isotig00046_f3.15.3 : isotig00047_f3.15.3 : isotig00048_f1.15.3 : isotig00049_f1.15.3 : isotig00050_f2.15.3 : isotig00051_f1.15.3
YKINKRP
..., 나는 것 각 시퀀스에 대한 seq ID를 추가 할 수 없습니다.
#!/usr/bin/env ruby
filename = "./example.fa"
text = File.read(filename)
def seq_uniq(input, output)
parser = /^>.*\n(.*)/i
seq_id_parser = /^(>.*)\n(.*)/i
file = File.new("#{output}", "w")
input.scan(parser).uniq.each do |seq|
file.puts seq
# input.scan(seq_id_parser) do |seq_id, seq_actual|
# if seq_actual == seq
# file.puts seq_id
# end
# end
end
file.close
end
seq_uniq(text, "./output.fa")
: 나는 작업 (아래 주석 부분 참조)하지 않았다하려 한 것은, 여기
내가 사용하고있는 스크립트입니다 ... sequence_IDs를 꺼내 다음 시도하고 고유 한 시퀀스를 추출하는 것이 었습니다
누군가가 올바른 방향으로 나를 가리킬 수 있다면 매우 감사하게 생각합니다. 이것은 HTML 웹 페이지를 생성하는 대형 루비 스크립트에 포함 할 필요가 있기 때문에, 당신은 루비를 사용하는 경우 매우 감사 (또는 것
편집 :
난에 FASTA 파일을 평평하게 할 명확히하려면 . :)으로 구분 한 줄 (에 같은 순서를 식별 ID를 모든 서열을 넣고 그 다음 줄에 순서가있다.
많은 감사
은'ruby' 태그 : 다음과 같은 출력을 얻을해야 샘플 입력에
: 다음 여러가있는 경우 라인, 당신은 파서를 개선해야합니다 루비에게. 'dna' 보석이 당신의 파싱에 도움이 될지 모르겠습니다 - https://github.com/audy/dna? –
샘플 출력으로 무엇을 말하려고합니까 (this ... to this ...)? (예 : 동일한 출력을 가진 파일이 여러 개 있지만 파일 당 고유 한 출력을 원하십니까?) (추정 할 수있는) 파일 이름의 콜론으로 구분 된 구문이 혼란 스럽습니다. – maerics
@maerics 아니요, 파일 이름이나 여러 파일을 다루는 것이 아닙니다. 대신 다루는 데이터는 fasta 파일 (example.fa)에 포함되어 있습니다. 일반적인 fasta 형식은 1 줄에 시퀀스 식별자가 있고 그 다음에 시퀀스가 있습니다. 나는 또한 메인 포스트에서 이것을 분명히했다. 여기에 모든 Seq. 같은 seq를 가진 이드들. 1 줄에 (:)로 분리 한 다음 seq로 구분합니다. 다음에. –