Overview

机器学习算法在项目中应用的时候,有时候会用到分离fasta格式的正负样本。于是就写了一个python脚本,效果不错,记录一下。

1. separatePosNeg.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# vim:fenc=utf-8
import fileinput
import sys
import re
 
ls=fileinput.input(sys.argv[1])
check_head = re.compile(r'\>')
cls = ''
smplist = ''
for line, strin in enumerate(ls):
    if check_head.match(strin):
        strin_vec=strin.split('|')
        cls = strin_vec[len(strin_vec)-1].strip()
        if cls == str(sys.argv[2]):
            smplist+=strin.strip()
            smplist+='\n'
            smplist+=ls.next()
print smplist

记录下在linux命令行中的用法:

1
2
3
4
#提取正样本时:
python separatePosNeg.py original.fasta '1' >> pos.fasta
#提取负样本时:
python separatePosNeg.py original.fasta '-1' >> neg.fasta