我有一個具有設置格式的程序的文本輸出。我需要解析其中的200個來提取信息。我在MATLAB中用'textscan'嘗試過,但沒有奏效。以下是輸入:Matlab中的文本文件處理
MOTIFS SUMMARY:
1) TTATAGCCGC (GCGGCTATAA) 1.986
2) AAACCGCCTC (GAGGCGGTTT) 1.865
DETAILED RESULTS:
1) TTATAGCCGC (GCGGCTATAA) 1.986
Matrix: MAT1 TTATAGCCGC
A 0.1249 0.177 0.7364 0.1189 0.7072 0.1149 0.09858 0.1096
C 0.0899 0.07379 0.1136 0.1298 0.08662 0.1293 0.7528 0.721
G 0.06828 0.1284 0.07195 0.1031 0.1352 0.6708 0.05556 0.0713
T 0.7169 0.6209 0.07802 0.6482 0.07096 0.08492 0.09305 0.09804
OCCURRENCES:
>GENE_1 1 TTATAGCCGC 1 561 +
>GENE_2 24 TAATAGCCGC 0.928699 762 -
>GENE_3 10 ATATAGCCGC 0.904905 185 -
>GENE_1 7 TTATAGCAGC 0.901785 726 +
**********
2) AAACCGCCTC (GAGGCGGTTT) 1.865
Matrix: MAT2 AAACCGCCTC
A 0.653 0.7401 0.7763 0.1323 0.09619 0.09134 0.07033 0.1383
C 0.1163 0.07075 0.09441 0.749 0.6347 0.1132 0.6559 0.6982
G 0.09136 0.09402 0.07385 0.04209 0.1799 0.7332 0.1241 0.07568
T 0.1393 0.09518 0.05541 0.07659 0.08921 0.06234 0.1497 0.08786
OCCURRENCES:
>GENE_1 21 AAACCGCCTC 1 963 +
>GENE_2 14 AAACGGCCTC 0.928198 212 +
>GENE_2 8 AAACCGTCTC 0.92009 170 +
>GENE_4 3 TAACCGCCTC 0.918883 370 +
**********
我想統計每個主題下的唯一的()發生,並將其添加到MOTIF內容和他們的最終平均。我的預期輸出是:
MOTIFS SUMMARY:
1) TTATAGCCGC (GCGGCTATAA) 1.986 3
2) AAACCGCCTC (GAGGCGGTTT) 1.865 3
AVERAGE OCCURRENCE: 3
對於基序1,唯一的出現是3(GENE_1,GENE_2,GENE_3)。同樣對於基序2,它又是3(GENE_1,GENE_2,GENE_4)
如何使用OCCURRENCES和******作爲塊?所以,我可以正則表達式GENE_x來存儲和計數。
請幫忙。
感謝,
AP
你對'textscan'使用了什麼輸入,但沒有奏效?由於它是一種相對複雜的格式,因此您需要有相當數量的代碼來處理它。你不能期望'textscan'能夠魔法般地理解所有這些。 – Suever
正在簡化文本文件的一個選項?這似乎非常複雜。無論如何,我建議使用'textscan()'以方便的格式(例如在結構中)和**然後**處理提取的信息來獲取信息。 –