dictyBase / Modware-Loader

Various data munging and loading scripts for genome database
2 stars 1 forks source link

Exporting stock orders #137

Closed cybersiddhu closed 9 years ago

cybersiddhu commented 9 years ago

The export by default should contain the following fields ...

And any other useful metadata that might be present.

biodavidjm commented 9 years ago

Step 1. SQL statements

"StockOrder_ID", "OrderDate", "PlasmidID", "PlasmidName", "ColleagueID","FirstName", "LastName", "email" 

select 
SO.STOCK_ORDER_ID ORDER_ID, 
SO.ORDER_DATE,
PLASMID.ID,
PLASMID.NAME,
COLLEAGUE.COLLEAGUE_NO,
COLLEAGUE.FIRST_NAME,
COLLEAGUE.LAST_NAME,
EMAIL.EMAIL
from CGM_DDB.PLASMID
JOIN CGM_DDB.STOCK_ITEM_ORDER SIO ON
(
  PLASMID.ID=SIO.ITEM_ID
  AND
  PLASMID.NAME=SIO.ITEM
)
join CGM_DDB.STOCK_ORDER SO on SIO.ORDER_ID=SO.STOCK_ORDER_ID
left join CGM_DDB.COLLEAGUE on COLLEAGUE.COLLEAGUE_NO=SO.COLLEAGUE_ID
left join CGM_DDB.COLL_EMAIL COE on COE.COLLEAGUE_NO=COLLEAGUE.COLLEAGUE_NO
left join CGM_DDB.EMAIL on EMAIL.EMAIL_NO=COE.EMAIL_NO

To Explore: Does the "plasmid" table have a dbxref_id? How can be connected to cgm_chado.dbxref?

"StockOrder_ID", "OrderDate", "StrainID", "StrainName", "ColleagueID","FirstName", "LastName", "email" 

select 
SO.STOCK_ORDER_ID ORDER_ID, 
SO.ORDER_DATE,
SC.ID ID,
SC.STRAIN_NAME NAME,
COLLEAGUE.COLLEAGUE_NO,
COLLEAGUE.FIRST_NAME,
COLLEAGUE.LAST_NAME,
EMAIL.EMAIL
from CGM_DDB.STOCK_CENTER SC
JOIN CGM_DDB.STOCK_ITEM_ORDER SIO ON
(
  SC.ID=SIO.ITEM_ID
  AND
  SC.STRAIN_NAME=SIO.ITEM
)
join CGM_DDB.STOCK_ORDER SO on SIO.ORDER_ID=SO.STOCK_ORDER_ID
left join CGM_DDB.COLLEAGUE on COLLEAGUE.COLLEAGUE_NO=SO.COLLEAGUE_ID
left join CGM_DDB.COLL_EMAIL COE on COE.COLLEAGUE_NO=COLLEAGUE.COLLEAGUE_NO
left join CGM_DDB.EMAIL on EMAIL.EMAIL_NO=COE.EMAIL_NO

Step 2. Script to dump the data to a file

As a preliminary step and in order to understand some of the libraries used in Modware-Loader, I have written a temporal script to export the data to a file. The script can be found here. The final goal is to make this part of Modware-Loader

Step 3. Integration in Modware-Loader

On branch export-stock-orders
  1. The first attempt was to create a module stockorders using a statement that would get all the data. The first working version has been committed (472d9f69774dfdc5158c4b65cb1a42516b31684b)

perl -Ilib bin/modware-export stockorders -c config-legacy.yaml -o stock_center_orders.csv

  1. After analysis of the tables related to the stocks order, it is concluded that both strains and plasmids should be dumped independently with the SQL statements above. Two additional modules are created: stockordersplasmids.pm and stockordersstrains.pm

These modules do not block execution, but need some work following Sidd's feedback:

Refactoring on export-stock-orders-pro