Add CC data to DB
Ajouter à a base de données :
CC_GigaMUGA.csv
Founder_GigaMUGA.csv
funnel_codes.csv
Founders-CC-colors.csv
L'idée est d'écrire un ou des scripts (à toi de voir) qui prennent en entrée ces 4 fichiers et génèrent les fichiers json (fixtures) décrits après.
Les fichiers json générés étant trop gros, il ne faut pas les commiter
Les données de chaque fichier vont être réparties dans les différents modèles Django (tables) comme ceci :
graph TD;
CC_GigaMUGA.csv-->CcLine;
CC_GigaMUGA.csv-->Marker;
CC_GigaMUGA.csv-->CcLineMarker(CcLineMarker - many to many);
Founder_GigaMUGA.csv-->Marker;
Founders-CC-colors.csv-->Founder;
Founder_GigaMUGA.csv-->FounderMarker(FounderMarker - many to many);
funnel_codes.csv-->CcLine;
classDef table fill:#cbddff;
class CcLine,Marker,CcLineMarker,Founder,CcLine,FounderMarker table;
Certains fichiers vont remplir la même table :
- vérifier que les données sont les mêmes (Marker, CcLine).
Pour remplir les tables, il faut créer un fichiers json pour chaque table (fixture).
Exemple :
- CcLine -> ccline.json
[
{
"pk": 1,
"model": "api.ccline",
"fields": {
"id_cc": "CC001",
"funnel_code": "BECADHFG"
}
},
{
"pk": 2,
"model": "api.ccline",
"fields": {
"id_cc": "CC002",
"funnel_code": "GCDHEABF"
}
}
]
- Marker -> marker.json
[
{
"pk": 1,
"model": "api.marker",
"fields": {
"position": "3010274",
"id_marker": "UNC6",
"chromosome": "1"
}
},
{
"pk": 2,
"model": "api.marker",
"fields": {
"position": "3064340",
"id_marker": "UNCJPD000001",
"chromosome": "1"
}
}
]
- CcLineMarker -> ccline-marker.json
[
{
"model": "api.cclinemarker",
"fields": {
"cc_line": ["CC001"],
"marker": ["UNCJPD000001"],
"base": "T"
}
}
]
- Founder -> founder.json
[
{
"model": "api.founder",
"pk": 1,
"fields": {
"name": "A/J",
"short_name": "A/J",
"cc_designation": "A",
"color": "#ffe664"
}
},
{
"model": "api.founder",
"pk": 2,
"fields": {
"name": "C57BL/6J",
"short_name": "B6/J",
"cc_designation": "B",
"color": "#cccccc"
}
}
]
- FounderMarker -> founder-marker.json
Pour l'instant le model Django n'est pas écrit pour cette table. C'est la même chose que pour CclineMarker donc on peut s'en inspirer.
Edited by Remi PLANEL