How to modify and run this Script???

Hello world, I am new to matlab and doesn't know much of it and for this I wasn't able to understand and run a script that I had. Below is the script which I need to run for few thousands of times. Can anybody help in rectifying/modifying the script so that it runs with input fasta file(file contains Uniprot_ID and Seq) and writes the output in new files names according to the Uniprot_ID. Thank You in advance for your help and time.
data.Sequence=MDULSQ…….
data.Header=header file
fastawrite(my_test.txt,data)
type(my_test.txt)
FASTAData=fastaread(my_test.txt)
[Sequence]=fastaread(my_test.txt)
data=proteinpropplot(Sequence,property,hydrophobicity(Kyte & Doolittle))
zero_crossings_indices=data.Indices(diff(sign(data.Data))~=0)
plot(data.Indices,data.Data,-)
hold on
plot(zero_crossings_indices,0,ro)
inputfile.txt
>tr|D6RGD4|D6RGD4_HUMAN Amyloid-beta A4 precursor protein-binding family B member 2 (Fragment) OS=Homo sapiens OX=9606 GN=APBB2 PE=1 SV=1
MAERKNAKALACSSLQERANVNLDVPLQVDFPTPKTELVQKFHVQYLGMLPVDKPVGMDI
LNSAIENLMTSSNKEDWLSVNMNVADA
>tr|G3V3P0|G3V3P0_HUMAN Presenilin-1 (Fragment) OS=Homo sapiens OX=9606 GN=PSEN1 PE=1 SV=1
MTELPAPLSYFQNAQMSEDNHLSNTNDNRERQEHNDRRSLGHPEPLSNGRPQGNSRQVVE
QD
>tr|A0A0A0MRG2|A0A0A0MRG2_HUMAN Amyloid-beta A4 protein OS=Homo sapiens OX=9606 GN=APP PE=1 SV=1
MFCGRLNMHMNVQNGKWDSDPSGTKTCIDTKEGILQYCQEVYPELQITNVVEANQPVTIQ
NWCKRGRKQCKTHPHFVIPYRCLVGEFVSDALLVPDKCKFLHQERMDVCETHLHWHTVAK
ETCSEKSTNLHDYGMLLPCGIDKFRGVEFVCCPLAEESDNVDSADAEEDDSDVWWGGADT
DYADGSEDKVVEVAEEEEVAEVEEEEADDDEDDEDGDEVEEEAEEPYEEATERTTSIATT
Result======expecting.
D6RGD4.file_extension
G3V3P0.file_extension
A0A0A0MRG2.file_extension

 Respuesta aceptada

OCDER
OCDER el 25 de Jun. de 2018
Editada: OCDER el 26 de Jun. de 2018
FileName = 'inputfile.txt';
S = fastaread(FileName);
for f = 1:length(S)
FileNameExp = regexp(S(f).Header, 'tr\|(\w+)\|', 'tokens');
SaveName = [FileNameExp{1}{1} '.png'];
if exist(SaveName, 'file'); continue; end %Skips just in case you run this multiple times. Don't want
%to append data to self, which is what fastawrite does.
data = proteinpropplot(S(f).Sequence,'propertytitle','hydrophobicity (Kyte & Doolittle)');
zero_crossings_indices = data.Indices(diff(sign(data.Data))~=0);
plot(data.Indices,data.Data,'-');
hold on
plot(zero_crossings_indices,0,'ro')
hold off
print(gcf, SaveName, '-dpng', '-r300', '-painters');
end

11 comentarios

Takshan
Takshan el 26 de Jun. de 2018
Thanks bro, but it not exactly working how am expecting. The output file must consist the plot on kyte-doolittle analysis result, not the sequence.
This code needs to be run for each sequence and plot output.
data=proteinpropplot(Sequence,property,hydrophobicity(Kyte & Doolittle))
zero_crossings_indices=data.Indices(diff(sign(data.Data))~=0)
plot(data.Indices,data.Data,-)
hold on
plot(zero_crossings_indices,0,ro)
OCDER
OCDER el 26 de Jun. de 2018
I edited the answer above
Takshan
Takshan el 26 de Jun. de 2018
It worked perfectly. Thanks bro.
OCDER
OCDER el 26 de Jun. de 2018
You're welcome!
Takshan
Takshan el 26 de Jun. de 2018
Is it possible to write value of "zero_crossings_indices" of all sequences in a single csv/excel file with header. Like
IDXXXXX 1234
IDXXXXX 1211
IDXXXXX 1222
OCDER
OCDER el 26 de Jun. de 2018
You'll have to use fprintf or xlswrite
FileName = 'inputfile.txt';
CsvName = 'summary.csv';
FID = fopen(CsvName, 'w');
S = fastaread(FileName);
for f = 1:length(S)
FileNameExp = regexp(S(f).Header, 'tr\|(\w+)\|', 'tokens');
SaveName = [FileNameExp{1}{1} '.png'];
data = proteinpropplot(S(f).Sequence,'propertytitle','hydrophobicity (Kyte & Doolittle)');
zero_crossings_indices = data.Indices(diff(sign(data.Data))~=0);
plot(data.Indices,data.Data,'-');
hold on
plot(zero_crossings_indices,0,'ro')
hold off
print(gcf, SaveName, '-dpng', '-r300', '-painters');
GeneName = FileNameExp{1}{1};
for k = 1:length(zero_crossings_indices)
sprintf('%s, %d', GeneName, zero_crossings_indices(k))
fprintf(FID, '%s, %d\n', GeneName, zero_crossings_indices(k));
end
end
fclose(FID);
Takshan
Takshan el 26 de Jun. de 2018
Editada: Takshan el 26 de Jun. de 2018
For one IDXXXX, multiple(100+) number of values are printed. I was expecting the total number(count) of "zero_crossings_indices" for each sequences IDXXXX also not the total sum of zero_crossings value.
OCDER
OCDER el 26 de Jun. de 2018
Perhaps it might be worth learning matlab?
replace this
for k = 1:length(zero_crossings_indices)
sprintf('%s, %d', GeneName, zero_crossings_indices(k))
fprintf(FID, '%s, %d\n', GeneName, zero_crossings_indices(k));
end
with
fprintf(FID, '%s, %d\n', GeneName, sum(zero_crossings_indices));
Takshan
Takshan el 26 de Jun. de 2018
Yeah, I should start it. Feeling so helpless for simple task. Btw thanks for your help and time. Also that last code giving the sum of values not the count of the no. of values.
IDXXX 10 20 30 40
*expecting*( total no. of value)
IDXXX 4
but getting(total sum of value)
IDXXX 100
OCDER
OCDER el 26 de Jun. de 2018
Oops, it should be length() instead.
fprintf(FID, '%s, %d\n', GeneName, length(zero_crossings_indices));
Takshan
Takshan el 26 de Jun. de 2018
Thanks bro. I used numel for length and worked .

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre View and Analyze Simulation Results en Centro de ayuda y File Exchange.

Preguntada:

el 25 de Jun. de 2018

Comentada:

el 26 de Jun. de 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by