⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 raw_scoremat.c

📁 ncbi源码
💻 C
字号:
/* * =========================================================================== * PRODUCTION $Log: raw_scoremat.c,v $ * PRODUCTION Revision 1000.1  2004/02/12 22:02:35  gouriano * PRODUCTION PRODUCTION: UPGRADED [CORE_001] Dev-tree R1.3 * PRODUCTION * =========================================================================== *//*  $Id: raw_scoremat.c,v 1000.1 2004/02/12 22:02:35 gouriano Exp $ * =========================================================================== * *                            PUBLIC DOMAIN NOTICE *               National Center for Biotechnology Information * *  This software/database is a "United States Government Work" under the *  terms of the United States Copyright Act.  It was written as part of *  the author's official duties as a United States Government employee and *  thus cannot be copyrighted.  This software/database is freely available *  to the public for use. The National Library of Medicine and the U.S. *  Government have not placed any restriction on its use or reproduction. * *  Although all reasonable efforts have been taken to ensure the accuracy *  and reliability of the software and data, the NLM and the U.S. *  Government do not and cannot warrant the performance or results that *  may be obtained by using this software or data. The NLM and the U.S. *  Government disclaim all warranties, express or implied, including *  warranties of performance, merchantability or fitness for any particular *  purpose. * *  Please cite the author in any work or product based on this material. * * =========================================================================== * * Author:  Aaron Ucko * * File Description: *   Protein alignment score matrices; shared between the two toolkits. * */#include <util/tables/raw_scoremat.h>#include <ctype.h>#include <string.h>#include "sm_blosum45.c"#include "sm_blosum62.c"#include "sm_blosum80.c"#include "sm_pam30.c"#include "sm_pam70.c"#include "sm_pam250.c"static const char kNCBIstdaa[] = "-ABCDEFGHIKLMNPQRSTVWXYZU*";int NCBISM_GetIndex(const SNCBIPackedScoreMatrix* sm, int aa){    const char *p;    /* Translate to NCBIeaa */    if (aa >= 0  &&  aa < sizeof(kNCBIstdaa)) {        aa = kNCBIstdaa[aa];    } else if (islower(aa)) {        aa = toupper(aa);    }    p = strchr(sm->symbols, aa);    return p ? p - sm->symbols : -1;}TNCBIScore NCBISM_GetScore(const SNCBIPackedScoreMatrix* sm,                           int aa1, int aa2){    int i1, i2;    i1 = NCBISM_GetIndex(sm, aa1);    i2 = NCBISM_GetIndex(sm, aa2);    if (i1 >=0  &&  i2 >= 0) {        return sm->scores[i1 * strlen(sm->symbols) + i2];    } else {        return sm->defscore;    }}void NCBISM_Unpack(const SNCBIPackedScoreMatrix* psm,                   SNCBIFullScoreMatrix* fsm){    const char* sym;    int         dim, i, j, aa1, aa2;    sym = psm->symbols;    dim = strlen(sym);    /* fill with default */    memset(&fsm->s, psm->defscore, NCBI_FSM_DIM * NCBI_FSM_DIM);    for (i = 0;  i < dim;  ++i) {        aa1 = sym[i];        /* get core (NCBIeaa x NCBIeaa) */        for (j = 0;  j < dim;  ++j) {            aa2 = sym[j];            fsm->s[aa1][aa2] = psm->scores[i * dim + j];        }        /* extend horizontally */        for (aa2 = 0;  aa2 < sizeof(kNCBIstdaa);  ++aa2) {            fsm->s[aa1][aa2] = fsm->s[aa1][(int)kNCBIstdaa[aa2]];        }        for (aa2 = 'a';  aa2 <= 'z';  ++aa2) {            fsm->s[aa1][aa2] = fsm->s[aa1][toupper(aa2)];        }    }    /* extend vertically */    for (aa1 = 0;  aa1 < sizeof(kNCBIstdaa);  ++aa1) {        memcpy(fsm->s[aa1], fsm->s[(int)kNCBIstdaa[aa1]], NCBI_FSM_DIM);    }    for (aa1 = 'a';  aa1 <= 'z';  ++aa1) {        memcpy(fsm->s[aa1], fsm->s[toupper(aa1)], NCBI_FSM_DIM);    }}/* * =========================================================================== * $Log: raw_scoremat.c,v $ * Revision 1000.1  2004/02/12 22:02:35  gouriano * PRODUCTION: UPGRADED [CORE_001] Dev-tree R1.3 * * Revision 1.3  2003/12/29 21:25:50  ucko * +PAM250 * * Revision 1.2  2003/10/02 15:37:34  ivanov * Get rid of compilation warnings * * Revision 1.1  2003/08/21 19:48:20  ucko * Add tables library (shared with C) for raw score matrices, etc. * * =========================================================================== */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -