예제 #1
0
def testconservation(label, gname):
    """Conservation analysis"""

    tag = 'VP24'
    pd.set_option('max_colwidth', 800)
    gfile = os.path.join(genomespath, '%s.gb' % gname)
    g = sequtils.genbank2Dataframe(gfile, cds=True)
    res = g[g['locus_tag'] == tag]
    seq = res.translation.head(1).squeeze()
    print seq
    #alnrows = getOrthologs(seq)
    #alnrows.to_csv('blast_%s.csv' %tag)
    alnrows = pd.read_csv('blast_%s.csv' % tag, index_col=0)
    alnrows.drop_duplicates(subset=['accession'], inplace=True)
    alnrows = alnrows[alnrows['perc_ident'] >= 60]
    seqs = [
        SeqRecord(Seq(a.sequence), a.accession) for i, a in alnrows.iterrows()
    ]
    print seqs[:2]
    sequtils.distanceTree(seqs=seqs)  #,ref=seqs[0])
    #sequtils.ETETree(seqs, ref, metric)
    #df = sequtils.getFastaProteins("blast_found.faa",idindex=3)
    '''method='tepitope'
    P = base.getPredictor(method)
    P.predictSequences(df,seqkey='sequence')
    b = P.getBinders()'''
    return
예제 #2
0
파일: tests.py 프로젝트: tazjel/epitopemap
 def setUp(self):
     genbankfile = 'testing/zaire-ebolavirus.gb'
     self.df = sequtils.genbank2Dataframe(genbankfile, cds=True)
     self.testdir = 'testing'
     if not os.path.exists(self.testdir):
         os.mkdir(self.testdir)
     return
예제 #3
0
def testrun(gname):

    method = 'tepitope'  #'iedbmhc1'#'netmhciipan'
    path = 'test'
    gfile = os.path.join(genomespath, '%s.gb' % gname)
    df = sequtils.genbank2Dataframe(gfile, cds=True)
    #names = list(df.locus_tag[:1])
    names = ['VP24']
    alleles1 = [
        "HLA-A*02:02", "HLA-A*11:01", "HLA-A*32:07", "HLA-B*15:17",
        "HLA-B*51:01", "HLA-C*04:01", "HLA-E*01:03"
    ]
    alleles2 = [
        "HLA-DRB1*0101", "HLA-DRB1*0305", "HLA-DRB1*0812", "HLA-DRB1*1196",
        "HLA-DRB1*1346", "HLA-DRB1*1455", "HLA-DRB1*1457", "HLA-DRB1*1612",
        "HLA-DRB4*0107", "HLA-DRB5*0203"
    ]
    P = base.getPredictor(method)
    P.iedbmethod = 'IEDB_recommended'  #'netmhcpan'
    P.predictProteins(df,
                      length=11,
                      alleles=alleles2,
                      names=names,
                      save=True,
                      path=path)
    f = os.path.join('test', names[0] + '.mpk')
    df = pd.read_msgpack(f)
    P.data = df
    #b = P.getBinders(data=df)
    #print b[:20]
    base.getScoreDistributions(method, path)
    return
예제 #4
0
def genomeAnalysis(datadir, label, gname, method):
    """this method should be made independent of web app paths etc"""

    path = os.path.join(datadir, '%s/%s/%s' % (label, gname, method))
    #path='test'
    gfile = os.path.join(genomespath, '%s.gb' % gname)
    g = sequtils.genbank2Dataframe(gfile, cds=True)
    b = getAllBinders(path, method=method, n=5)
    P = base.getPredictor(method)
    res = b.groupby('name').agg({
        P.scorekey: [np.mean, np.size, np.max]
    }).sort()
    res.columns = res.columns.get_level_values(1)
    res = res.merge(g[['locus_tag', 'length', 'gene', 'product', 'order']],
                    left_index=True,
                    right_on='locus_tag')
    res['perc'] = res['size'] / res.length * 100
    res = res.sort('perc', ascending=False)

    top = b.groupby('peptide').agg({
        P.scorekey: np.mean,
        'allele': np.max,
        'name': lambda x: x
    }).reset_index()
    top = top.sort(P.scorekey, ascending=P.rankascending)
    cl = findClusters(b, method, dist=9, minsize=3)
    if cl is not None:
        gc = cl.groupby('name').agg({'density': np.max})
        res = res.merge(gc, left_on='locus_tag', right_index=True)
    #print res[:10]

    return res
예제 #5
0
def testconservation(label,gname):
    """Conservation analysis"""

    tag='VP24'
    pd.set_option('max_colwidth', 800)
    gfile = os.path.join(genomespath,'%s.gb' %gname)
    g = sequtils.genbank2Dataframe(gfile, cds=True)
    res = g[g['locus_tag']==tag]
    seq = res.translation.head(1).squeeze()
    print seq
    #alnrows = getOrthologs(seq)
    #alnrows.to_csv('blast_%s.csv' %tag)
    alnrows = pd.read_csv('blast_%s.csv' %tag,index_col=0)
    alnrows.drop_duplicates(subset=['accession'], inplace=True)
    alnrows = alnrows[alnrows['perc_ident']>=60]
    seqs=[SeqRecord(Seq(a.sequence),a.accession) for i,a in alnrows.iterrows()]
    print seqs[:2]
    sequtils.distanceTree(seqs=seqs)#,ref=seqs[0])
    #sequtils.ETETree(seqs, ref, metric)
    #df = sequtils.getFastaProteins("blast_found.faa",idindex=3)
    '''method='tepitope'
    P = base.getPredictor(method)
    P.predictSequences(df,seqkey='sequence')
    b = P.getBinders()'''
    return
예제 #6
0
def genomeAnalysis(datadir,label,gname,method):
    """this method should be made independent of web app paths etc"""

    path = os.path.join(datadir, '%s/%s/%s' %(label,gname,method))
    #path='test'
    gfile = os.path.join(genomespath,'%s.gb' %gname)
    g = sequtils.genbank2Dataframe(gfile, cds=True)
    b = getAllBinders(path, method=method, n=5)
    P = base.getPredictor(method)
    res = b.groupby('name').agg({P.scorekey:[np.mean,np.size,np.max]}).sort()
    res.columns = res.columns.get_level_values(1)
    res = res.merge(g[['locus_tag','length','gene','product','order']],
                            left_index=True,right_on='locus_tag')
    res['perc'] = res['size']/res.length*100
    res = res.sort('perc',ascending=False)

    top = b.groupby('peptide').agg({P.scorekey:np.mean,'allele':np.max,
                    'name': lambda x: x}).reset_index()
    top = top.sort(P.scorekey,ascending=P.rankascending)
    cl = findClusters(b, method, dist=9, minsize=3)
    if cl is not None:
        gc = cl.groupby('name').agg({'density':np.max})
        res = res.merge(gc,left_on='locus_tag',right_index=True)
    #print res[:10]

    return res
예제 #7
0
def testBcell(gname):
    path = 'test'
    gfile = os.path.join(genomespath, '%s.gb' % gname)
    df = sequtils.genbank2Dataframe(gfile, cds=True)
    names = ['VP24']
    P = base.getPredictor('bcell')
    P.iedbmethod = 'Chou-Fasman'
    P.predictProteins(df, names=names, save=True, path=path)
    print P.data
    return
예제 #8
0
def testBcell(gname):
    path='test'
    gfile = os.path.join(genomespath,'%s.gb' %gname)
    df = sequtils.genbank2Dataframe(gfile, cds=True)
    names=['VP24']
    P = base.getPredictor('bcell')
    P.iedbmethod='Chou-Fasman'
    P.predictProteins(df,names=names,save=True,path=path)
    print P.data
    return
예제 #9
0
def testFeatures():
    """test feature handling"""

    fname = os.path.join(datadir, 'MTB-H37Rv.gb')
    df = sequtils.genbank2Dataframe(fname, cds=True)
    df = df.set_index('locus_tag')
    keys = df.index
    name = 'Rv0011c'
    row = df.ix[name]
    seq = row.translation
    prod = row['product']
    rec = SeqRecord(Seq(seq), id=name, description=prod)
    fastafmt = rec.format("fasta")
    print fastafmt
    print row.to_dict()
    ind = keys.get_loc(name)
    previous = keys[ind - 1]
    if ind < len(keys) - 1:
        next = keys[ind + 1]
    else:
        next = None
    return
예제 #10
0
def testFeatures():
    """test feature handling"""

    fname = os.path.join(datadir,'MTB-H37Rv.gb')
    df = sequtils.genbank2Dataframe(fname, cds=True)
    df = df.set_index('locus_tag')
    keys = df.index
    name='Rv0011c'
    row = df.ix[name]
    seq = row.translation
    prod = row['product']
    rec = SeqRecord(Seq(seq),id=name,description=prod)
    fastafmt = rec.format("fasta")
    print fastafmt
    print row.to_dict()
    ind = keys.get_loc(name)
    previous = keys[ind-1]
    if ind<len(keys)-1:
        next = keys[ind+1]
    else:
        next=None
    return
예제 #11
0
def testrun(gname):

    method = 'tepitope'#'iedbmhc1'#'netmhciipan'
    path='test'
    gfile = os.path.join(genomespath,'%s.gb' %gname)
    df = sequtils.genbank2Dataframe(gfile, cds=True)
    #names = list(df.locus_tag[:1])
    names=['VP24']
    alleles1 = ["HLA-A*02:02", "HLA-A*11:01", "HLA-A*32:07", "HLA-B*15:17", "HLA-B*51:01",
              "HLA-C*04:01", "HLA-E*01:03"]
    alleles2 = ["HLA-DRB1*0101", "HLA-DRB1*0305", "HLA-DRB1*0812", "HLA-DRB1*1196", "HLA-DRB1*1346",
            "HLA-DRB1*1455", "HLA-DRB1*1457", "HLA-DRB1*1612", "HLA-DRB4*0107", "HLA-DRB5*0203"]
    P = base.getPredictor(method)
    P.iedbmethod='IEDB_recommended' #'netmhcpan'
    P.predictProteins(df,length=11,alleles=alleles2,names=names,
                        save=True,path=path)
    f = os.path.join('test', names[0]+'.mpk')
    df = pd.read_msgpack(f)
    P.data=df
    #b = P.getBinders(data=df)
    #print b[:20]
    base.getScoreDistributions(method, path)
    return