首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程"main“java.lang.ArrayIndexOutOfBoundsException中的生化异常:

线程"main“java.lang.ArrayIndexOutOfBoundsException中的生化异常:
EN

Stack Overflow用户
提问于 2014-06-26 11:02:32
回答 1查看 100关注 0票数 0

我对多序列比对有问题。我有两个序列,如下所示,我试图使用生物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)

代码语言:javascript
复制
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;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-26 14:24:12

我猜问题就在这条线上:

代码语言:javascript
复制
for (String fn : fileName)
{
    al = getProteinSequenceFromFasta(fn);
...
 }

您正在覆盖每个文件的a1内容。(我假设您希望将所有fasta记录添加到a1中。如果您的fasta文件每个只有一个记录,那么它不能对单个记录进行多次对齐。

你可能想

代码语言:javascript
复制
for (String fn : fileName)
{
    al.addAll(getProteinSequenceFromFasta(fn) );
...
 }

当然,您所使用的库应该首先检查以确保有超过一个序列.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24428773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档