agtc

Agronomic experiments data Template Creator is a set of functions written in python that allow you to create custom templates to collect data for most of the typical agronomic experiments.

https://github.com/ds4ag/agtc

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 2 DOI reference(s) in README
  • Academic publication links
    Links to: frontiersin.org, zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.9%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Agronomic experiments data Template Creator is a set of functions written in python that allow you to create custom templates to collect data for most of the typical agronomic experiments.

Basic Info
  • Host: GitHub
  • Owner: DS4Ag
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Size: 87.9 KB
Statistics
  • Stars: 2
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 1
Created over 2 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License Citation

README.es.md

Wang lab logo

Python version JupyterLab Jupyter Notebook YAML 1.2

DOI

Read this in English

Clic en este enlace para ver los videos tutoriales.

Nota: para abrir los enlaces de manual en una nueva ventana usa CTRL+click (Windows y Linux) o CMD+click (MacOS).

¿Qué es AgTC?

Agronomic Experiments Data Template Creator son un conjunto de funciones escritas en Python que permiten crear plantillas personalizadas para colectar datos en la mayoría de los experimentos agronómicos comunes. También puede ser utilizada como plantilla para los archivos “Field” en la aplicación Field Book app.

¿Cómo ejecutar AgTC?

  • Opción 1

    • Usando un ambiente de Jupyter Hub.
    • Para miembros de Purdue University Jupyter Hub está disponible en https://notebook.scholar.rcac.purdue.edu/. Requiere el uso de BoilerKey Two-Factor Authentication.
  • Opción 2

    • Puedes hacer una instalación de JupyterLab o de Jupyter Notebook. También puedes instalar un gestor de entornos como conda, mamba, o pipenv.

Prerrequisitos

  • Opción 1

    • Using Requirements File

sh pip install -r requirements.txt - Opción 2

  • Instala los siguentes paquetes usando el pip package installer de Python.

    PyYAML

    ```sh pip install pyyaml

    [Pandas](https://pypi.org/project/pandas/) sh pip install pandas

    ```

Clona o descarga AgTC desde el repositorio de GitHub

  • Opción Clonar.

    1. Abre una nueva terminal en Jupyter Notebook.

    New > Terminal

2. Clona el repositorio de GitHub. 

```sh
    git clone https://github.com/Purdue-LuisVargas/AgTC.git

```
  • Opción descargar:
1. Descarga el repositorio de GitHub usando el siguiente enlace: [https://github.com/Purdue-LuisVargas/AgTC](https://github.com/Purdue-LuisVargas/AgTC).

2. Descomprime el folder, después copia (si estas usando Jupyter en modo local) o carga los archivos descargados (si esas usando Jupyter Hub) en tu folder de Jupyter Notebook.

Carga la Plantilla Base

Carga la Plantilla Base en la carpeta ./input. El archivo debe estar en formato CSV y contener la información que es diferente por cada unidad experimental (parcela, maceta, cámara de crecimiento, etc.). Por ejemplo, el número de parcela y repetición, el nombre del genotipo, etc. La siguiente tabla es un ejemplo de columnas y filas que podría tener una Plantilla Base:

plot genotype repetition
1 PI594301 3
2 LD-07-3395bf 23
3 SA1730464 18
4 PI154189 14
5 PI594451 2
... ... ...
71 CR16-0042 20
72 SA1811280 25
73 E19517GT 24
74 LD-07-3395bf 23
75 PI6548362 8

Le recomendamos el uso de ontologías y vocabularios controlados para nombrar variables de cultivos. Para conocer más sobre ontologías de cultivos, visite el sitio https://cropontology.org/about.

Contenido del Archivo de Configuración

El archivo config.yml es un documento YML que se puede abrir con Jupyter notebooks o con un editor de texto. El archivo se divide en seis Bloques de configuraciones, donde cada bloque se identifica con letras mayúsculas. Dichos Bloques puede tener Claves, Valores y/o Listas.

Por ejemplo, la siguiente estructura de datos contiene los elementos más comunes en el archivo config.yml.

sh TEMPLATE_INPUT: Folder : ./input/ Sample_name: - A - B Donde:

TEMPLATE_INPUT = BLOQUE

Folder = Clave

Samplename = _Clave

./input/ = Valor

A, B = Lista

Las estructuras de datos en el archivo config.yml podrían tener uno de los siguientes arreglos.

  • Caso 1 sh BLOQUE: Clave: Valor

  • Caso 2 sh BLOQUE: Clave: - Lista

  • Caso 3 ```sh BLOQUE:

    • Lista ```

Actualizar el Archivo de Configuración

Actualiza el archivo config.yml con la información del experimento.

Reglas generales: 1. No es recomendable cambiar los nombres de los Bloques. Si los cambias, tendrás que actualizar la siguiente línea de código del archivo main.ipynb. sh functions.create_new_template('config.yml', 'TEMPLATE_INPUT', 'COLUMNS_TEMPLATE', 'NEW_COLUMNS', 'SAMPLES_PER_PLOT', 'SAMPLE_IDENTIFIER', 'TEMPLATE_OUTPUT')

  1. Puedes modificar el nombre de cualquier Clave. Adicionalmente, en algunos Bloques tienes que eliminar o agregar más Claves según la información del experimento.
  2. Tienes que actualizar los Valores con información del experimento.
  3. Tienes que agregar o eliminar elementos la Lista como sea necesario.
  4. Asegúrate de mantener la identacion adecuada en cada línea de código. Usa la barra espaciadora en lugar del la techa del tabulación.

TEMPLATE_INPUT

Indica la ruta y nombre del archivo de la Plantilla Base.

  • Puedes modificar el nombre de las Claves.
  • Debes actualizar el los Valores. (ej. trialInformationPPACsoybeanM2y22.csv) con el nombre de la Plantilla Base. sh TEMPLATE_INPUT: Folder : ./input/ Input_template_file_name : trialInformation_PPAC_soybean_M2_y22.csv

COLUMNS_TEMPLATE

Contiene los nombres de las columnas que serán seleccionadas de la Plantilla Base. - Incluso si quieres del mantener todas las columnas de la Plantilla Base, tienes que escribir sus nombres como una Lista. Agrega o elimina todas los elementos de la Lista como sea necesario.

sh COLUMNS_TEMPLATE: - Plot - Repetition - Genotype

NEW_COLUMNS

Permite escribir los nombres y valores de las columnas que se añadirán a la Nueva Plantilla. - Puedes agregar, eliminar o modificar Claves de acuerdo con la información de tu experimento. - Tienes que actualizar los Valores de acuerdo de acuerdo con la información de tu experimento.

sh NEW_COLUMNS: Experiment : ACRE-Biomass Season : y22 Environment : Early planting date Measurment : Plant height Sampling_identifier : Sampling-2

SAMPLESPERPLOT

Este bloque es usado para especificar el numero de veces que se repite en una medida en la misma unidad experimental (parcela, maceta, cámara de crecimiento, etc.). Esto creara una fila por cada submuestra de acuerdo con los elementos de la Lista que indique el usuario.

  • Tienes que especificar los elementos de la Lista con el nombre con el cual quieres identificar cada submuestra. Elimina, agrega o cambia las secuencias de acuerdo con las características de la medida para la que se creara la Nueva Plantilla.

sh SAMPLES_PER_PLOT: Sample_name: - A - B - C - D

SAMPLE_IDENTIFIER

Permite especificar los nombres de columnas con los valores que serán usados para crear un identificador único para cada submuestra (fila).

  • No debes de agregar o eliminar Claves, pero puedes cambiar su nombre. La clave es el nombre de la columna que tendrá la Nueva Plantilla.

  • Tienes que actualizar los elementos de la Lista de acuerdo a la información del experimento. Puedes agregar tantos elementos a la Lista como sea necesario. Asegúrate que los elementos de la Lista existen como Claves en los siguientes elementos: COLUMNSTEMPLATE, NEWCOLUMNS y SAMPLESPERPLOT.

sh SAMPLE_IDENTIFIER : id_sample: - Plot - Sample_name - Experiment - Environment - Season - Measurment - Sampling_identifier

TEMPLATE_OUTPUT

Permite especificar los nombres de las columnas cuyos valores se utilizarán para crear el nombre de la Nueva Plantilla. - Tienes que actualizar los elemetos de la Lista de acuerdo con la información del experimento. Agrega o elimina tantos los elemetos de la Lista como sea necesario. Asegúrate que los elemetos de la Lista existen como Claves en el NEWCOLUMNS _item.

sh TEMPLATE_OUTPUT: - Measurment - Sampling_identifier - Experiment - Environment - Season

Ejecutar las funciones de Python

Abre el archivo main.ipynb en Jupyter, ejecuta los dos bloques de instrucciones. En nuevo Template creado se encontrara en la carpera./output.

¿Cómo citar?

Vargas-Rojas L, Ting T-C, Rainey KM, Reynolds M and Wang DR (2024) AgTC and AgETL: open-source tools to enhance data collection and management for plant science research. Front. Plant Sci. 15:1265073. doi: 10.3389/fpls.2024.1265073.

Contacto

Luis Vargas Rojas - lvargasr@purdue.edu

Purdue University, Wang Lab dianewanglab.com

Owner

  • Name: Luis Vargas Rojas
  • Login: DS4Ag
  • Kind: user
  • Location: Mexico
  • Company: Purdue University

Citation (CITATION.cff)

<<<<<<< HEAD
@ARTICLE{10.3389/fpls.2024.1265073,

AUTHOR={Vargas-Rojas, Luis  and Ting, To-Chia  and Rainey, Katherine M.  and Reynolds, Matthew  and Wang, Diane R. },

TITLE={AgTC and AgETL: open-source tools to enhance data collection and management for plant science research},

JOURNAL={Frontiers in Plant Science},

VOLUME={15},

YEAR={2024},

URL={https://www.frontiersin.org/journals/plant-science/articles/10.3389/fpls.2024.1265073},

DOI={10.3389/fpls.2024.1265073},

ISSN={1664-462X},

ABSTRACT={<p>Advancements in phenotyping technology have enabled plant science researchers to gather large volumes of information from their experiments, especially those that evaluate multiple genotypes. To fully leverage these complex and often heterogeneous data sets (i.e. those that differ in format and structure), scientists must invest considerable time in data processing, and data management has emerged as a considerable barrier for downstream application. Here, we propose a pipeline to enhance data collection, processing, and management from plant science studies comprising of two newly developed open-source programs. The first, called AgTC, is a series of programming functions that generates comma-separated values file templates to collect data in a standard format using either a lab-based computer or a mobile device. The second series of functions, AgETL, executes steps for an <italic>Extract</italic>-<italic>Transform</italic>-<italic>Load</italic> (ETL) data integration process where data are extracted from heterogeneously formatted files, transformed to meet standard criteria, and loaded into a database. There, data are stored and can be accessed for data analysis-related processes, including dynamic data visualization through web-based tools. Both AgTC and AgETL are flexible for application across plant science experiments without programming knowledge on the part of the domain scientist, and their functions are executed on Jupyter Notebook, a browser-based interactive development environment. Additionally, all parameters are easily customized from central configuration files written in the human-readable YAML format. Using three experiments from research laboratories in university and non-government organization (NGO) settings as test cases, we demonstrate the utility of AgTC and AgETL to streamline critical steps from data collection to analysis in the plant sciences.</p>}}
=======
@article{,
   author = {Luis Vargas-Rojas and To-Chia Ting and Katherine Rainey and Matthew Reynolds and Diane Wang},
   journal = {Technical Advances in Plant Science (under review)},
   title = {AgTC and AgETL: Open-source tools to enhance data collection and management for agricultural and plant science research},
   year = {2023},
}
>>>>>>> 12742c375bf1b68cff1cbbde1ad65317c83ca581

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Dependencies

requirements.txt pypi
  • PyYAML ==6.0.1
  • PyYAML ==5.4.1
  • pandas ==1.4.1