大蛋白质序列中的比对序列

时间:2012-11-24 15:22:50

标签: java sequence bioinformatics

我有一个大约5000的大蛋白质序列,所以我把它放在一个文本文件(p_sqn.txt)中,我有以下序列

例如

; SDJGSKLDJGSNMMUWEURYI

我必须找到百分比同一性评分函数,因此我必须在蛋白质序列中找到最相似的序列。 (protein_sequence.txt)

1 个答案:

答案 0 :(得分:1)

我首先要检查序列中每个点的Levenshtein distance

长度仅为5000,通过时间不会很长(毫秒)。

幸运的是,Apache commons-lang library提供了StringUtils.getLevenshteinDistance()实用程序方法。有了这个,代码只有几行:

import org.apache.commons.lang.StringUtils;

String protein; // the full sequence
String part; // your search string
int bestScore = Integer.MAX_VALUE;
int bestLocation = 0;
String bestSeqence = "";
for (int i = 0; i < protein.length() - part.length(); i++) {
    String sequence = protein.substring(i, part.length());
    int score = StringUtils.getLevenshteinDistance(sequence, part);
    if (score < bestScore) {
        bestScore = score;
        bestLocation = i;
        bestSeqence = sequence;
    }
}

// at this point in the code, the "best" variables will have data about the best match.

fyi,得分为零表示找到完全匹配。


为了便于阅读该文件,您可以使用Apache common-io library实用工具方法FileUtils.readFileToString(),如下所示:

import org.apache.commons.io.FileUtils;

String protein = FileUtils.readFileToString(new File("/some/path/to/myproteinfile.txt"));