【问题标题】:Error using smith-waterman from skbio 0.5.4使用 skbio 0.5.4 中的 smith-waterman 时出错
【发布时间】:2019-02-26 22:38:36
【问题描述】:

我正在使用来自 skbio (0.5.4) 的 smith-waterman 的包装版本,但我有一个未预料到的错误:

_,分数,_ = local_pairwise_align_ssw(protein_list[idx1],protein_list[idx2],substitution_matrix = blosum62)
文件“/anaconda3/lib/python3.6/site-packages/skbio/alignment/_pairwise.py”,第 732 行,在 local_pairwise_align_ssw
验证=假)
文件“/anaconda3/lib/python3.6/site-packages/skbio/alignment /_tabular_msa.py”,第 785 行,在 __init__
reset_index=minter 为 None 并且 index 为 None)
文件“/anaconda3/lib/python3.6/site-packages/skbio/alignment /_tabular_msa.py”,第 1956 行,扩展
self._assert_valid_sequences(sequences)
文件“/anaconda3/lib/python3.6/site-packages/skbio/alignment /_tabular_msa.py”,第 2035 行,在 _assert_valid_sequences
%(长度,预期长度))
ValueError: 每个序列的长度必须与 MSA 中的位置数匹配:232 != 231

奇怪的是,有时错误出现在蛋白质对 0-10 上,而其他蛋白质对出现在 0-116 上。所以,我不认为这是蛋白质 fromat 的错误。

【问题讨论】:

    标签: skbio


    【解决方案1】:

    我也有类似的问题。但是,我能够将错误限制为优化的 SSW 版本。所以序列格式没有错误。

    import warnings
    from skbio.sequence import Protein
    with warnings.catch_warnings():
        warnings.filterwarnings("ignore", message="...")
        from Bio.Align import substitution_matrices
    from skbio.alignment import local_pairwise_align_ssw
    from skbio.alignment import local_pairwise_align
    
    peptide1 = Protein("CGAGDNQAGTALIF")
    peptide2 = Protein("CAGEEGGGADGLTF")
    gap_open_penalty = 10
    gap_extend_penalty = 10
    substitution_matrix = substitution_matrices.load("BLOSUM45")
    
    ## works correct
    rv = local_pairwise_align_ssw(
          sequence1 = peptide1
        , sequence2 = peptide2
        , gap_open_penalty=1
        , gap_extend_penalty=1
        , substitution_matrix=substitution_matrix
    )
    print(rv)
    
    ## but if I swap peptide1 and peptide 2 the ValueError occur
    rv = local_pairwise_align_ssw(
          sequence1 = peptide2
        , sequence2 = peptide1
        , gap_open_penalty=1
        , gap_extend_penalty=1
        , substitution_matrix=substitution_matrix
    )
    print(rv)
    
    ## if I do the same with local_pairwise_align it works!
    rv = local_pairwise_align(
          seq1=peptide2
        , seq2=peptide1
        , gap_open_penalty=1
        , gap_extend_penalty=1
        , substitution_matrix=substitution_matrix
    )
    print(rv)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-28
      • 1970-01-01
      • 1970-01-01
      • 2012-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多