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); }
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; }
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 } } }
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()); } } } } }
private ProteinMetadata _proteinMetadata; // name, description, accession, gene etc internal Protein(ProteomeDbPath proteomeDb, DbProtein protein) : this(proteomeDb, protein, (DbProteinName)null) { _proteinMetadata = ProteinMetadata.EMPTY; }
public ProteinMatchSettings(ProteomeDbPath proteomeDbPath, ProteinMatchTypes proteinMatchTypes, String searchText) { ProteomeDbPath = proteomeDbPath; MatchTypes = proteinMatchTypes; SearchText = searchText; }
protected EntityModel(ProteomeDbPath proteomeDb, T entity) { _entity = entity; ProteomeDbPath = proteomeDb; }