示例#1
0
        internal static IList <Protein> GetProteinWithIds(ProteomeDbPath proteomeDbPath, IStatelessSession session, ICollection <long> ids)
        {
            if (ids.Count == 0)
            {
                return(new Protein[0]);
            }
            // ReSharper disable LocalizableElement
            var hql = "SELECT p, pn"
                      + "\nFROM " + typeof(DbProtein) + " p, " + typeof(DbProteinName) + " pn"
                      + "\nWHERE p.Id = pn.Protein.Id AND p.Id IN (:Ids)";
            var query = session.CreateQuery(hql);

            query.SetParameterList("Ids", ids);
            // ReSharper restore LocalizableElement
            var proteins = new List <Protein>();

            var rowsByProteinId = query.List().Cast <object[]>().ToLookup(row => ((DbProtein)row[0]).Id.Value);

            foreach (var grouping in rowsByProteinId)
            {
                var protein = (DbProtein)grouping.First()[0];
                var names   = grouping.Select(row => row[1]).Cast <DbProteinName>();
                proteins.Add(new Protein(proteomeDbPath, protein, names));
            }
            return(proteins);
        }
示例#2
0
 public ProteinMatchSettings(ProteomeDbPath proteomeDbPath, IProtease protease, ProteinMatchType proteinMatchTypes, String searchText)
 {
     ProteomeDbPath = proteomeDbPath;
     Protease       = protease;
     if (protease != null)
     {
         using (var proteomeDb = proteomeDbPath.OpenProteomeDb())
         {
             Digestion = proteomeDb.GetDigestion(protease.Name);
         }
     }
     MatchTypes = proteinMatchTypes;
     SearchText = searchText;
 }
示例#3
0
 internal Protein(ProteomeDbPath proteomeDbPath, DbProtein protein, IEnumerable <DbProteinName> proteinNames)
     : this(proteomeDbPath, protein, (DbProteinName)null)
 {
     _proteinMetadata  = ProteinMetadata.EMPTY;
     _alternativeNames = new List <ProteinMetadata>();
     foreach (DbProteinName proteinName in proteinNames)
     {
         if (proteinName.IsPrimary)
         {
             _proteinMetadata = proteinName.GetProteinMetadata();
         }
         else
         {
             _alternativeNames.Add(proteinName.GetProteinMetadata()); // copies the ProteinMetadata info
         }
     }
 }
示例#4
0
 internal Protein(ProteomeDbPath proteomeDb, DbProtein protein, DbProteinName primaryName)
     : base(proteomeDb, protein)
 {
     Sequence = protein.Sequence;
     if (primaryName != null)
     {
         _proteinMetadata = primaryName.GetProteinMetadata();
         if (primaryName.Protein != null)
         {
             // grab the alternative names now, rather than going back to the db later
             _alternativeNames = new List <ProteinMetadata>();
             foreach (var name in primaryName.Protein.Names)
             {
                 if (!name.IsPrimary)
                 {
                     _alternativeNames.Add(name.GetProteinMetadata());
                 }
             }
         }
     }
 }
示例#5
0
        private ProteinMetadata _proteinMetadata; // name, description, accession, gene etc

        internal Protein(ProteomeDbPath proteomeDb, DbProtein protein)
            : this(proteomeDb, protein, (DbProteinName)null)
        {
            _proteinMetadata = ProteinMetadata.EMPTY;
        }
示例#6
0
 public ProteinMatchSettings(ProteomeDbPath proteomeDbPath, ProteinMatchTypes proteinMatchTypes, String searchText)
 {
     ProteomeDbPath = proteomeDbPath;
     MatchTypes     = proteinMatchTypes;
     SearchText     = searchText;
 }
示例#7
0
 protected EntityModel(ProteomeDbPath proteomeDb, T entity)
 {
     _entity        = entity;
     ProteomeDbPath = proteomeDb;
 }