How to initiate peppy using different methods
The primary use case of peppy is to create a peppy.Project object, which will give you an API for interacting with your project and sample metadata. There are multiple ways to instantiate a peppy.Project.
The most common is to use a configuration file; however, you can also use a CSV file (sample sheet), or a sample YAML file (sample sheet), or use Python objects directly, such as a pandas DataFrame, or a Python dict.
1. From PEP configuration file
Section titled “1. From PEP configuration file”import peppyproject = peppy.Project.from_pep_config("path/to/project/config.yaml")2. FROM CSV file (sample sheet)
Section titled “2. FROM CSV file (sample sheet)”import peppyproject = peppy.Project.from_pep_config("path/to/project/sample_sheet.csv")You can also instantiate directly from a URL to a CSV file:
import peppyproject = peppy.Project("https://raw.githubusercontent.com/pepkit/example_peps/master/example_basic/sample_table.csv")3. From YAML sample sheet
Section titled “3. From YAML sample sheet”import peppy
project = peppy.Project.from_sample_yaml("path/to/project/sample_sheet.yaml")4. From a pandas DataFrame
Section titled “4. From a pandas DataFrame”import pandas as pdimport peppydf = pd.read_csv("path/to/project/sample_sheet.csv")project = peppy.Project.from_pandas(df)5. From a peppy-generated dict
Section titled “5. From a peppy-generated dict”Store a peppy.Project object as a dict using prj.to_dict(). Then, load it with Project.from_dict():
import peppy
project = peppy.Project("https://raw.githubusercontent.com/pepkit/example_peps/master/example_basic/sample_table.csv")project_dict = project.to_dict(extended=True)project_copy = peppy.Project.from_dict(project_dict)
# now you can check if this project is the same as the original projectprint(project_copy == project)Or, you could generate an equivalent dictionary in some other way:
import peppyproject = peppy.Project.from_dict( {'_config': {'description': None, 'name': 'example_basic', 'pep_version': '2.0.0', 'sample_table': 'sample_table.csv',}, '_sample_dict': [{'organism': 'pig', 'sample_name': 'pig_0h', 'time': '0'}, {'organism': 'pig', 'sample_name': 'pig_1h', 'time': '1'}, {'organism': 'frog', 'sample_name': 'frog_0h', 'time': '0'}, {'organism': 'frog', 'sample_name': 'frog_1h', 'time': '1'}], '_subsample_list': [[{'read1': 'frog1a_data.txt', 'read2': 'frog1a_data2.txt', 'sample_name': 'frog_0h'}, {'read1': 'frog1b_data.txt', 'read2': 'frog1b_data2.txt', 'sample_name': 'pig_0h'}, {'read1': 'frog1c_data.txt', 'read2': 'frog1b_data2.txt', 'sample_name': 'pig_0h'}]]})