一个小的python库,用于将字符矩阵(对齐)输入和输出panda
pandas-charm的Python项目详细描述
pandas charm是一个小python包,用于获取字符 矩阵(对齐)进出pandas。 使用此库使pandas可以与 BioPython和DendroPy。
在下列对象之间转换:
- Biopython MultipleSeqAlignment<;->;熊猫数据框
- 树状特征矩阵<;->;熊猫数据框
- “序列字典”<;->;熊猫数据框
代码已经用Python2.7、3.5和3.6进行了测试。
源存储库:https://github.com/jmenglund/pandas-charm
安装
对于大多数用户来说,最简单的方法可能是安装最新版本 主持于PyPI:
$ pip install pandas-charm
该项目位于https://github.com/jmenglund/pandas-charm和 也可以使用git安装:
$ git clone https://github.com/jmenglund/pandas-charm.git $ cd pandas-charm $ python setup.py install
您可以考虑安装pandas charm及其所需的python包 在虚拟环境中,以避免系统混乱 python路径。例如参见环境管理系统 conda或包 virtualenv。
运行测试
使用pytest:
进行测试$ pytest -v test_pandascharm.py
可以使用以下命令使用Coverage.py计算测试覆盖率:
$ coverage run -m pytest $ coverage report -m pandascharm.py
代码遵循PEP8中的样式约定,可以检查 使用pycodestyle:
$ pycodestyle pandascharm.py test_pandascharm.py setup.py
用法
下面的例子展示了如何使用熊猫的魅力。例如 使用python 3代码编写,但是pandas charm也应该与 Python2.7+。您需要手动安装Biopython和/或Dendropy 开始之前:
$ pip install biopython $ pip install dendropy
熊猫树状体特征矩阵数据框
>>> importpandasaspd>>> importpandascharmaspc>>> importdendropy>>> dna_string='3 5\nt1 TCCAA\nt2 TGCAA\nt3 TG-AA\n'>>> print(dna_string)3 5 t1 TCCAA t2 TGCAA t3 TG-AA >>> matrix=dendropy.DnaCharacterMatrix.get(... data=dna_string,schema='phylip')>>> df=pc.from_charmatrix(matrix)>>> df t1 t2 t3 0 T T T 1 C G G 2 C C - 3 A A A 4 A A A
默认情况下,字符存储为行,序列存储为列 在数据帧中。如果想让行保存序列,只需转置 熊猫中的矩阵:
>>> df.transpose() 0 1 2 3 4 t1 T C C A A t2 T G C A A t3 T G - A A
熊猫数据帧到树状体特征矩阵
>>> importpandasaspd>>> importpandascharmaspc>>> importdendropy>>> df=pd.DataFrame({... 't1':['T','C','C','A','A'],... 't2':['T','G','C','A','A'],... 't3':['T','G','-','A','A']})>>> df t1 t2 t3 0 T T T 1 C G G 2 C C - 3 A A A 4 A A A >>> matrix=pc.to_charmatrix(df,data_type='dna')>>> print(matrix.as_string('phylip'))3 5 t1 TCCAA t2 TGCAA t3 TG-AA
Biopython MultipleSeqAlignment to Pandas数据框
>>> fromioimportStringIO>>> importpandasaspd>>> importpandascharmaspc>>> fromBioimportAlignIO>>> dna_string='3 5\nt1 TCCAA\nt2 TGCAA\nt3 TG-AA\n'>>> f=StringIO(dna_string)# make the string a file-like object>>> alignment=AlignIO.read(f,'phylip-relaxed')>>> print(alignment)SingleLetterAlphabet() alignment with 3 rows and 5 columns TCCAA t1 TGCAA t2 TG-AA t3 >>> df=pc.from_bioalignment(alignment)>>> df t1 t2 t3 0 T T T 1 C G G 2 C C - 3 A A A 4 A A A
Pandas数据框到Biopython多重定位
>>> importpandasaspd>>> importpandascharmaspc>>> importBio>>> df=pd.DataFrame({... 't1':['T','C','C','A','A'],... 't2':['T','G','C','A','A'],... 't3':['T','G','-','A','A']})>>> df t1 t2 t3 0 T T T 1 C G G 2 C C - 3 A A A 4 A A A >>> alignment=pc.to_bioalignment(df,alphabet='generic_dna')>>> print(alignment)SingleLetterAlphabet() alignment with 3 rows and 5 columns TCCAA t1 TGCAA t2 TG-AA t3
“序列字典”到pandas数据框
>>> importpandasaspd>>> importpandascharmaspc>>> d={... 't1':'TCCAA',... 't2':'TGCAA',... 't3':'TG-AA'... }>>> df=pc.from_sequence_dict(d)>>> df t1 t2 t3 0 T T T 1 C G G 2 C C - 3 A A A 4 A A A
熊猫数据帧到“序列字典”
>>> importpandasaspd>>> importpandascharmaspc>>> df=pd.DataFrame({... 't1':['T','C','C','A','A'],... 't2':['T','G','C','A','A'],... 't3':['T','G','-','A','A']})>>> pc.to_sequence_dict(df){'t1': 'TCCAA', 't2': 'TGCAA', 't3': 'TG-AA'}
名称
熊猫魅力的名字来自熊猫图书馆,还有一个缩写 字符矩阵。
许可证
熊猫的魅力是分布在MIT license。