📄 yfun.m
字号:
function [WinSizeFileName]=YFun(FileName,SeqNum,WindowSize,IntronSite,l)
%调用形式 :[WinSizeFileName]=SFun(FileName,SeqNum,WindowSize,IntronSite)
%函数功能 :对'.TXT'文件的特定字符串进行剪切,取得目标序列并写入指定文件
%FileName :期望预处理的文件名
%SeqNum :期望处理的序列数目
%WindowSize :预处理后的窗口大小
%IntronSite :序列的功能位点位置
%WinSizeFileName :返回定长序列文件名
filename=FileName; %打开的文件
MaxSequenceNum=SeqNum; %序列个数----------------------需要根据实际选择
WinSize=WindowSize; %以供点(受点)为中心切出窗口为WinSize的供点序列--需要根据实际选择
intronSite=IntronSite; %供点(受点)在序列中的位置(从0开始记数)------需要根据实际选择(位置71)
sequenceNum=0; %记录读取的供点序列数
index=fix(WinSize/2); %(WinSize=21时)左右各取十个
char temp[150]; %中介临时变量---------需要根据实际选择
char data[MaxSequenceNum][WinSize]; %准备存放剪切序列的空间
fid1=fopen(filename,'r'); %打开要剪切的序列所在的文件--需要根据实际选择
ws=int2str(WinSize);
Outfilename=strcat(filename(1:8),'_',ws,'.txt'); %剪切序列的存放文件名,包含WindowSize,FileName信息
fid2=fopen(Outfilename,'wt'); %创建要存放剪切序列的文件---需要根据实际选择
if fid1<=0 %打开文件不成功
errordlg('读取数据文件有误');
return;
else fid1>0
for sequenceNum=1:MaxSequenceNum %MaxSequenceNum,剪切次数
temp= fscanf(fid1, '%s \n ', 1); %读取一个字符串,遇到空格停止读入
while(length(temp)<140) %如果该组不是序列数据,读取下一段--需要根据实际选择(长度140)
temp= fscanf(fid1, '%s \n ', 1);
end
data(sequenceNum,:)=temp((71-index):(71+l-1-index)); %所取序列的起点位置,所取序列为59,60,…,70,…,79(WinSize=21)
sequenceNum=sequenceNum+1;
end
end
for i=1:MaxSequenceNum %写出剪切的字符序列
fprintf(fid2,'%s',data(i,:)); %读一行写出,每行有WinSize个字符。
fprintf(fid2,' \n'); %行末加回车符
end
WinSizeFileName=Outfilename;
fclose(fid1);
fclose(fid2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -