Azzera filtri
Azzera filtri

String Replacing for a DNA sequence

2 visualizzazioni (ultimi 30 giorni)
I want to extract the row from a table whose count is greater than 1, where the first column consists of strings and second column its count. For eg, Table A = AAGC 1 GCCU 2 AGCU 2 CCGU 1 The desired output is : GCCU 2 AGCU 2
  2 Commenti
Andrei Bobrov
Andrei Bobrov il 2 Giu 2017
Modificato: Andrei Bobrov il 2 Giu 2017
Please example with beginning sequence and with finished result.
Jan
Jan il 2 Giu 2017
What are "repeated substring" exactly?

Accedi per commentare.

Risposta accettata

Andrei Bobrov
Andrei Bobrov il 2 Giu 2017
Modificato: Andrei Bobrov il 2 Giu 2017
A = {'AAGC', 1 ;'GCCU', 2 ;'AGCU', 2; 'CCGU' 1};
T = cell2table(A,'var',{'DNA','count'});
Tout = T(T.count > 1,:);

Più risposte (1)

Jan
Jan il 2 Giu 2017
Imagine that you worked out how to get a cell string containing the sub-strings:
C = {'GTTA', 'TTAG', 'TAGC', 'GTTA', 'GTTA', 'GTTA', 'TTAG'};
Now find the repeated strings:
repeated = strcmp(C(1:end-1), C(2:end));
Unfortuinately the description is not clear:
if GTTA is repeated 4 times then replace it with another non terminal for example,
A or something like that.
Do you want to replace each repeated string by the character 'A', or all 4 repetitions by one 'A'? This might be:
C(repeated) = {'A'};
[B, N, Index] = RunLength(repeated);
As long as I'm not sure, what you are asking for, I will not spend more time in creating an explicite answer. But you can try it by your own.

Categorie

Scopri di più su Get Started with MATLAB in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by