Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Help needed to bulkload subsamples of subsamples with part attributes #3627

Closed
campmlc opened this issue May 29, 2021 · 52 comments
Closed

Help needed to bulkload subsamples of subsamples with part attributes #3627

campmlc opened this issue May 29, 2021 · 52 comments
Assignees
Labels
Function-DataEntry/Bulkloading Help wanted I have a question on how to use Arctos

Comments

@campmlc
Copy link

campmlc commented May 29, 2021

@dustymc I need help bulkloading 99 part subsamples with part attributes.
1)The subsamples are DNA extractions derived from tissue loans, which were themselves subsamples of parts.
2) The actual parent samples are legacy subsamples samples of Arctos parts which were cut for loan and stored for the past decade in a research lab. No barcodes.
3) We are not certain exactly which loan subsample produced the extraction because sometimes there are multiple, so the DNA extraction needs to be a loaded as subsample of the original part, not of the subsample which would be it's immediate parent.
4) The parent part has a name such as "liver" or "liver (frozen)"; the child part subsample however has a different name, =" DNA extraction"
5) I've put together a hypothetical template attached here modified from the part subsample bulkloader and the part attribute bulkloader combined.
Can something like this be developed? Or can you load these data for me for the time being if not?
Loading part attribute data depends on #3624
Priority - high - needed for immediate loan processing, and, if it works, for an upcoming presentation on genomic data in Arctos.

@campmlc campmlc added Function-DataEntry/Bulkloading Help wanted I have a question on how to use Arctos labels May 29, 2021
@campmlc campmlc added this to the Next Task milestone May 29, 2021
@campmlc
Copy link
Author

campmlc commented May 29, 2021

@dustymc
Copy link
Contributor

dustymc commented Jun 2, 2021

See #3628 - I just patched the missing tool into production.

I did this

Screen Shot 2021-06-02 at 6 22 45 AM

to create this

Screen Shot 2021-06-02 at 6 22 07 AM

then this

Screen Shot 2021-06-02 at 6 28 53 AM

for

Screen Shot 2021-06-02 at 6 28 19 AM

Note that I didn't take out the second load's container_barcode so adding another layer would not be able to use barcode - don't follow my example too closely....

If you have barcodes for everything, this should be trivial. If you don't, I'd suggest a new container_type of "virtual" and a new series of "part identifier" barcodes for this sort of thing (some "series" that you're not going to confuse with anything else or print/order).

First load the "liver hacked out of a mixed tube" part layer, then load the "stuff magicked out of the previous part" layer, then loan items.

You can save some tiny bit of work by getting the attributes sorted out now, or if you're using barcodes its trivial to load part attributes later.

If you want to provide your full data in CSV and probably answer some questions I could push the buttons and take screenshots, or everything should be in place for you to do so.

@campmlc
Copy link
Author

campmlc commented Jun 2, 2021 via email

@dustymc
Copy link
Contributor

dustymc commented Jun 2, 2021

want all the loan subsamples in the same virtual container

Hu?

Without using real barcodes, I think I have to load part attributes at the
same time with this file.

Also hu?

Picking a specific part out of the pile is a lot of work. Once that happens, you can

  • give it a unique identifier so you don't ever have to deal with any ambiguity again, or
  • don't, and dig it out again the next time you need it

Barcodes, real or otherwise, serve nicely as unique identifiers. In this case, giving everything a barcode would mean you can add the attributes later, gives you a super-easy way to eventually add to the loan, and probably provides a pathway to whatever you mean by "loan subsamples in the same virtual container."

(I've been wondering if we need directly-attached stable part IDs for a while, and maybe we do - new Issue - but they're not available NOW and barcodes are.)

@campmlc
Copy link
Author

campmlc commented Jun 2, 2021 via email

@dustymc
Copy link
Contributor

dustymc commented Jun 2, 2021

All parts have an identifier (big integer), it's stable enough for "local" use but probably not for publication. I'd need to know a lot more about what you have and what you want to do about it to elaborate.

I think some/most of the problem comes back to loan procedures. I doubt much can be done about the legacy mess at this point, but going forward you could just decide not to send out things that don't have citable identifiers. ARKs might work well for that, although the size at which they can be printed might be problematic. I don't think the source of those ("part IDs" vs barcodes) would make much/any difference in the work required to attach the ID to the item.

@campmlc
Copy link
Author

campmlc commented Jun 2, 2021 via email

@dustymc
Copy link
Contributor

dustymc commented Jun 2, 2021

substantial cost

That's above my pay grade, but passing on the cost of buying a bajillion preprinted whatever-you-sample-into-anyway containers doesn't seem completely unrealistic at first glance.

loan item

That adds some stability - you can't delete those, but there are still plenty of ways in which "stable" requires procedures.

download

It would be pretty trivial to add specimen_part.collection_object_id to parts download.

@Jegelewicz
Copy link
Member

Jegelewicz commented Jun 2, 2021

All parts have an identifier (big integer), it's stable enough for "local" use but probably not for publication.

But when that integer is combined with the record url with which it is associated....isn't that also a GUID? It means we would have to open up the view of those numbers, but seems like that would be useful?

@dustymc
Copy link
Contributor

dustymc commented Jun 2, 2021

http://test.arctos.database.museum/guid/MSB:Mamm:231731?barcode=MSB1001913 and http://test.arctos.database.museum/guid/MSB:Mamm:231731?pid=29037926 (and any other ?thing=value pair, real or not) are all functional GUIDs, and both of those could do stuff (eg something like http://test.arctos.database.museum/guid/MSB:Mamm:231731?seid=966527 does). That much would be pretty simple to implement.

They're not particularly stable - you can delete and re-create (with a new PID) the part, I can add a billion to all part_ids because why not, you can replace the barcode or move the part to a different container, etc., etc., etc. Whether any of that matters or not would need sorted out and built around or documented if it does.

@Jegelewicz
Copy link
Member

They're not particularly stable - you can delete and re-create (with a new PID) the part, I can add a billion to all part_ids because why not, you can replace the barcode or move the part to a different container, etc., etc., etc.

Gotcha on the "stable" now and that being intentional about a part ID is important because it means you are going to be stuck with that part. Although like anything else we could create a redirect if we realize something is not correct? I can see how a stable part ID would be a very useful tool and also how stability might not matter so much for some applications.

However - it isn't 100% clear what http://test.arctos.database.museum/guid/MSB:Mamm:231731?seid=966527 does. I think if the screen scrolled to the highlighted occurrence that would be cool. And if http://test.arctos.database.museum/guid/MSB:Mamm:231731?pid=29037926 highlighted the appropriate part and scrolled to it, that would be cool too.

I know - I want it all!!!

I'm not sure I have an answer to the problem of stability....probably needs a group effort.

@dustymc
Copy link
Contributor

dustymc commented Jun 2, 2021

redirect

Yes, they can handle that, but (given things like more sophisticated bulkloaders/unloaders mixed with our terrifying loan/citation intersection data) you can still:

  • cite/publish a PID
  • delete all your parts
  • oops, create new identical parts
  • "Arctos is broken" because nobody's going to spend the time to redirect the millions of links you just inadvertently broke

That's probably overly paranoid, but I also think that's the most practical viewpoint at this stage.

"Intentional" seems like a decent one-word summary of what might work best.

scrolled

Issue - should be pretty quick but I don't have the bandwidth at the moment and I'll forget without.

@dustymc
Copy link
Contributor

dustymc commented Jun 7, 2021

For lack of a better place for this:

I created new part attributes

http://test.arctos.database.museum/info/ctDocumentation.cfm?table=ctspecpart_attribute_type#dna_absorbance_ratio_a260_a230

http://test.arctos.database.museum/info/ctDocumentation.cfm?table=ctspecpart_attribute_type#dna_absorbance_ratio_a260_a280

and new units

http://test.arctos.database.museum/info/ctDocumentation.cfm?table=ctcount_units#ratio

and a new event type

http://test.arctos.database.museum/info/ctDocumentation.cfm?table=ctspecimen_event_type#did_not_find_any

then I cloned http://test.arctos.database.museum/guid/UAM:Env:115 (the environmental sample) into two records:

http://test.arctos.database.museum/guid/UAM:Env:350 is a woodfrog which was detected.

http://test.arctos.database.museum/guid/UAM:Env:351 is a moose which was not detected (see the specimen event).

I created http://test.arctos.database.museum/info/ctDocumentation.cfm?table=ctspecimen_part_name#there_is_no_part because I think WHY we think there are no moose is best given as part attributes, in the same way why we think there are frogs is part attribute data. Weird, needs more discussion. Maybe these data are all attributes of the identification, not the parts?!

Everything about the absorbance attribute units are strange, hopefully just ignorance on my part.

There's no great place for the relationship between the filter paper in http://test.arctos.database.museum/guid/UAM:Env:115 and the DNA in http://test.arctos.database.museum/guid/UAM:Env:350. http://test.arctos.database.museum/guid/UAM:Env:350 should start with filter paper and have the DNA as a child of that - this could be better - but there's currently no cross-cataloged-item part-relationships; we may be missing something from the UI (and VPDs could very quickly make that very complicated - may not be possible without public and stable part IDs????).

The sample itself was apparently cataloged with the frog in mind, which is strange - eg is Spangler only sorta-confident that this is water? (Probably not, I think that's in reference to the frog.)

And water could be a taxon - some new chemical-focused source (and type), probably.

@Jegelewicz @campmlc

@Jegelewicz
Copy link
Member

Water is a taxon, sort of - https://arctos.database.museum/name/Ice

@dustymc
Copy link
Contributor

dustymc commented Jun 7, 2021

taxon, sort of

Oh my....

@Jegelewicz
Copy link
Member

I can't see any of it because I don't have access to UAM collections in test....

@Jegelewicz
Copy link
Member

taxon, sort of

Oh my....

No man, it works! water will just be another "species" of Oxides of hydrogen!

@Jegelewicz
Copy link
Member

OK logged in as public user and can see 115, but the other two 404 on me.

@dustymc
Copy link
Contributor

dustymc commented Jun 7, 2021

access

You both have uam_env now. public view will be sparse because I don't have a real dev box.

"species" of Oxides

Sure simplify linnean stuff if we just consider it all carbon with some impurities...

@campmlc
Copy link
Author

campmlc commented Jun 14, 2021 via email

@dustymc
Copy link
Contributor

dustymc commented Jun 14, 2021

I did this; I can un-do it if necessary.

new barcode series:

Screen Shot 2021-06-14 at 8 24 22 AM

New container type:

Screen Shot 2021-06-14 at 8 31 17 AM

Make some containers
https://docs.google.com/spreadsheets/d/19giHcLHx469iwtct54yQsPg87MaRKxgvLaG_U16y_I8/edit#gid=262565804

Use SQL (below) to put the loaned items in containers. This would have been MUCH easier BEFORE they were loaned, and some of the loaned items also have barcodes - the inconsistency complicates this. See eg https://arctos.database.museum/guid/MSB:Mamm:94113

Screen Shot 2021-06-14 at 8 47 57 AM

temp_msbpartstobl.csv.zip

These parts can be bulkloaded, they'll go into virtual containers. It needs review and maybe cleanup, then...

temp_msbpartloanbulk.csv.zip

.... can be used to add the parts created in the previous step to the loan using the virtual containers.

I did not change any part names; assuming that eg

https://arctos.database.museum/guid/MSB:Mamm:248819

provided some homogeneous part, you can just update the loaned part (currently heart, kidney, lung, spleen (frozen)) to whatever was actually sent out, and then the extraction will be a child of the appropriate part following the normal and expected pathway to that information. If the mash was sent out then everything's already correct. If you don't know what was sent then the part should be updated to unknown.

Going forward, if you assign a barcode (of container type virtual or otherwise) to loan items then this is all very simple; if you don't then it's not.

If you want to use this system then you'll need to figure out how to keep track of the containers. I created 500 (linked spreadsheet) and used 230 of those in this.

FWIW I'd guess that the cost of buying/printing cheapy barcodes is orders of magnitude less than the cost of dealing with ambiguous parts and trying to figure out what exactly was cited and all that nonsense, and I'd guess your "customers" would be happy enough to pay an extra few cents per sample for that level or organization. And if they use those barcodes - which should be absolutely trivial if they're doing anything that might be described as organized - and you eventually get hold of their LIMS, whatever form it might take, then integrating that is also trivial.

Here's the SQL I used to get barcodes attached to the parts.

create table temp_msbloanmess as
select 
loan_item.collection_object_id,
specimen_part.part_name,
c2.barcode
 from loan_item 
 inner join specimen_part on loan_item.collection_object_id=specimen_part.collection_object_id
inner join coll_obj_cont_hist on specimen_part.collection_object_id=coll_obj_cont_hist.collection_object_id
inner join container on coll_obj_cont_hist.container_id=container.container_id
left outer join container c2 on container.parent_container_id=c2.container_id
  where transaction_id=21110899;

alter table temp_msbloanmess add add_part_to_barcode varchar;


CREATE OR REPLACE function temp_test() returns void AS $body$
DECLARE
  r RECORD;
  y int;
BEGIN
  y=1;

  for r in (select collection_object_id from temp_msbloanmess where barcode is null) loop
    update temp_msbloanmess set barcode='MSBPID' || y::text where collection_object_id=r.collection_object_id;
    y=y+1;
  end loop;
END;
$body$
LANGUAGE PLPGSQL
SECURITY DEFINER
;
select temp_test();

drop function temp_test;

alter table temp_msbloanmess add add_part_to_cid bigint;

update temp_msbloanmess set add_part_to_cid=(select container_id from container where container.barcode=temp_msbloanmess.barcode) where barcode like 'MSBPID%'
  ;

  alter table temp_msbloanmess add pcid bigint;

update temp_msbloanmess set pcid=(select container_id from coll_obj_cont_hist where coll_obj_cont_hist.collection_object_id=temp_msbloanmess.collection_object_id) where barcode like 'MSBPID%'
  ;


CREATE OR REPLACE function temp_test() returns void AS $body$
DECLARE
  r RECORD;
BEGIN

  for r in (select * from temp_msbloanmess where barcode  like 'MSBPID%') loop
    update container set parent_container_id=r.add_part_to_cid where container_id=r.pcid;
  end loop;
END;
$body$
LANGUAGE PLPGSQL
SECURITY DEFINER
;
select temp_test();

drop function temp_test;

-- now set up for part bulkloader

  alter table temp_msbloanmess add guid varchar;

update temp_msbloanmess set guid=(select guid from flat inner join specimen_part on flat.collection_object_id=specimen_part.derived_from_cat_item where specimen_part.collection_object_id=temp_msbloanmess.collection_object_id);

-- where'd we leave off?

select replace(barcode,'MSBPID','')::int from temp_msbloanmess where  barcode  like 'MSBPID%' order by replace(barcode,'MSBPID','')::int;

alter table temp_msbloanmess add new_part_barcode varchar;


CREATE OR REPLACE function temp_test() returns void AS $body$
DECLARE
  r RECORD;
  y int;
BEGIN
  y=112;

  for r in (select collection_object_id from temp_msbloanmess) loop
    update temp_msbloanmess set new_part_barcode='MSBPID' || y::text where collection_object_id=r.collection_object_id;
    y=y+1;
  end loop;
END;
$body$
LANGUAGE PLPGSQL
SECURITY DEFINER
;
select temp_test();

drop function temp_test;


-- make a part bulkloader download

create table temp_msbpartstobl as select
  guid,
  'DNA extraction' as part_name,
  'unknown' as condition,
  'in collection' as disposition,
  1 as lot_count,
  new_part_barcode as container_barcode,
  barcode as parent_part_barcode
from
  temp_msbloanmess
;

-- make a loan item bulkloader download

create table temp_msbpartloanbulk as
select
  guid as guid_delete_before_uploading,
  new_part_barcode as part_barcode,
  'fix this' as loan_guid_prefix,
  'fix this' as loan_number
from
  temp_msbloanmess
;

@campmlc
Copy link
Author

campmlc commented Jun 14, 2021 via email

@Jegelewicz
Copy link
Member

Documentation!!!

@dustymc
Copy link
Contributor

dustymc commented Jun 14, 2021

I'm not sure what "the loan form" is - there are a dozen or so things that might be called that.

Given how containers work, I think what I've done is probably going to work best through the bulk tools. Having (or exposing, if that fulfills whatever goals we might decide on) a dedicated "part identifier" would open up more possibilities, but see below. From a blank slate, this procedure should be something like

  • download parts
  • delete about everything except barcode and GUID, add in new virtual container barcode, maybe adjust part name, bulkload parts. (Functional PartIDs would let you skip the 'add in' step here, but it's not clear where you'd then get the identifier for the next step.)
  • massage that file (which now contains the barcode of the parts you want to loan) a bit, bulkload loan items

If you've got more than maybe 10 items, there's no way clicking through forms is going to be faster, and handling 3 or 30,000 parts should be about the same work. In a barcode-centric collection where virtual containers aren't some kind of heresy, it's hard to imagine why you'd care about any other forms (other than to create the loan itself).

@dustymc
Copy link
Contributor

dustymc commented Jun 14, 2021

Documentation!!!

I did this here because it's easy to copy-paste into the handbook, or send me your next loan request (one that doesn't start with Step 47!) and I'll load/document.

@campmlc
Copy link
Author

campmlc commented Jun 15, 2021 via email

@campmlc
Copy link
Author

campmlc commented Jun 15, 2021

Just from single record data entry, I'm in this screen. Any way I can autogenerate a virtual part barcode using the existing parent part ID = Part 27196579?
I'm going to have to understand this first before I can understand how this would work via the bulkloader.
image

@dustymc
Copy link
Contributor

dustymc commented Jun 15, 2021

This doubles the workload, and adds a ton of potential for error.

I'm not sure how 3 clicks (one download a two uploads) and a couple CSV manipulations (removing columns unless you need to change part names) could double the workload, but I don't really understand what your normal procedure is so it's possible. In any case this is just one possible approach and you certainly don't have to use it. I can delete those containers/series and remove the new container type if what I did isn't useful, or the offer of me using this for your next loan stands if you want to see more before deciding.

I'm not really seeing any great places for error to sneak in either, but maybe that's just a lack of imagination. The process I laid out just involves creating an identifier and then using it from the same place.

autogenerate a virtual part barcode

They're just containers, you can use them like any other container, see above for where I left off.

@campmlc
Copy link
Author

campmlc commented Jun 15, 2021 via email

@campmlc
Copy link
Author

campmlc commented Jun 15, 2021 via email

@dustymc
Copy link
Contributor

dustymc commented Jun 15, 2021

Yes there's some level of organization necessary, I assumed that was "normal." I can probably work out SQL to find the last-used of a series (as long as there's an incrementing integer somewhere in it), or I can just clean up my mess if you're not interested in this - please let me know.

@campmlc
Copy link
Author

campmlc commented Jun 16, 2021 via email

@dustymc
Copy link
Contributor

dustymc commented Jun 16, 2021

I don't think that's completely implausible, but I can't quite understand why you'd want to either. (And that's starting to sound like "partD" or something beyond what we have/do now, maybe.) If you're doing this by clicking each item, then what good is introducing an ID that's sole purpose is to avoid the situation from which you seem to want to assign it? The "click every part" approach might need something too, I just can't understand how we went from a spreadsheet full of barcodes to there.

Something isn't being communicated and/or understood. Can you provide some "normal" example (if there is such a thing), or SOMETHING big-picture to help me understand where this is coming from, or what you're trying to accomplish, or whatever it is that I need to understand?

@KyndallH
Copy link

I was asked for thoughts 12 days ago. I'm now reading through this thread for the second time because at first, I was like - doesn't apply to me. And now here I'm on a Saturday needing to bulkload 100 DNA extractions and want them linked to the subsample of a tissue we loaned. I would have thought I've learned by now to say never. But reading through this, I'm still not clear on how I'm supposed to do this magic.

I think I thumbed up Dusty at some point because I don't like the idea of "assign next virtual barcode in series" but I'm so lost on all of this now.

@KyndallH
Copy link

KyndallH commented Jun 26, 2021

@Jegelewicz And yes, we have water as a taxon. I don't know about the Ice but for our environmental samples are listed as WATER.

Not sure I agree with ICE being a mineral though.

@campmlc
Copy link
Author

campmlc commented Jun 26, 2021 via email

@KyndallH
Copy link

Skin (frozen) --> Skin (frozen) subsample --> DNA extraction: how do I place the DNA extraction as a child of skin (frozen) via the bulkloader?

DNA extraction method: part attribute or part remark? Currently as an attribute. I also have the citation for the extraction method. I currently have that as a part attribute remark. No attribute type in the code table fits this.

BoldExtractionsPartUpload.xlsx

@campmlc
Copy link
Author

campmlc commented Jun 27, 2021

@KyndallH see #3624 #3630
Your file looks ok, minus the missing part attributes. But did you create the container barcode series for these extractions? Or are these barcodes for the parent tissues? If so, they are in the wrong column. ?

@campmlc
Copy link
Author

campmlc commented Jun 27, 2021 via email

@dustymc
Copy link
Contributor

dustymc commented Jun 28, 2021

still not clear on how I'm supposed to do this magic.

  1. Add parts to containers with barcodes
  2. Use those barcodes as handles for things like bulkloading loan items

That's it, there's nothing new here. I made a special container type and a dedicated series to try to keep this separate (in case @campmlc wants me to un-do what I did, mostly) but that's not really necessary. (Probably a good idea if and only if you can't just barcode everything for reals, which I still think would save vast amounts of money and add a great deal of Research Grade in the long run, but still "details.")

water as a taxon

I can't find it - https://arctos.database.museum/taxonomy.cfm?taxon_name=water&taxon_name_type=&taxon_term=&term_type=&source=&common_name=#taxonsearchresults

send another file of samples

Sure - I can zoom you though it, or just do it in anticipation of #3630, or whatever.

Skin (frozen) --> Skin (frozen) subsample --> DNA extraction: how do I place the DNA extraction as a child of skin (frozen) via the bulkloader?

Ideally: You'd have barcoded Skin (frozen) subsample and that few cents would be paying for itself now because this would take about 5 seconds, and everyone would know precisely what everyone else is talking about because there's a "part ID" involved.

Less-ideally: Do something complicated to give the samples barcodes (I used SQL, I can probably do the same for you, MAYBE there could be a UI), then everything's just the normal bulkloaders.

method

#3629, I need how, I'm fine with what @campmlc suggested (free-text).

option of virtual barcodes autoassigned in the bulkloader?

Mostly a social issue, but I'm pretty sure the answer would be no - that would be disruptive for many use cases.

Something like #3630 ?

I'm not sure what similarities you're talking about?? Certainly anything we do with a new ID would require new tools.

keep track of the containers

How do you keep track of normal containers?! I build forms on the assumption that something like https://handbook.arctosdb.org/documentation/container.html#object-tracking-in-general is happening - if it's not, I need to know what is.

And I can't assign barcodes to DNA extractions for samples that have been
loaned and extracted in a research lab and which are still sitting in that
lab and have not yet been returned to the archive.

Reason 8564 to just barcode everything....

And maybe a decent use case for container_type=virtual.

insistence that
the researchers not just had over the samples themselves from their
freezers without a formal loan process.

Isn't that already part of the formal loan process????

OK, I looked, it is not. MSB's loan policy is listed as http://www.msb.unm.edu/divisions/mammals/index.html, which basically says nothing about loans. UAM's is https://www.uaf.edu/museum/collections/mammal/policies/ which says "Loans may not be transferred to another institution or researcher without prior written consent from the curator. Loaned material may not be used for research that was not specified in the original loan request without written permission from the curator."

Aside: I still think that "we" should figure out how to better share what works and what doesn't and etc. for things like policy development. Having a bunch of diverse users involved makes everything I look at better, I can't imagine why that wouldn't apply to things like loan policies as well.

critical we do this to track usage.

I completely agree, but can't quite understand why we allow that to stop at the door. If everything just got a normal barcode then the researcher could talk about "SomeUnambiguousPart" instead of "UAM 12" (which might be complicated). The whole idea that we can't afford barcodes seems something like not changing the oil in your car to save money - it just doesn't work that way in the not-so-long run.

Back to reality, I tentatively suggest we resolve and implement #3630 rather than attempting to do more here.

@Jegelewicz
Copy link
Member

Not sure I agree with ICE being a mineral though.

The mineral people think it is - it isn't up to me.

@campmlc
Copy link
Author

campmlc commented Jun 28, 2021 via email

@Jegelewicz
Copy link
Member

Was hoping to talk about this during @dustymc office hour, but nobody was there....

@dustymc
Copy link
Contributor

dustymc commented Jun 28, 2021

Bah sorry I think I've got my calendar set up right now, I hope. I can do later today if you want, but I'm mostly convinced we should abandon this in favor of #3630, and I just left a manifesto that might result in a quicker solution over there.

I believe that @DerekSikes commonly sends barcodes out on loan and gets researchers to do useful things with them.

I'm not sure there's a real replacement for machine-readable "part IDs" but there may be a way to make some of the tools that rely on those available without them - at least that's what I think you're asking for here.

@dustymc
Copy link
Contributor

dustymc commented Oct 21, 2021

@campmlc can I delete the MSBPID container series and close this?

@dustymc dustymc closed this as completed Mar 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Function-DataEntry/Bulkloading Help wanted I have a question on how to use Arctos
Projects
None yet
Development

No branches or pull requests

4 participants