-
Notifications
You must be signed in to change notification settings - Fork 0
/
Read_FASTA_all.m
59 lines (40 loc) · 1.23 KB
/
Read_FASTA_all.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
function [Seq_DNA] = Read_FASTA_all(varargin)
if (nargin==1)
pattern = varargin{1};
else
pattern = '*.fa*';
end
FASTA_files = dir(pattern);
if (isempty(FASTA_files))
warning('No FASTA files found');
Seq_DNA = [];
return;
end
FASTA_files = {FASTA_files.name};
d=strsplit(pattern,filesep);
x=length(d);
if ~isempty(d)
d=strjoin(d(1:(x-1)),filesep);
end
%disp(d)
Seq_DNA = [];
Seq_DNA = struct('file',FASTA_files,'header',cell(1,length(FASTA_files)),...
'sequence',cell(1,length(FASTA_files)),...
'length',cell(1,length(FASTA_files)),...
'centre_point',cell(1,length(FASTA_files)),...
'het_marks',cell(1,length(FASTA_files)));
for i=1:length(FASTA_files)
disp(FASTA_files{i});
if ~isempty(d)
[Seq, seq_length, header] = Read_FASTA(strjoin({d,FASTA_files{i}},filesep),1e6);
else
[Seq, seq_length, header] = Read_FASTA(FASTA_files{i},1e6);
end
Seq_DNA(i).header = header;
Seq_DNA(i).sequence = Seq;
Seq_DNA(i).length = seq_length;
Seq_DNA(i).centre_point = round(seq_length/2);
Seq_DNA(i).het_marks = zeros(1,seq_length);
% Seq_DNA(i).het_marks(21) = 1;
end
end