我对多序列比对有问题。我有两个序列,如下所示,我试图使用生物have方法对齐它们,得到这样的错误。我不知道是怎么回事。我知道序列不是相同的长度,但这不重要。
线程"main“中的异常:1在org.forester.evoinference.distance.NeighborJoining.getValueFromD(NeighborJoining.java:150) at org.forester.evoinference.distance.NeighborJoining.execute(NeighborJoining.java:123) at org.biojava3.alignment.GuideTree.(GuideTree.java:88) at org.biojava3.alignment.Alignments.getMultipleSequenceAlignment(Alignments.java:183) at Fasta.main(Fasta.java:41)
public class Fasta {
public static void main(String[] args) throws Exception{
ArrayList<String> fileName = new ArrayList<String> ();
fileName.add("2M3T.fasta.txt");
fileName.add("3LWK.fasta.txt");
ArrayList<ProteinSequence> al = new ArrayList<ProteinSequence>();
//ArrayList<ProteinSequence> all = new ArrayList<ProteinSequence>();
for (String fn : fileName)
{
al = getProteinSequenceFromFasta(fn);
//all.add(al.get(0));
for (ProteinSequence s : al)
{
System.out.println(s);
}
}
Profile<ProteinSequence, AminoAcidCompound> profile = Alignments.getMultipleSequenceAlignment(al);
System.out.printf("Clustalw:%n%s%n", profile);
ConcurrencyTools.shutdown();
}
//for (int i=0;i<sequence.size();i++)
// System.out.println(sequence);
public static ArrayList<ProteinSequence> getProteinSequenceFromFasta(String file) throws Exception{
LinkedHashMap<String, ProteinSequence> a = FastaReaderHelper.readFastaProteinSequence(new File(file));
//sztuczne
ArrayList<ProteinSequence> sequence = new ArrayList<ProteinSequence>(a.values());
return sequence;
}
}发布于 2014-06-26 14:24:12
我猜问题就在这条线上:
for (String fn : fileName)
{
al = getProteinSequenceFromFasta(fn);
...
}您正在覆盖每个文件的a1内容。(我假设您希望将所有fasta记录添加到a1中。如果您的fasta文件每个只有一个记录,那么它不能对单个记录进行多次对齐。
你可能想
for (String fn : fileName)
{
al.addAll(getProteinSequenceFromFasta(fn) );
...
}当然,您所使用的库应该首先检查以确保有超过一个序列.
https://stackoverflow.com/questions/24428773
复制相似问题