Example #1
0
 def auto_file(self):
     pairs = []
     p = pd.read_csv(self.pairs_file, sep='\n', header=None, nrows=30)
     p = '\n'.join(p[0])
     if 'path length' in p or 'MAXIMUM GAP' in p:
         collinearity = base.read_colinearscan(self.pairs_file)
         pairs = [[v[0], v[2]] for k in collinearity for v in k[1]]
     elif 'MATCH_SIZE' in p or '## Alignment' in p:
         collinearity = base.read_mcscanx(self.pairs_file)
         pairs = [[v[0], v[2]] for k in collinearity for v in k[1]]
     elif '# Alignment' in p:
         collinearity = base.read_coliearity(self.pairs_file)
         pairs = [[v[0], v[2]] for k in collinearity for v in k[1]]
     elif '###' in p:
         collinearity = base.read_jcvi(self.pairs_file)
         pairs = [[v[0], v[2]] for k in collinearity for v in k[1]]
     elif ',' in p:
         collinearity = pd.read_csv(self.pairs_file, header=None)
         pairs = collinearity.values.tolist()
     else:
         collinearity = pd.read_csv(self.pairs_file, header=None, sep='\t')
         pairs = collinearity.values.tolist()
     df = pd.DataFrame(pairs)
     df = df.drop_duplicates()
     df[0] = df[0].astype(str)
     df[1] = df[1].astype(str)
     df.index = df[0]+','+df[1]
     return df
Example #2
0
 def auto_file(self, gff1, gff2):
     f=open(self.collinearity)
     p=' '.join(f.readlines()[0:30])
     if 'path length' in p or 'MAXIMUM GAP' in p:
         collinearity = base.read_colinearscan(self.collinearity)
     elif 'MATCH_SIZE' in p or '## Alignment' in p:
         col = base.read_mcscanx(self.collinearity)
         collinearity = []
         for block in col:
             newblock = []
             for k in block[1]:
                 if k[0] not in gff1.index or k[2] not in gff2.index:
                     continue
                 k[1], k[3] = gff1.loc[k[0], 'order'], gff2.loc[k[2], 'order']
                 newblock.append(k)
             if len(newblock) == 0:
                 continue
             collinearity.append([block[0], newblock, block[2]])
     elif '# Alignment' in p:
         collinearity = base.read_collinearity(self.collinearity)
     elif '###' in p:
         col = base.read_jcvi(self.collinearity)
         collinearity = []
         for block in col:
             newblock = []
             for k in block[1]:
                 if k[0] not in gff1.index or k[2] not in gff2.index:
                     continue
                 k[1], k[3] = gff1.loc[k[0], 'order'], gff2.loc[k[2], 'order']
                 newblock.append(k)
             if len(newblock) == 0:
                 continue
             collinearity.append([block[0], newblock, block[2]])
     return collinearity
Example #3
0
 def auto_file(self, gff1, gff2):
     p = pd.read_csv(self.collinearity, sep='\n', header=None, nrows=30)
     p = '\n'.join(p[0])
     if 'path length' in p or 'MAXIMUM GAP' in p:
         collinearity = base.read_colinearscan(self.collinearity)
     elif 'MATCH_SIZE' in p or '## Alignment' in p:
         col = base.read_mcscanx(self.collinearity)
         collinearity = []
         for block in col:
             newblock = []
             for k in block[1]:
                 if k[0] not in gff1.index or k[2] not in gff2.index:
                     continue
                 k[1], k[3] = gff1.loc[k[0], 'order'], gff2.loc[k[2],
                                                                'order']
                 newblock.append(k)
             if len(newblock) == 0:
                 continue
             collinearity.append([block[0], newblock, block[2]])
     elif '# Alignment' in p:
         collinearity = base.read_coliearity(self.collinearity)
     return collinearity