# all files / src/ Evidence.js

23.53% Statements 4/17
0% Branches 0/16
12.5% Functions 1/8
23.53% Lines 4/17

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65

    1×

    1×
    1×

    1×/*jslint node: true */
    /*jshint laxbreak: true */
    /*jshint laxcomma: true */
    "use strict";

    var _ = require("underscore");

    var Evidence = function() {
        return {
            manual:
                ['ECO:0000269', 'ECO:0000303', 'ECO:0000305', 'ECO:0000250', 'ECO:0000255', 'ECO:0000244', 'ECO:0000312']
            , automatic: ['ECO:0000256', 'ECO:0000213', 'ECO:0000313', 'ECO:0000259']
            , acronym: {
                'ECO:0000269': 'EXP', 'ECO:0000303': 'NAS', 'ECO:0000305': 'IC', 'ECO:0000250': 'ISS', 'ECO:0000255': 'ISM',
                'ECO:0000244': 'MIXM', 'ECO:0000312': 'MI',
                'ECO:0000256': 'AA', 'ECO:0000213': 'MIXA', 'ECO:0000313': 'AI','ECO:0000259': 'AA'
            }, text: {
                'ECO:0000269': 'Manual assertion based on experiment',
                'ECO:0000303': 'Manual assertion based on opinion',
                'ECO:0000305': 'Manual assertion inferred by curator',
                'ECO:0000250': 'Manual assertion inferred from sequence similarity',
                'ECO:0000255': 'Manual assertion according to rules',
                'ECO:0000244': 'Manual assertion inferred from combination of experimental and computational evidence',
                'ECO:0000312': 'Manual assertion inferred from database entries',
                'ECO:0000256': 'Automatic assertion according to rules',
                'ECO:0000259': 'Automatic assertion inferred from signature match',
                'ECO:0000213': 'Automatic assertion inferred from combination of experimental and computational evidence',
                'ECO:0000313': 'Automatic assertion inferred from database entries'
            }, isLSS: function(evidences) {
                return _.some(evidences, function(evidence) {
                    return _.contains(Evidence.automatic, evidence.code);
                });
            }, getSourceType: function(xrefs){
                return {
                    hasUniProt: _.some(xrefs, function(xref) { return xref.name === 'UniProt'}),
                    hasClinVar: _.some(xrefs, function(xref) { return xref.name === 'clinvar'}),
                    hasLSS: _.some(xrefs, function(xref) {
                        return xref.name === 'Ensembl'
                        || xref.name === 'dbSNP'
                        || xref.name === 'cosmic curated'
                        || xref.name === '1000Genomes'
                        || xref.name === 'ExAC'
                        || xref.name === 'ESP'
                    })
                }
            },existAssociation: function(association) {
                if (association) {
                    if (association.length !== 0) {
                        if ((association[0].moreInfo && (association[0].moreInfo.length !== 0))
                            || association[0].name || association[0].description){
                            return true;
                        } else {
                            return false;
                        }
                    } else {
                        return false;
                    }
                } else {
                    return false;
                }
            }
        };
    }();

    module.exports = Evidence;